2.5.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?) #:properties ((par-indent 2)) (interpret-markup-list layout props #{\markuplist \justified-lines { \hspace #par-indent #args } #}))
Die Version nur in Scheme ist etwas komplexer:
#(define-markup-list-command (paragraph layout props args) (markup-list?) #:properties ((par-indent 2)) (interpret-markup-list layout props (make-justified-lines-markup-list (cons (make-hspace-markup par-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 der eingebaute \justified-lines
-Beschriftungslistenbefehl
eingesetzt wird, der verwandt ist mit der
make-justified-lines-markup-list
-Funktion. Horizontaler
Platz wird zu Beginn eingefügt mit \hspace
(oder der
make-hspace-markup
-Funktion). Zuletzt wird die Beschriftungsliste
ausgewertet durch die interpret-markup-list
-Funktion.
Dieser neue Beschriftungslistenbefehl kann wie folgt benutzt werden:
\markuplist { \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. } }