B.5.4 Definició de noves ordres de llista de marcatge
Les ordres de llistes de marcatge es defineixen amb el macro de l’Scheme
define-markup-list-command, que és semblant al macro
define-markup-command descrit a Definició d’una ordre nova de marcatge, excepte que on aquest últim retorna un segell únic,
el primer retorna una llista de segells.
A l’exemple següent es defineix una ordre de llista de marcatge
\paragraph, que retorna una llista de línies justificades,
estant la primera d’elles sagnades. L’amplada del sagnat s’agafa
de l’argument props.
#(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 } #}))
La versió que usa solament Scheme és més complexa:
#(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))))
A part dels arguments usuals layout i props, l’ordre
de llista de marcatge paragraph agafa un argument de llista
de marcatges, cridant args. El predicat per a llistes de
marcatges és markup-list?.
En primer lloc, la funció agafa l’amplada del sagnat, una
propietat anomenada aquí par-indent, de la llista de
propietats props. Si no es troba la propietat, el valor
predeterminat és 2. Després, es fa una llista de línies
justificades usant l’ordre incorporada de llista de marcatges
\justified-lines, que està relacionada amb la funció
make-justified-lines-markup-list. S’afegeix un espai
horitzontal al principi usant \hspace (o la funció
make-hspace-markup). Finalment, la llista de
marcatges s’interpreta usant la funció
interpret-markup-list.
Aquest nova ordre de llista de marcatges es pot usar com segueix:
\markuplist {
\paragraph {
L'art de la tipografia musical s'anomena \italic {gravat (en planxa).}
El terme deriva del procés tradicional d'impressió de música.
Fa sols algunes dècades, les partitures es feien retallant i estampant
la música en una planxa de zinc o llauna en una imatge invertida.
}
\override-lines #'(par-indent . 4) \paragraph {
La planxa s'havia d'entintar, i les depressions causades pels talls
i estampats retenien la tina. Es formava una imatge pressionant el paper
contra la planxa. L'estampat i tallat es feia completament
a mà.
}
}