| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Integrating music and text
Questa sezione spiega come integrare LilyPond in vari formati di output.
| 3.2.1 LaTeX | ||
| 3.2.2 Texinfo | ||
| 3.2.3 HTML | ||
| 3.2.4 DocBook |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
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:
\lilypond{…}, dove si può inserire direttamente del
codice lilypond corto
\begin{lilypond}…\end{lilypond}, dove si può inserire
direttamente del codice lilypond più lungo
\lilypondfile{…} per inserire un file lilypond
\musicxmlfile{…} per inserire un file MusicXML, che
sarà elaborato da musicxml2ly e da lilypond.
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, 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.
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}
|
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.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Texinfo
Texinfo è il formato standard per la documentazione del progetto GNU. Un esempio di documento Texinfo è questo stesso manuale. Le versioni del manuale in formato HTML, PDF e Info vengono generate da un documento Texinfo.
lilypond-book fornisce i seguenti comandi e ambienti per includere
musica nei file Texinfo:
\lilypond{…}, dove si può inserire direttamente del
codice lilypond corto
\begin{lilypond}…\end{lilypond}, dove si può inserire
direttamente del codice lilypond più lungo
\lilypondfile{…} per inserire un file lilypond
\musicxmlfile{…} per inserire un file MusicXML, che
sarà elaborato da musicxml2ly e da lilypond.
Nel file di input, la musica viene specificata con uno dei seguenti comandi
@lilypond[le,opzioni,vanno,qui]
IL TUO CODICE LILYPOND
@end lilypond
@lilypond[le,opzioni,vanno,qui]{ IL TUO CODICE LILYPOND }
@lilypondfile[le,opzioni,vanno,qui]{nomefile}
@musicxmlfile[le,opzioni,vanno,qui]{nomefile}
|
Inoltre, @lilypondversion mostra la versione di
lilypond impiegata.
Quando si esegue lilypond-book su di esso, il risultato è un
file Texinfo (con estensione ‘.texi’) contenente degli elementi @image
per l’HTML, Info e l’output per la stampa. lilypond-book genera le
immagini della musica in formati EPS e PDF per l’utilizzo nell’output per la
stampa e in formato PNG per l’utilizzo nell’output HTML e Info.
Vediamo due piccoli esempi. Un ambiente lilypond
@lilypond[fragment] c' d' e' f' g'2 g' @end lilypond |
genera
La versione breve
@lilypond[fragment,staffsize=11]{<c' e' g'>}
|
genera
Diversamente da LaTeX, @lilypond{…} non genera un’immagine
nel testo. Prende sempre un paragrafo proprio.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof HTML
lilypond-book fornisce i seguenti comandi e ambienti per includere
musica nei file HTML:
\lilypond{…}, dove si può inserire direttamente del
codice lilypond corto
\begin{lilypond}…\end{lilypond}, dove si può inserire
direttamente del codice lilypond più lungo
\lilypondfile{…} per inserire un file lilypond
\musicxmlfile{…} per inserire un file MusicXML, che
sarà elaborato da musicxml2ly e da lilypond.
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}
<lilypond le opzioni vanno qui> CODICE LILYPOND </lilypond> <lilypond le opzioni vanno qui: CODICE LILYPOND /> <lilypondfile le opzioni vanno qui>nomefile</lilypondfile> <musicxmlfile le opzioni vanno qui>nomefile</musicxmlfile> |
Ad esempio, puoi scrivere
<lilypond fragment relative=2> \key c \minor c4 es g2 </lilypond> |
lilypond-book genera quindi un file HTML con gli elementi appropriati
per le immagini dei frammenti musicali:
Per le immagini in linea, si usa <lilypond … />, dove le opzioni
sono distinte dalla musica attraverso i due punti, ad esempio
Un po' di musica in <lilypond relative=2: a b c/> una linea di testo. |
Per includere file separati, si usa
<lilypondfile opzione1 opzione2 …>filename</lilypondfile> |
<musicxmlfile> usa la stessa sintassi di <lilypondfile>, ma semplicemente
si riferisce a un file MusicXML invece che a un file LilyPond.
Per una lista di opzioni da usare con gli elementi lilypond e
lilypondfile, si veda Opzioni dei frammenti musicali.
Inoltre, <lilypondversion/> mostra la versione di
lilypond impiegata.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof DocBook
Per inserire frammenti di codice LilyPond è una buona idea mantenere la conformità del documento DocBook, in modo da poter usare gli editor DocBook, la validazione, etc. Quindi non si usano elementi personalizzati, ma si specifica una convenzione basata sugli elementi DocBook standard.
Per inserire un frammento di qualsiasi tipo si usano gli elementi mediaobject
e inlinemediaobject, in modo che il frammento possa essere formattato
in linea o meno. Le opzioni di formattazione del frammento vengono sempre
indicate nella proprietà role dell’elemento più interno (si vedano
le prossime sezioni). Gli elementi sono scelti in modo da permettere agli editor
DocBook di ottenere una formattazione ottimale. I file DocBook da
elaborare con lilypond-book devono avere estensione ‘.lyxml’.
Si tratta del caso più semplice. Bisogna usare l’estensione ‘.ly’ per
il file da includere e inserirlo come uno standard imageobject, con
la seguente struttura:
<mediaobject>
<imageobject>
<imagedata fileref="music1.ly" role="printfilename" />
</imageobject>
</mediaobject>
|
Nota che sei libero di usare mediaobject o inlinemediaobject
come elemento più esterno.
È possibile includere codice LilyPond all’interno di un elemento
programlisting in cui il linguaggio sia impostato su lilypond
e con la seguente struttura:
<inlinemediaobject>
<textobject>
<programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
\context Staff \with {
\remove "Time_signature_engraver"
\remove "Clef_engraver"}
{ c4( fis) }
</programlisting>
</textobject>
</inlinemediaobject>
|
Come si vede, l’elemento più esterno è mediaobject o
inlinemediaobject e c’è un textobject che contiene al
suo interno il programlisting.
L’esecuzione di lilypond-book su un file ‘.lyxml’ creerà un
documento DocBook valido con estensione ‘.xml’ che potrà essere
ulteriormente elaborato. Usando
dblatex, creerà automaticamente un file
PDF da questo documento. Per generare l’HTML (HTML Help,
JavaHelp etc.) si possono usare i fogli di stile DocBook XSL ufficiali;
tuttavia è possibile che sia necessario modificarli un po’.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] |
This document was generated by gub on Luglio 13, 2020 using texi2html 1.82.
Altre lingue: English, català, deutsch, español, français, 日本語.
A proposito della selezione automatica della lingua.