Siguiente: Cómo funciona internamente el marcado, Arriba: Interfaz de marcado para el programador
El macro markup
construye expresiones de marcado en Scheme,
proporcionando una sintaxis similar a la de LilyPond. Por ejemplo:
(markup #:column (#:line (#:bold #:italic "hola" #:raise 0.4 "mundo") #:larger #:line ("fulano" "fulanito" "menganito")))
equivale a:
\markup \column { \line { \bold \italic "hola" \raise #0.4 "mundo" } \larger \line { fulano fulanito menganito } }
Este ejemplo muestra las principales reglas de traducción entre la sitaxis del marcado normal de LilyPond y la sintaxis del marcado de Scheme.
LilyPond Scheme \markup marcado1
(markup marcado1)
\markup { marcado1 marcado2 ... }
(markup marcado1 marcado2 ... )
\instruccion
#:instruccion
\variable
variable
\center-column { ... }
#:center-column ( ... )
cadena
"cadena"
#argumento-de-scheme
argumento-de-scheme
Todo el lenguaje Scheme está accesible dentro del macro markup
.
Por ejemplo, podemos usar llamadas a funciones dentro de markup
para así manipular cadenas de caracteres. Esto es útil si se están
definiendo instrucciones de marcado nuevas (véase Definición de una instrucción de marcado nueva).
El argumento markup-list de instrucciones como #:line
,
#:center
y #:column
no pueden se una variable o el
resultado de la llamada a una función.
(markup #:line (funcion-que-devuelve-marcados))
no es válido. Hay que usar las funciones make-line-markup
,
make-center-markup
o make-column-markup
en su lugar:
(markup (make-line-markup (funcion-que-devuelve-marcados)))
Otros idiomas: English.