B.5.4 Definición de nuevas instrucciones de lista de marcado

Las instrucciones de listas de marcado se definen con el macro de Scheme define-markup-list-command, que es similar al macro define-markup-command descrito en Definición de una instrucción de marcado nueva, excepto que donde éste devuelve un sello único, aquél devuelve una lista de sellos.

En el siguiente ejemplo se define una instrucción de lista de marcado \paragraph, que devuelve una lista de líneas justificadas, estando la primera de ellas sangrada. La anchura del sangrado se toma del argumento 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ón que usa solamente Scheme es más compleja:

#(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))))

Aparte de los argumentos usuales layout y props, la instrucción de lista de marcados paragraph toma un argumento de lista de marcados, llamado args. El predicado para listas de marcados es markup-list?.

En primer lugar, la función toma el ancho del sangrado, una propiedad llamada aquí par-indent, de la lista de propiedades props. Si no se encuentra la propiedad, el valor predeterminado es 2. Después, se hace una lista de líneas justificadas usando la instrucción incorporada de lista de marcados \justified-lines, que está relacionada con la función make-justified-lines-markup-list. Se añade un espacio horizontal al principio usando \hspace (o la función make-hspace-markup). Finalmente, la lista de marcados se interpreta usando la función interpret-markup-list.

Esta nueva instrucción de lista de marcados se puede usar como sigue:

\markuplist {
  \paragraph {
    El arte de la tipografía musical se llama  \italic {grabado (en plancha).}
    El término deriva del proceso tradicional de impresión de música.
    hace sólo algunas décadas, las partituras se hacían cortando y estampando
    la música en una plancha de zinc o lata en una imagen invertida.
  }
  \override-lines #'(par-indent . 4) \paragraph {
    La plancha se tenía que entintar, y las depresiones causadas por los cortes
    y estampados retienen la tinta.  Se formaba una imagen presionando el papel
    contra la plancha.  El estampado y cortado se hacía completamente
    a mano.
  }
}

Extender LilyPond v2.25.15 (rama de desarrollo).