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

Extender LilyPond v2.25.27 (development-branch).