GNU LilyPond Programmbenutzung: 4.2.4 DocBook

### 4.2.4 DocBook

Bei der Einbindung von Musik im LilyPond-Format in DocBook soll die Konformität unseres DocBook Dokuments erhalten bleiben und damit die Bearbeiten mit DocBook-Editoren sowie die Validierung weiter möglich bleiben. Aus diesem Grund werden in DocBook keine eigenen Tags wie in HTML benutzt, sondern die von den vorhandenen DocBook-Elementen vorgegebenen Konventionen entsprechend benützt.

### Common conventions

Für die Einbindung von LilyPond Code werden in allen Fällen die `mediaobject` und `inlinemediaobject` Elemente benutzt, die unsere Beispiele in einem eigenen Absatz oder im Fließtext einfügen. Die Optionen zur Formatierung mit LilyPond werden dabei in der `role` Eigenschaft des innersten Elements angegeben, wie im nächsten Abschnitt gezeigt wird. Die DocBook Datei, die dann von `lilypond-book` verarbeitet wird, sollte der Klarheit halber die Dateierweiterung ‘`.lyxml`’ (jedenfalls nicht ‘`.xml`’) besitzen.

### Including a LilyPond file

Dies ist der einfachste Fall: Die LilyPond-Datei besitzt die Erweiterung ‘`.ly`’ und wird einfach als `imageobject` eingebettet:

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

Für das äußerste Element kann je nach Bedarf `mediaobject` oder `inlinemediaobject` benutzt werden.

### Including LilyPond code

Die Einbindung von LilyPond-Code direkt in der DocBook-Datei ist durch die Benutzung von `programlisting` möglich, wobei die Sprache auf `lilypond` gesetzt wird:

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

Das äußerste Element ist also `mediaobject` oder `inlinemediaobject`, welches ein `textobject` mit dem `programlisting` enthält.

### Processing the DocBook document

Der Aufruf von `lilypond-book` mit der ‘`.lyxml`’-Datei erzeugt ein gültiges DocBook-Dokument mit der Erweiterung ‘`.xml`’, welches normal weiterverarbeitet werden kann. Bei Benutzung von dblatex wird daraus automatisch eine PDF-Datei erzeugt. Für die Erzeugung von HTML (HTML Hilfe, JavaHelp, etc.) können die offiziellen DocBook XSL-Stylesheets benutzt werden. Eventuell müssen dafür allerdings kleinere Anpassungen vorgenommen werden.

Other languages: English, español.

#### Programmbenutzung