LilyPond: manuale d'uso del programma: 3.2.4 DocBook

### 3.2.4 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.

### 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` 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`.

### Elaborare il documento DocBook

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

#### LilyPond — Utilizzo v2.22.2 (ramo stabile).