[ << lilypond-book ] | [Inizio][Contenuti][Indice][ ? ] | [ Programmi esterni >> ] | ||
[ < Integrare musica e testo ] | [ Su : Integrare musica e testo ] | [ Texinfo > ] |
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.
lilypond-book
fornisce i seguenti comandi e ambienti per includere
la musica nei file LaTeX:
-
il comando
\lilypond{…}
, dove si può inserire direttamente del codice lilypond corto -
l’ambiente
\begin{lilypond}…\end{lilypond}
, dove si può inserire direttamente del codice lilypond più lungo -
il comando
\lilypondfile{…}
per inserire un file lilypond -
il comando
\musicxmlfile{…}
per inserire un file MusicXML, che sarà elaborato damusicxml2ly
e dalilypond
.
Nel file di input, la musica viene specificata con uno dei seguenti comandi:
\begin{lilypond}[le,opzioni,vanno,qui] CODICE LILYPOND \end{lilypond} \lilypond[le,opzioni,vanno,qui]{ CODICE LILYPOND } \lilypondfile[le,opzioni,vanno,qui]{nomefile} \musicxmlfile[le,opzioni,vanno,qui]{nomefile}
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, selilypond-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
.
[ << lilypond-book ] | [Inizio][Contenuti][Indice][ ? ] | [ Programmi esterni >> ] | ||
[ < Integrare musica e testo ] | [ Su : Integrare musica e testo ] | [ Texinfo > ] |
Altre lingue: English, català, deutsch, español, français, 日本語.
About automatic language selection.