3.2.4 DocBook

Per inserire frammenti di codice LilyPond è una buona idea mantenere la conformità dei documenti DocBook, in modo da poter usare gli editor DocBook, la validazione, etc. Per questo motivo non vengono forniti elementi personalizzati, ma soltanto delle convenzioni di specifica basate sugli elementi DocBook standard.

Convenzioni comuni

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’.

Includere un file LilyPond

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.

Includere codice LilyPond

È possibile includere codice LilyPond all’interno di un elemento programlisting in cui il linguaggio sia impostato su lilypond, 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.

Elaborare il documento DocBook

L’esecuzione di lilypond-book su un file ‘.lyxml’ crea un documento DocBook valido (con estensione ‘.xml’) che potrà essere ulteriormente elaborato. Usando dblatex, crea 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’.


LilyPond — Utilizzo v2.23.82 (ramo di sviluppo).