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