8.2.1 Introducción al marcado de texto

Se usa un bloque \markup o \markuplist para tipografiar texto con una sintaxis ampliable que se denomina “modo de marcado”. Tales bloques se pueden usar en muchos contextos (see Panorámica de los objetos de texto).

Dentro del modo de marcado, las palabras se imprimen como están. Una palabra única no necesita comillas.

\markup intenso
[image of music]

Se pueden agrupar varias palabras juntas encerrándolas entre comillas.

\markup "molto intenso"
[image of music]

Aparte de agrupar, el entrecomillado también permite escribir caracteres especiales como ‘\’ y ‘#’ sin que afecten al formateado del texto. El propio símbolo de comillas dobles se puede imprimir haciéndolo preceder de una barra inclinada invertida.

\relative {
  a'1^"\italic markup..."
  a_\markup { \italic "... prints \"italic\" letters!" }
  a a
}
[image of music]

El formateo se hace por medio de las instrucciones de marcado. Su nombre se escribe precedido de una barra invertida. Estas instrucciones esperan un número variable de argumentos que son específicos de cada una. Para ver una lista exhaustiva de las instrucciones específicas de \markup, see Instrucciones de marcado de texto.

\markup \italic "string. assai"
\markup \with-color "red" intenso
[image of music]

Se pueden anidar las instrucciones de marcado. El bloque de marcado termina cuando todas las instrucciones han recibido sus correspondientes argumentos.

\markup \with-color "red" \italic intenso
[image of music]

Se pueden agrupar varias expresiones de marcado encerrándolas entre llaves, para formar lo que se conoce como una lista de marcados. Sin ningún formateo posterior, los elementos de una lista de marcados se tipografían en fila.

\markup { molto \italic intenso }
[image of music]

Ciertas instrucciones no esperan un elemento de marcado, sino una lista de marcados, permitiendo arreglos de texto más complejos que la mera impresión en fila.

\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  "Karl Amadeus Hartmann"
}
[image of music]

Asimismo, algunas instrucciones no devuelven un marcado, sino una lista. El resultado se puede usar luego allí donde se espere una lista de marcados. Para ver una lista de estas instrucciones, see Instrucciones de lista de marcado de texto.

\markup \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"
[image of music]
\markup \center-column \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"
[image of music]

Los elementos de una lista de marcados anidada se tratan simplemente como elementos de la lista de marcados principal.

\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  { Karl Amadeus \smallCaps Hartmann }
}
[image of music]

Para agrupar los elementos de una lista de marcados anidada en una fila, aplique la instrucción \line a la lista de marcados. Esto apila horizontalmente los elementos de la lista de marcados, formando un marcado único.

\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  \line { Karl Amadeus \smallCaps Hartmann }
}
[image of music]

Hay una funcionalidad especial que es el manejo de instrucciones que toman elementos de marcado cuando se aplican a listas. Cuando una instrucción espera un elemento de marcado como último argumento, y se da una lista como argumento, la instrucción se aplica a cada uno de los marcados individuales dentro de la lista.

\markup \box { Karl Amadeus \smallCaps Hartmann }
[image of music]

En este caso, el resultado es a su vez una lista de marcados, que se puede pasar a una instrucción que espere una lista de marcados o a una que espere un marcado sencillo, de nuevo con el comportamiento de asignación que se ha descrito en el caso anterior.

\markup \center-column \box { Karl Amadeus \smallCaps Hartmann }
\markup \rotate #30 \box { Karl Amadeus \smallCaps Hartmann }
[image of music]

Aplique \line a una lista de marcados para hacer que se la trate como un argumento de marcado sencillo.

\markup \box { Karl Amadeus \smallCaps Hartmann }
\markup \box \line { Karl Amadeus \smallCaps Hartmann }
[image of music]

Cuando el contenido completo de una expresión de \markup es una lista de marcados, se tipografía implícitamente usando la instrucción \line. Así, los elementos se apilan horizontalmente y se agrupan como un bloque de texto único e indivisible. La instrucción \markuplist actúa de forma diferente: espera una lista de marcados, e imprime los marcados individuales sobre la página apilándolos verticalmente, permitiendo saltos de página. El ejemplo siguiente ilustra la diferencia.

\markup \box \wordwrap {
  Lorem ipsum dolor sit amet, consectetur
  adipisicing elit, sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.  Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.
}

\markuplist \box \wordwrap-lines {
  Lorem ipsum dolor sit amet, consectetur
  adipisicing elit, sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.  Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.
}
[image of music]

Los marcados se pueden almacenar dentro de variables, para reutilizarlos en cualquier contexto en el que se acepte un elemento de marcado. Por ejemplo, estas variables se pueden adjuntar directamente a las notas:

allegro = \markup \bold \large Allegro

{
  d''8.^\allegro
  d'16 d'4 r2
}
[image of music]

La sintaxis \etc permite definir instrucciones abreviadas que se pueden usar como instrucciones de marcado.

\markup reddish = \markup \with-color "tomato" \etc

\markup { molto \reddish intenso }
[image of music]

El funcionamiento interno de las instrucciones de marcado y cómo implementar instrucciones más complejas, se explica en Markup functions.

Véase también

Referencia de la notación: Panorámica de los objetos de texto, Instrucciones de marcado de texto, Instrucciones de lista de marcado de texto.

Manual de extensión: Funciones de marcado.

Archivos instalados: scm/markup.scm, scm/define-markup-commands.scm.

Fragmentos de código: Text.

Referencia de funcionamiento interno: TextScript.

Advertencias y problemas conocidos

Los mensajes de error de sintaxis para el modo de marcado suelen ser bastante confusos.


Referencia de la notación de GNU LilyPond v2.25.31 (development-branch).