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