LilyPond: manual d'utilització del programa: 3.2.4 DocBook

### 3.2.4 DocBook

Per inserir fragments del LilyPond convé intentar mantenir la conformitat del document del DocBook, permetent d’aquesta manera l’ús d’editors del DocBook, validació, etc. Així doncs, no usem etiquetes personalitzades, sols especifiquem una convenció basada en els elements estàndard del DocBook.

### Convencions usuals

Per inserir tota classe de fragments utilitzem els elements `mediaobject` i `inlinemediaobject`, de forma que els nostres fragments poden formatar-se en línia o fora de línia. Les opcions de format del fragment s’escriuen sempre dins de la propietat `role` de l’element més intern (vegeu les seccions següents). Les etiquetes s’escullen de forma que permetin als editors del DocBook formatar el contingut satisfactòriament. Els fitxers del Docbook que es processaran amb `lilypond-book` han de tenir l’extensió ‘`.lyxml`’.

### Inclusió d’un fitxer del LilyPond

Aquest és el cas més senzill. Hem d’usar l’extensió ‘`.ly`’ per al fitxer inclòs, i inserir-lo com un `imageobject` estàndard, amb l’estructura següent:

>     <mediaobject>
>       <imageobject>
>         <imagedata fileref="music1.ly" role="printfilename" />
>       </imageobject>
>     </mediaobject>

Observeu que podeu usar mediaobject o inlinemediaobject com l’element més extern, a la vostra elecció.

### Inclusió de codi del LilyPond

Es pot incloure codi del LilyPond mitjançant la utilització d’un element `programlisting`, en el qual el llenguatge s’estableix com `lilypond` amb l’estructura següent:

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

Com es pot veure, l’element més extern és un `mediaobject` o un `inlinemediaobject`, i hi ha un element `textobject` que porta el `programlisting` en el seu interior.

### Processament del document de Docbook

En executar `lilypond-book` sobre el fitxer ‘`.lyxml`’ es crearà un document de DocBook vàlid que es pot processar posteriorment amb l’extensió ‘`.xml`’. Si useu dblatex, crearà un fitxer PDF automàticament a partir d’aquest document. Per a la generació d’HTML (HTML Help, JavaHelp, etc.) podeu usar les fulles d’estil oicial de DocBook, tot i que és possible que haureu d’aplicar-les algun tipus de personalització.

#### LilyPond — Utilització v2.24.4 (branca estable).