LilyPond erweitern: 2.2.4 Neue Definitionen von Beschriftungslistenbefehlen

### 2.2.4 Neue Definitionen von Beschriftungslistenbefehlen

Beschriftungslistenbefehle können mit dem Scheme-Makro `define-markup-list-command` definiert werden, welches sich ähnlich verhält wie das `define-markup-command`-Makro, das schon beschrieben wurde in Neue Definitionen von Beschriftungsbefehlen. Ein Unterschied ist, dass bei diesem Listen-Makro eine ganze Liste an Stencils ausgegeben wird.

Im folgenden Beispiel wird ein `\paragraph`-Beschriftungslistenbefehl definiert, welcher eine Liste von Zeilen im Blocksatz ausgibt, von denen die erste Zeile eingerückt ist. Der Einzug wird aus dem `props`-Argument entnommen.

>     #(define-markup-list-command (paragraph layout props args) (markup-list?)
>        (let ((indent (chain-assoc-get 'par-indent props 2)))
>          (interpret-markup-list layout props
>            (make-justified-lines-markup-list (cons (make-hspace-markup indent)
>                                                    args)))))

Neben den üblichen `layout` und `props`-Argumenten nimmt der `paragraph`-Beschriftungslistenbefehl als Argument eine Beschriftungsliste, die `args` genannt wird. Das Prädikat für Beschriftungslisten ist `markup-list?`.

Zuerst errechnet die Funktion die Breite des Einzugs, eine Eigenschaft mit der Bezeichnung `par-indent` anhand der Eigenschaftsliste `props`. Wenn die Eigenschaft nicht gefunden wird, ist der Standardwert `2`. Danach wird eine Liste von Zeilen im Blocksatz erstellt, wobei die `make-justified-lines-markup-list`-Funktion eingesetzt wird, die verwandt ist mit dem eingebauten `\justified-lines`-Beschriftungslistenbefehl. Horizontaler Platz wird zu Beginn eingefügt mit der `make-hspace-markup`-Funktion. Zuletzt wird die Beschriftungsliste ausgewertet durch die `interpret-markup-list`-Funktion.

Dieser neue Beschriftungslistenbefehl kann wie folgt benutzt werden:

>     \markuplines {
>       \paragraph {
>         Die Kunst des Notensatzes wird auch als \italic {Notenstich} bezeichnet. Dieser
>         Begriff stammt aus dem traditionellen Notendruck. Noch bis vor etwa
>         20 Jahren wurden Noten erstellt, indem man sie in eine Zink- oder
>         Zinnplatte schnitt oder mit Stempeln schlug.
>       }
>       \override-lines #'(par-indent . 4) \paragraph {
>         Diese Platte wurde dann mit Druckerschwärze versehen, so dass sie
>         in den geschnittenen und gestempelten Vertiefungen blieb. Diese
>         Vertiefungen schwärzten dann ein auf die Platte gelegtes Papier.
>         Das Gravieren wurde vollständig von Hand erledigt.
>       }
>     }

Andere Sprachen: English, español.

#### LilyPond – Extending