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