LilyPond: manuale d'uso del programma: 3.2.1 LaTeX

### 3.2.1 LaTeX

LaTeX costituisce lo standard de facto per le pubblicazioni nell’ambito delle scienze esatte. Si basa sul motore tipografico TeX, che produce la migliore qualità tipografica possibile.

Si veda The Not So Short Introduction to LaTeX per una panoramica sull’uso di LaTeX.

La musica si inserisce in vari modi:

>     \begin{lilypond}[le,opzioni,vanno,qui]
>       CODICE LILYPOND
>     \end{lilypond}

oppure

>     \lilypondfile[le,opzioni,vanno,qui]{nomefile}

oppure

>     \lilypond[le,opzioni,vanno,qui]{ CODICE LILYPOND }

Inoltre, `\lilypondversion` mostra la versione di lilypond impiegata. L’esecuzione di `lilypond-book` produce un file che può essere ulteriormente elaborato con LaTeX.

Vediamo alcuni esempi. L’ambiente `lilypond`

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

genera

La versione breve

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

genera

Attualmente non è possibile includere `{` o `}` all’interno di `\lilypond{}`, dunque questo comando è utile solo se usato con l’opzione `fragment`.

La lunghezza predefinita del rigo musicale sarà regolata in base ai comandi presenti nel preambolo del documento, ovvero la parte del documento che precede `\begin{document}`. Il comando `lilypond-book` li invia a LaTeX per definire la larghezza del testo. La larghezza del rigo nei frammenti musicali è quindi regolato in base alla larghezza del testo. Si noti che questo algoritmo euristico può fallire facilmente; in questi casi occorre usare l’opzione `line-width` nel frammento musicale.

Ogni frammento chiamerà le seguenti macro se sono state definite dall’utente:

- `\preLilyPondExample` prima della musica,
- `\postLilyPondExample` dopo la musica,
- `\betweenLilyPondSystem[1]` tra i sistemi, se `lilypond-book` ha diviso il frammento in più file PostScript. Prende un parametro e riceve tutti i file già inclusi in questo frammento. Per impostazione predefinita inserisce semplicemente un `\linebreak`.

#### Frammenti di codice selezionati

Talvolta si ha necessità di mostrare degli elementi musicali (ad esempio le legature di portamento e di valore) che proseguono dopo la fine del frammento. È possibile inserirli mandando il rigo a capo e impedendo l’inclusione del restante output di LilyPond.

In LaTeX, si definisce `\betweenLilyPondSystem` in modo tale che l’inclusione di altri sistemi venga terminata una volta incluso il numero di sistemi richiesti. Dato che `\betweenLilyPondSystem` viene chiamato la prima volta dopo il primo sistema, includere solo il primo sistema è semplice.

>     \def\betweenLilyPondSystem#1{\endinput}

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

Se serve una maggior quantità di sistemi, occorre usare un condizionale TeX prima di `\endinput`. In questo esempio, sostituisci ‘2’ col numero di sistemi che desideri avere nell’output.

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

(Dato che `\endinput` arresta immediatamente l’elaborazione del file di input corrente, occorre usare `\expandafter` per ritardare la chiamata di `\endinput` e far sì che avvenga dopo l’esecuzione di `\fi`, in modo da bilanciare la condizione `\if`-`\fi`.)

Ricorda che la definizione di `\betweenLilyPondSystem` è efficace finché TeX esce dal gruppo attuale (ad esempio l’ambiente LaTeX) o è sovrascritto da un’altra definizione (che vale, in gran parte dei casi, per il resto del documento). Per reimpostare la definizione, si scrive

>     \let\betweenLilyPondSystem\undefined

nel sorgente LaTeX.

Si potrebbe semplificare la procedura creando una macro TeX

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

e poi specificando prima di ogni frammento la quantità di sistemi desiderata,

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

#### Vedi anche

Esistono opzioni specifiche da linea di comando per `lilypond-book` e altri dettagli da conoscere quando si elaborano documenti LaTeX; si veda Utilizzo di `lilypond-book`.

Other languages: English, deutsch, español, français, magyar.

#### LilyPond — Utilizzo