LilyPond: manual d'utilització del programa: 3.2.1 LaTeX

### 3.2.1 LaTeX

El LaTeX és l’estàndard de facto per a la publicació al món de les ciències exactes. Està construït a sobre del motor de composició tipogràfica TeX, proporcionant el format tipogràfica de la millor qualitat que existeix.

Consulteu The Not So Short Introduction to LaTeX (Introducció no tan breu al LaTeX) per veure una panoràmica de l’ús del LaTeX.

`lilypond-book` aporta les ordres i els enrons per incloure música dins de fitxers del LaTeX:

- l’ordre `\lilypond{…}`, on podem escriure directament fragments curs de codi del LilyPond
- l’entorn `\begin{lilypond}…\end{lilypond}`, on podem introduir directament blocs més llargs de codi del Lilypond
- l’ordre `\lilypondfile{…}` per inserir un fitxer del LilyPond
- l’ordre `\musicxmlfile{…}` para inserir un fitxer del MusicXML, que es processa per part de `musicxml2ly` i `lilypond`.

Al fitxer d’entrada, especifica la música amb qualsevol de les ordres següents:

>     \begin{lilypond}[las,opciones,van,aquí]
>       EL CODI DEL LILYPOND
>     \end{lilypond}

>     \lilypond[le,opcions,van,aquí]{ EL CODI DEL LILYPOND }

>     \lilypondfile[les,opcions,van,aquí]{fitxer}

>     \musicxmlfile[les,opcions,van,aquí]{fitxer}

De forma addicional, `\lilypondversion` imprimeix la versió actual del lilypond.

L’execució de `lilypond-book` deixa com a resultat un fitxer que es pot processar posteriorment amb el LaTeX.

A continuació mostrem alguns exemples. L’entorn `lilypond`

>     \begin{lilypond}[quote,fragment,staffsize=26]
>       c' d' e' f' g'2 g'2
>     \end{lilypond}

produeix

La versió curta

>     \lilypond[quote,fragment,staffsize=11]{<c' e' g'>}

produeix

Pel moment no és possible incloure claus `{` o `}` dins de `\lilypond{}`, per tant aquesta ordre sols es útil amb l’opció `fragment`.

L’amplada predeterminada de les línies de música s’ajusta mitjançant l’examen de les ordres del preàmbul del document, la part del document que està abans de `\begin{document}`. L’ordre `lilypond-book` els envia al LaTeX per esbrinar l’amplada del text. L’amplada de la línia per als fragments de música s’ajusta aleshores a l’amplada del text. Observeu que aquest algoritme heurístic pot fàcilment fallar; en aquests casos cal usar l’opció `line-width` del fragment de música.

Cada fragment executarà els macros següents si han estat definits per l’usuari:

- `\preLilyPondExample` que es crida abans de la música,
- `\postLilyPondExample` que es crida després de la música,
- `\betweenLilyPondSystem[1]` es crida entre els sistemes si `lilypond-book` ha dividit el fragment en diversos fitxers PostScript. S’ha de definir de forma que agafi un paràmetre i rebrà el nombre de fitxers ja inclosos dins del fragment actual. L’acció predeterminada és simplement inserir un `\linebreak`.

#### Fragments de codi seleccionats

A vegades és útil mostrar elements de música (com lligadures) com si continuessin més enllà del final del fragment. Això es pot fer dividint el pentagrama i suprimint la inclusió de la resta de la sortida del LilyPond.

Al LaTeX, definiu `\betweenLilyPondSystem` de tal forma que la inclusió d’altres sistemes es doni per acabada un cop que s’ha arribat al nombre desitjat de sistemes requerits. Atès que `\betweenLilyPondSystem` es crida en primer cop després del primer sistema, incloure solament el primer sistema és quelcom trivial.

>     \def\betweenLilyPondSystem#1{\endinput}

>     \begin[fragment]{lilypond}
>       c'1\( e'( c'~ \break c' d) e f\)
>     \end{lilypond}

Si cal un major nombre de sistemes, s’ha d’usar un condicional de TeX abans del `\endinput`. En aquest exemple, substituïu el ‘2’ pel nombre de sistemes que voleu en la sortida:

>     \def\betweenLilyPondSystem#1{
>         \ifnum#1<2\else\expandafter\endinput\fi
>     }

(Atès que `\endinput` atura immediatament el processament del fitxer d’entrada actual, ens cal `\expandafter` per a postposar la crida de `\endinput` després d’executar `\fi` de manera que la clàusula `\if`-`\fi` estigui equilibrada.)

Recordeu que la definició de `\betweenLilyPondSystem` és efectiva fins que TeX abandona el grup actual (com l’entorn LaTeX) o se sobreescriu per una altra definició (cosa que és gairebé sempre per a la resta del document). Per reposar la definició escriviu:

>     \let\betweenLilyPondSystem\undefined

dins de la font de LaTeX.

Es pot simplificar això definint un macro de TeX:

>     \def\onlyFirstNSystems#1{
>         \def\betweenLilyPondSystem##1{\ifnum##1<#1\else\endinput\fi}
>     }

i després indicant sols quants sistemes voleu abans de cada fragment:

>     \onlyFirstNSystems{3}
>     \begin{lilypond}…\end{lilypond}
>     \onlyFirstNSystems{1}
>     \begin{lilypond}…\end{lilypond}

#### Vegeu també

Hi ha opcions de línia d’ordres específiques de `lilypond-book` i altres detalls que s’han de conèixer per processar documents deLaTeX vegeu Invocació `lilypond-book`.

#### LilyPond — Utilització v2.24.4 (branca estable).