@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
    Translation of GIT committish: 0b6116534c2f1f1cf56565ee1f2eeb9b24172c85

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
    Guide, node Updating translation committishes..
@end ignore

@c \version "2.25.6"

@node Text
@chapter Texto

@lilypondfile[quote]{snippets/text-headword.ly}

Esta sección explica cómo incluir texto (con diversos estilos de
formateo) en las partituras.


@node Writing text
@section Escritura del texto

Esta sección presenta las distintas formas de añadir texto a una
partitura.

@cindex texto, en otros idiomas
@warning{Para escribir texto con caracteres acentuados y
especiales (como los de idiomas distintos del inglés),
sencillamente inserte los caracteres directamente en el archivo de
LilyPond.  El archivo se debe guardar como UTF-8.  Para ver más
información, consulte @ref{Text encoding}.}


@node Text objects overview
@subsection Panorámica de los objetos de texto

@funindex \markup
@cindex texto, objeto
@cindex marcado, objeto
@cindex objecto, marcado

Los objetos de texto sencillos se introducen como simples cadenas
entrecomilladas (que son opcionales para una sola palabra). El
modo de marcado es una herramienta más flexible que puede aceptar
una variedad de posibilidades avanzadas de formato y gráficas,
como se detalla en la sección @ref{Formatting text}.

Así, los bloques de marcado se pueden utilizar:
@itemize
@item
dentro de cualquier objeto del tipo @code{TextScript} (aplicado a
una nota con @code{-}, @code{^} o@tie{}@code{_}); véase @ref{Text scripts};

@item
como @q{spanners} u objetos extensos, cuando ciertas indicaciones
se prolongan sobre varios pulsos o compases.  Véase @ref{Text spanners};

@item
dentro de cualquier marca impresa por encima de los pentagramas,
tales como obletos @code{RehearsalMark} (letras de ensayo) o
@code{MetronomeMark} (indicaciones de tempo) introducidos
respectivamente con las palabras clave @code{\mark} y
@code{\tempo}; véase @ref{Text marks};

@item
como bloques de texto autosuficientes, que se introducen en el
nivel jerárquico superior fuera de cualquier bloque @code{\score}
(en este caso es obligatoria la instrucción @code{\markup} o
@code{\markuplist}, y no se puede omitir en favor de una simple
cadena de texto entrecomillada); véase @ref{Separate text};

@item
en cualquier definición dentro del bloque @code{\header} (como
@code{title}, @code{subtitle}, @code{composer}), o en elementos
específicos definidos dentro del bloque @code{\paper} tales como
@code{evenHeaderMarkup} para los números de página.  Esto se
explica en la sección @ref{Titles and headers}.
@end itemize

Muchos otros objetos basados en texto se pueden escribir como
bloques de marcado, incluso cuando este no sea su uso principal.
@itemize
@item
Las digitaciones se pueden sustituir fácilmente con bloques de
marcado, si se escriben con la instrucción @code{\finger}; véase
@ref{Fingering instructions}.

@item
Las sílabas de la letra de una canción se pueden formatear por
medio de la instrucción @code{\markup}; véase @ref{Common notation for vocal music}.

@item
Los nombres de acordes están, de hecho, definidos como bloques de
marcado, y por tanto se pueden redefinir de la misma forma para
personalizar los modificadores o las excepciones de acorde; véase
@ref{Displaying chords}.

@item
Los matices dinámicos se escriben habitualmente de una forma
sencilla; sin embargo, es posible definir @ref{New dynamic marks}
como objetos de marcado.  Ciertas dinámicas como @emph{crescendo}
se imprimen como objetos extensos y se pueden redefinir a través
de propiedades como @code{crescendoText}; véase @ref{Dynamics}.

@item
Otros objetos menos frecuentes también están hechos con bloques de
marcado, como las indicaciones del tipo @emph{globos de ayuda}
(véase @ref{Balloon help}).
@end itemize

De hecho es posible usar la instrucción @code{\markup} para
personalizar la apariencia de prácticamente cualquier objeto
gráfico (o @q{grob}), bien sea sobreescribiendo su propiedad
@code{text}, si la tiene, o bien su propiedad @code{stencil}.  Una
parte de la lógica que hace posible todo esto, está explicada en
@ressaynamed{Flexible architecture, Arquitectura flexible}.

El ejemplo que aparece a continuación ilustra la omnipresencia de
los bloques de marcado, no solo como algunos de los objetos
relacionados más arriba, sino también en sustitución de objetos
musicales por objetos de texto a través de distintos métodos.

@lilypond[quote, verbatim,line-width=4\in]
\header { title = \markup "Header" }

dyn =
#(make-dynamic-script #{ \markup \serif "DynamicText" #})

\markup \box "Top-level markup"

\score {
  <<
    \new ChordNames
    \with {
      majorSevenSymbol = \markup "majorSevenSymbol"
    }
    \chordmode { c1:maj7 }
    \new Staff {
      \tempo \markup "MetronomeMark"
      \textMark "TextMark"
      \once \override TupletNumber.text =
        \markup "TupletNumber"
      \tuplet 3/2 {
        \once \override NoteHead.stencil =
          #ly:text-interface::print
        \once \override NoteHead.text =
          \markup \lower #0.5 "NoteHead"
        c''8^\markup \italic "TextScript"
        a'\finger \markup \serif "Fingering"
        \once \override Rest.stencil =
          #(lambda (grob)
             (grob-interpret-markup grob #{
               \markup  "Rest"
               #}))
        r
      }
    }
    \new Lyrics \lyricmode {
      \markup \smallCaps "LyricText" 1
    }
    \new Dynamics { s1\dyn }
  >>
}
@end lilypond

@morerefs
Referencia de la notación:
@ref{Formatting text},
@ref{Text scripts},
@ref{Text spanners},
@ref{Text marks},
@ref{Separate text},
@ref{Fingering instructions},
@ref{Common notation for vocal music},
@ref{Displaying chords},
@ref{New dynamic marks},
@ref{Dynamics},
@ref{Balloon help}.

Ensayo sobre grabado musical automatizado:
@ressaynamed{Flexible architecture, Arquitectura flexible}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.
@endmorerefs


@node Text scripts
@subsection Inscripciones textuales

@cindex texto, inscripciones de
@cindex texto, elementos no vacíos de
@cindex no vacíos, textos
@cindex texto destacado

Es posible añadir indicaciones textuales a una partitura
escribiéndolas entre comillas como se muestra en el ejemplo
siguiente.  Estas indicaciones se pueden colocar manualmente por
encima o por debajo del pentagrama, utilizando la sintaxis que se
describe en @ref{Direction and placement}.

@lilypond[quote,verbatim]
\relative { a'8^"pizz." g f e a4-"scherz." f }
@end lilypond

Esta sintaxis es en realidad una abreviatura; se puede añadir
explícitamente a una nota un formateado de texto más complejo
utilizando un bloque @code{\markup}, como se describe bajo
@ref{Formatting text}.

@lilypond[quote,verbatim]
\relative {
  a'8^\markup { \italic pizz. } g f e
  a4_\markup { \tiny scherz. \bold molto } f }
@end lilypond

De forma predeterminada, las indicaciones de texto no afectan al
espaciado de las notas.  Sin embargo, su anchura sí podría tenerse
en cuenta: en el siguiente ejemplo, la primera cadena de texto no
afecta al espaciado, pero la segunda sí afecta.

@lilypond[quote,verbatim]
\relative {
  a'8^"pizz." g f e
  \textLengthOn
  a4_"scherzando" f
}
@end lilypond

Se pueden adjuntar articulaciones a las notas, además de
inscripciones de texto.  Para ver más información, consulte
@ref{Articulations and ornamentations}.

Para ver más información sobre el orden relativo de las
inscripciones de texto y las articulaciones, consulte
@rlearningnamed{Placement of objects, Colocación de los objetos}.

@predefined
@funindex \textLengthOn
@funindex \textLengthOff

@code{\textLengthOn},
@code{\textLengthOff}.
@endpredefined

@morerefs
Manual de aprendizaje:
@rlearningnamed{Placement of objects, Colocación de los objetos}.

Referencia de la notación:
@ref{Formatting text},
@ref{Direction and placement},
@ref{Articulations and ornamentations}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs


@cindex texto, fuera del margen
@cindex margen, texto fuera del
@cindex texto, mantener dentro del margen
@cindex letra, mantener dentro del margen

@knownissues
La comprobación necesaria para asegurar que las inscripciones de
texto y la letra de las canciones se mantienen dentro de los
márgenes, requiere cálculos adicionales.  En caso de que desee un
proceso ligeramente más rápido, puede utilizar

@example
\override Score.PaperColumn.keep-inside-line = ##f
@end example


@node Text spanners
@subsection Objetos extensos de texto

@cindex texto, elemento de extensión de

Ciertas indicaciones de ejecución, p.ej., @i{rallentando} o
@i{accelerando}, se escriben como texto y se extienden sobre
muchos compases mediante líneas de puntos.  Estos objetos, que
reciben el nombre de @q{spanners} u objetos de extensión, se
pueden crear desde una nota hasta otra usando la siguiente
sintaxis:

@lilypond[verbatim,quote]
\relative {
  \override TextSpanner.bound-details.left.text = "rit."
  b'1\startTextSpan
  e,\stopTextSpan
}
@end lilypond

@cindex texto, formateado de los elementos de extensión
@cindex formato, de los elementos de extensión de texto

@noindent
La cadena de texto que imprimir se establece a través de
propiedades de objeto.  De forma predeterminada se imprime en
estilo cursiva, pero se pueden conseguir distintos efectos de
formato utilizando bloques @code{\markup}, como se describe en
@ref{Formatting text}.

@lilypond[quote,verbatim]
\relative {
  \override TextSpanner.bound-details.left.text =
    \markup { \upright "rit." }
  b'1\startTextSpan c
  e,\stopTextSpan
}
@end lilypond

Tanto el estilo de la línea como la cadena de texto, se pueden
definir como una propiedad de objeto.  Esta sintaxis se describe
en @ref{Line styles}.

@predefined
@funindex \textSpannerUp
@funindex \textSpannerDown
@funindex \textSpannerNeutral
@funindex \startTextSpan
@funindex \stopTextSpan

@code{\textSpannerUp},
@code{\textSpannerDown},
@code{\textSpannerNeutral},
@code{\startTextSpan},
@code{\stopTextSpan}.
@endpredefined

@knownissues
LilyPond solo puede manejar un objeto de extensión de texto por
cada voz.

Los textos de los extremos de un elemento de extensión de texto
pueden presentar colisiones.

@lilypond[verbatim,quote]
{
  \once \override TextSpanner.bound-details.left.text = "The text is"
  \once \override TextSpanner.bound-details.right.text = "too long"
  c'2\startTextSpan d'2\stopTextSpan
}
@end lilypond

En @ref{Horizontal spacing} podemos encontrar soluciones
alternativas.

@snippets

@cindex matiz, extensión de texto, personalizar
@cindex texto, extensión de, matiz, personalizar
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/dynamics-spanner-with-custom-text.ly}


@morerefs
Referencia de la notación:
@ref{Line styles},
@ref{Dynamics},
@ref{Formatting text}.

Fragmentos de código:
@rlsrnamed{Text,Texto},
@rlsrnamed{Expressive marks,Marcas de expresión}.

Referencia de funcionamiento interno:
@rinternals{TextSpanner}.
@endmorerefs


@node Section labels
@subsection Etiquetas de sección

@cindex sección, etiqueta
@cindex texto, sobre la barra de compás

@funindex \sectionLabel

La instrucción @code{\sectionLabel} marca el comienzo de un pasaje
con nombre.  Su uso es adecuado en una división de sección creada
con @code{\section}, pero no implica a @code{\section} y se puede
usar de forma aislada.

@lilypond[verbatim,quote]
\fixed c' {
  \sectionLabel "Verse"
  c2 g
  \section
  \sectionLabel \markup { \rounded-box { Chorus } }
  g2 c
  \bar "|."
}
@end lilypond

@morerefs
Referencia de la notación:
@ref{Formatting text},
@ref{Rehearsal marks},
@ref{Section divisions}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{SectionLabel},
@rinternals{SectionLabelEvent}.
@endmorerefs


@node Text marks
@subsection Marcas de texto

@cindex texto, indicaciones de
@cindex texto, entre las notas
@cindex texto, al inicio de una línea
@cindex texto, sobre la barra de compás
@cindex texto, al final de la partitura
@cindex calderón, sobre la línea divisoria
@cindex línea, divisoria, símbolos sobre las
@cindex línea, divisoria, texto sobre las

@funindex \textMark
@funindex \textEndMark
@funindex \markup


Las marcas o llamadas de texto son objetos textuales que, a
diferencia de las inscripciones de texto (@pxref{Text scripts}),
no se imprimen sobre las notas sino entre ellas, a menudo
alineadas a una barra de compás.

@funindex \mark

@warning{Versiones antiguas de LilyPond usaban la instrucción
@code{@bs{}mark} para las marcas de texto, aunque está indicada
principalmente para las llamadas de ensayo (@pxref{Rehearsal
marks}).  Las instrucciones @code{@bs{}textMark} y
@code{@bs{}textEndMark} están más indicadas para marcas de texto
en cuanto a su configuración predeterminada, así como a la
posibilidad de tener varias marcas de texto en el mismo punto.
Por tanto, se recomienda usar @code{@bs{}textMark} y
@code{@bs{}textEndMark} en lugar de @code{@bs{}mark "Texto"} o
@code{@bs{}mark @bs{}markup @dots{}}.  Observe que si estamos
convirtiendo texto que usa @code{@bs{}mark} para las marcas de
texto, las sobreescrituras que usan @code{RehearsalMark} se deben
cambiar por @code{TextMark}.}

Antes de usar marcas o llamadas de texto, se recomienda buscar una
instrucción más específica, si hay alguna disponible.  Para los
textos que identifican una sección, use @code{\sectionLabel}
(@pxref{Section labels}).  Para las indicaciones de salto, use
@code{\jump} (@pxref{Manual repeat marks}).  Estas instrucciones
tienen distintas configuraciones de disposición predeterminadas, y
crean objetos separados que se pueden formatear de forma diferente
de las marcas de texto genéricas, en las hojas de estilo.

Se introduce una marca de texto usando @code{\textMark} o
@code{\textEndMark}.  La instrucción @code{\textMark} dibuja una
marca alineada a la izquierda.

@lilypond[verbatim,quote]
\fixed c'' {
  \textMark "Fl. 1 solo"
  c4 e g2
  \textMark "A due"
  e4 g c'2
}
@end lilypond

Si se produce un salto de línea en el lugar donde se ha usado la
@code{\textMark}, el texto aparece en el sistema siguiente.

@lilypond[verbatim,quote,ragged-right]
\fixed c'' {
  \textMark "Fl. 1 solo"
  c4 e g2
  \break
  \textMark "A due"
  e4 g c'2
}
@end lilypond

A diferencia de @code{\textMark}, @code{\textEndMark} creao una
marca alineada por la derecha.  Si se produce sobre un salto de
línea, se imprime en el sistema anterior.

@lilypond[verbatim,quote,ragged-right]
\fixed c' {
  \repeat volta 2 {
    c4 e8 f g2
    e4 f8 g c'2
    \textEndMark "ad lib"
  }
  \break
  c'4 8 8 4 8 8
  c'1
}
@end lilypond

Se puede hacer un formateo complejo de los textos usando un bloque
@code{\markup} (@pxref{Formatting text}).

@lilypond[quote,verbatim]
\relative {
  <c' e>1
  \textMark \markup { \italic { colla parte } }
  <d f>2 <e g>
  <c f aes>1
}
@end lilypond

@funindex \markLengthOn
@funindex \markLengthOff

Las instrucciones @code{\markLengthOn} y @code{\markLengthOff}
(@pxref{Metronome marks}) también se pueden usar en las marcas de
texto.

@lilypond[verbatim,quote]
{
  \mark \default
  c'2 2
  \textEndMark "long mark text"
  \markLengthOn
  2 2
  \mark \default
  2 2
  \textEndMark "long mark text"
}
@end lilypond

@cindex texto, marca, debajo del pentagrama

Las marcas de texto se pueden imprimir debajo del pentagrama.

@lilypond[verbatim,quote]
\fixed c' {
  c4 g c'8 b c4 e' c' c2
  c4 g c'8 b c4 e' c' g2
  e'4 c' c'8 b c'4
  g4 c' c2~ c1
  \tweak direction #DOWN
    \tweak font-size -1
      \textEndMark "Composed on November 13th, 2020"
}
@end lilypond

@cindex texto, marca, apilamiento vertical

Puede haber varias marcas de texto en el mismo momento.  El orden
en que se apilan se puede sobreescribir usando la propiedad
@code{outside-staff-priority} (@pxref{Vertical collision
avoidance}).  Como alternativa, una marca de texto única con
@code{\markup \column @{ @dots{} @} } puede conseguir el mismo
efecto.

@lilypond[verbatim,quote]
\fixed c' {
  \repeat volta 2 {
    c4 g c'8 b c4 e' c' c2
    \textEndMark "ad lib."
    \tweak outside-staff-priority 1200
      \tweak font-size -1
        \textEndMark "2nd time a due"
  }
}
@end lilypond

@cindex texto, marca, alineación

Se puede alterar la alineación de una marca de texto.

@lilypond[verbatim,quote]
{
  c'8 8 8 8 8 8 8 8
  \textMark \markup \column {
    \line { Left-aligned mark }
    \line { (default for \concat { \typewriter "\\textMark" ) } }
  }
  d'8 8 8 8 8 8 8 8
}

{
  c'8 8 8 8 8 8 8 8
  \tweak self-alignment-X #CENTER
    \textMark "Centered mark"
  d'8 8 8 8 8 8 8 8
}

{
  c'8 8 8 8 8 8 8 8
  \tweak self-alignment-X #RIGHT
    \textMark \markup \right-column {
      \line { Right-aligned mark }
      \line { (default for \concat { \typewriter "\\textEndMark" ) } }
    }
  d'8 8 8 8 8 8 8 8
}
@end lilypond


@predefined
@code{\textMark},
@code{\textEndMark},
@code{\markLengthOn},
@code{\markLengthOff}.
@endpredefined

@snippets

@c Also in 'Rehearsal marks'.
@cindex texto, en todos los pentagramas
@funindex Text_mark_engraver
@funindex Staff_collecting_engraver
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/printing-marks-on-every-staff.ly}


@morerefs
Referencia de la notación:
@ref{Metronome marks},
@ref{Rehearsal marks},
@ref{Section labels},
@ref{Formatting text},
@ref{Music notation inside markup},
@ref{The Emmentaler font}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextMarkEvent},
@rinternals{Text_mark_engraver},
@rinternals{TextMark}.
@endmorerefs


@node Separate text
@subsection Texto separado

@cindex separado, texto
@cindex texto separado
@cindex independiente, texto
@cindex nivel superior, texto del
@cindex texto del nivel superior
@cindex texto independiente

@funindex \markup

Un bloque @code{\markup} o @code{\markuplist} puede existir de
forma independiente, fuera de cualquier bloque @code{\score}, como
una @qq{expresión de nivel superior}.  Esta sintaxis se describe
en @ref{File structure}.

@lilypond[verbatim,quote]
\markup {
  Tomorrow, and tomorrow, and tomorrow...
}
@end lilypond

@noindent
Esto hace posible imprimir texto separado de la música, lo que es
especialmente útil cuando el archivo de entrada contiene varias
piezas, tal y como se describe en @ref{Multiple scores in a book}.

@lilypond[quote,verbatim]
\score {
  c'1
}
\markup {
  Tomorrow, and tomorrow, and tomorrow...
}
\score {
  c'1
}
@end lilypond

Using @code{\markuplist}, los bloques de texto independientes
pueden abarcar varias páginas, posibilitando la impresión de
documentos de texto o libros íntegramente desde LilyPond.  Para
ver una descripción de esta funcionalidad y la sintaxis que
requiere, @pxref{Text markup introduction}.

@predefined
@funindex \markup
@funindex \markuplist

@code{\markup},
@code{\markuplist}.
@endpredefined


@snippets

@cindex texto, en columnas
@cindex columna, texto en
@cindex marcado, dos columnas
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/stand-alone-two-column-markup.ly}


@morerefs
Referencia de la notación:
@ref{Formatting text},
@ref{File structure},
@ref{Multiple scores in a book}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs


@node Formatting text
@section Formatear el texto

Esta sección presenta los formateados básico y avanzado de texto,
usando la sintaxis específica del modo de @emph{markup} o de
marcado.


@node Text markup introduction
@subsection Introducción al marcado de texto

@cindex marcado
@cindex texto, marcado de
@cindex marcado, de texto
@cindex tipografiar texto

@funindex \markup

Se usa un bloque @code{\markup} o @code{\markuplist} para
tipografiar texto con una sintaxis ampliable que se denomina
@qq{modo de marcado}.  Tales bloques se pueden usar en muchos
contextos (@pxref{Text objects overview}).

@cindex marcado, expresión de
@cindex expresión, de marcado
@cindex marcado, sintaxis
@cindex sintaxis del marcado

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

@lilypond[verbatim,quote]
\markup intenso
@end lilypond

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

@lilypond[verbatim,quote]
\markup "molto intenso"
@end lilypond

@cindex carácter, especial, en modo de marcado
@cindex marcado, caracteres especiales en modo de
@cindex reservados, impresión de caracteres
@cindex impresión, de caracteres especiales
@cindex texto, entrecomillado en modo de marcado

Aparte de agrupar, el entrecomillado también permite escribir
caracteres especiales como @samp{\} y @samp{#} 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.

@lilypond[quote,verbatim]
\relative {
  a'1^"\\italic markup..."
  a_\markup { \italic "... prints \"italic\" letters!" }
  a a
}
@end lilypond

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 @code{\markup}, @pxref{Text markup commands}.

@lilypond[verbatim,quote]
\markup \italic "string. assai"
\markup \with-color "red" intenso
@end lilypond

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

@lilypond[verbatim,quote]
\markup \with-color "red" \italic intenso
@end lilypond

@cindex marcado, lista
@cindex lista de marcados

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

@lilypond[verbatim,quote]
\markup { molto \italic intenso }
@end lilypond

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.

@lilypond[verbatim,quote]
\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  "Karl Amadeus Hartmann"
}
@end lilypond

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,
@pxref{Text markup list commands}.

@lilypond[verbatim,quote]
\markup \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"
@end lilypond

@lilypond[verbatim,quote]
\markup \center-column \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"
@end lilypond

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

@lilypond[verbatim,quote]
\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  { Karl Amadeus \smallCaps Hartmann }
}
@end lilypond

@funindex \line

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

@lilypond[verbatim,quote]
\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  \line { Karl Amadeus \smallCaps Hartmann }
}
@end lilypond

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.

@lilypond[verbatim,quote]
\markup \box { Karl Amadeus \smallCaps Hartmann }
@end lilypond

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.

@lilypond[verbatim,quote]
\markup \center-column \box { Karl Amadeus \smallCaps Hartmann }
\markup \rotate #30 \box { Karl Amadeus \smallCaps Hartmann }
@end lilypond

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

@lilypond[verbatim,quote]
\markup \box { Karl Amadeus \smallCaps Hartmann }
\markup \box \line { Karl Amadeus \smallCaps Hartmann }
@end lilypond

@cindex marcado, de varias páginas
@cindex marcado, texto, de varias páginas
@cindex texto, extendido sobre más de una página
@cindex página, salto, dentro de un marcado

@funindex \markuplist
@funindex \justified-lines
@funindex \wordwrap-lines
@funindex \line

Cuando el contenido completo de una expresión de @code{\markup} es
una lista de marcados, se tipografía implícitamente usando la
instrucción @code{\line}.  Así, los elementos se apilan
horizontalmente y se agrupan como un bloque de texto único e
indivisible.  La instrucción @code{\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.

@lilypond[quote,verbatim]
\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.
}
@end lilypond

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:

@lilypond[quote,verbatim]
allegro = \markup \bold \large Allegro

{
  d''8.^\allegro
  d'16 d'4 r2
}
@end lilypond

@funindex \etc

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

@lilypond[quote,verbatim]
\markup reddish = \markup \with-color "tomato" \etc

\markup { molto \reddish intenso }
@end lilypond

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

@morerefs
Referencia de la notación:
@ref{Text objects overview},
@ref{Text markup commands},
@ref{Text markup list commands}.

Manual de extensión:
@rextendnamed{Markup functions, Funciones de marcado}.

Archivos instalados:
@file{scm/markup.scm},
@file{scm/define-markup-commands.scm}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs

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


@node Selecting font and font size
@subsection Seleccionar la tipografía y su tamaño

@cindex fuente tipográfica, cambiar
@cindex cambio de la fuente tipográfica

@funindex \italic
@funindex \bold
@funindex \underline

Está contemplado de forma básica el cambio de la fuente
tipográfica en el modo de marcado:

@lilypond[quote,verbatim]
\relative {
  d''1^\markup {
    \bold { Più mosso }
    \italic { non troppo \underline Vivo }
  }
  r2 r4 r8
  d,_\markup { \italic quasi \smallCaps Tromba }
  f1 d2 r
}
@end lilypond

@cindex fuente tipográfica (marcado)
@cindex texto, tamaño de
@cindex marcado, tamaño del texto

@funindex text-font-size
@funindex \abs-fontsize
@funindex \fontsize
@funindex \smaller
@funindex \larger
@funindex \magnify

El tamaño de texto global para los elementos de marcado se puede
fijar con la variable de papel @code{text-font-size}.  Es útil
para ajustar el tamaño a una fuente tipográfica distinta que puede
aparecer más pequeña o más grande aunque tenga el mismo tamaño
nominal de fuente.  El valor se da en puntos (sin especificar las
unidades); el valor predeterminado depende de la altura del
pentagrama y se calcula como @code{(altura-del-pentagrama / 20 *
11)}.

@xref{Distances and measurements} para más información acerca de
las dimensiones usadas por LilyPond.

@lilypond[quote,verbatim]
\score {
  { f'^"Default text size" }
  \layout { text-font-size = 10 }
}

\score {
  { f'^"Default text size" }
  \layout { text-font-size = 20 }
}
@end lilypond

El tamaño de la fuente tipográfica se puede alterar en relación al
tamaño global del texto, de una serie de formas como se ve a
continuación.

Se puede fijar a un tamaño predefinido:

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \huge Sinfonia }
  b1^\markup { \teeny da }
  b1-\markup { \normalsize camera }
}
@end lilypond

Se puede establecer a un tamaño relativo al valor anterior:

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \larger Sinfonia }
  b1^\markup { \smaller da }
  b1-\markup { \magnify #0.6 camera }
}
@end lilypond

Se puede aumentar o disminuir de forma relativa al valor fijado
por el tamaño global del pentagrama:

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \fontsize #-2 Sinfonia }
  b1^\markup { \fontsize #1 da }
  b1-\markup { \fontsize #3 camera }
}
@end lilypond

También se puede establecer a un tamaño de puntos fijo,
independientemente del tamaño global del pentagrama:

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \abs-fontsize #20 Sinfonia }
  b1^\markup { \abs-fontsize #8 da }
  b1-\markup { \abs-fontsize #14 camera }
}
@end lilypond

Si el texto incluye espacios, es mejor escribir todo entre
comillas, de forma que el tamaño de cada espacio sea correcto para
el tamaño de los otros caracteres.

@lilypond[quote,verbatim]
\markup \fontsize #6 \bold { Sinfonia da camera }
\markup \fontsize #6 \bold { "Sinfonia da camera" }
@end lilypond

@cindex subíndice
@cindex superíndice

@funindex \super
@funindex \sub
@funindex \normal-size-super

El texto se puede imprimir como subíndice o como superíndice.  De
forma predeterminada se imprimen en un tamaño menor, pero también
se puede usar un tamaño normal:

@lilypond[quote,verbatim]
\markup {
  \column {
    \line { 1 \super st movement }
    \line { 1 \normal-size-super st movement
      \sub { (part two) }  }
  }
}
@end lilypond

@cindex fuente tipográfica, familias de

El modo de marcado ofrece una manera fácil de elegir familias de
tipografía alternativas.  A no ser que se especifique de otro
modo, se selecciona automáticamente la fuente predeterminada con
serifa, de tipo romano: en la última línea del ejemplo siguiente,
no hay diferencia entre la primera y la segunda palabra.

@lilypond[quote,verbatim]
\markup {
  \column {
    \line { Act \number 1 }
    \line { \sans { Scene I. } }
    \line { \typewriter { Verona. An open place. } }
    \line { Enter \serif Valentine and Proteus. }
  }
}
@end lilypond

@noindent
Algunas de estas familias, usadas para elementos específicos como
números o matices, no ofrecen todos los caracteres, como se
explica en @ref{New dynamic marks} y @ref{Manual repeat marks}.

@c \concat is actually documented in Align (it is not
@c a font-switching command).  But we need it here. -vv

Si se usan dentro de una palabra, algunas instrucciones de cambio
de tipografía o de formateo pueden producir un espacio vacío no
deseado.  Esto se puede solucionar concatenando en uno solo los
distintos elementos de texto:

@lilypond[quote,verbatim]
\markup {
  \column {
    \line {
      \concat { 1 \super st }
      movement
    }
    \line {
      \concat { \dynamic p , }
      \italic { con dolce espressione }
    }
  }
}
@end lilypond

Se puede encontrar una lista exhaustiva de instrucciones de cambio
y utilización personalizada de las fuentes tipográficas en
@ref{Font markup}.

También es posible definir conjuntos personalizados de fuentes,
tal y como se explica en @ref{Fonts}.

@predefined
@funindex \teeny
@funindex \tiny
@funindex \small
@funindex \normalsize
@funindex \large
@funindex \huge
@funindex \smaller
@funindex \larger

@code{\teeny},
@code{\tiny},
@code{\small},
@code{\normalsize},
@code{\large},
@code{\huge},
@code{\smaller},
@code{\larger}.
@endpredefined

@morerefs
Referencia de la notación:
@ref{Font markup},
@ref{New dynamic marks},
@ref{Manual repeat marks},
@ref{Fonts}.

Archivos de inicio:
@file{scm/define-markup-commands.scm}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs

@knownissues
La utilización de las instrucciones de tamaño de texto
@code{\teeny}, @code{\tiny}, @code{\small}, @code{\normalsize},
@code{\large} y @code{\huge} conducen a un espaciado de las líneas
inconsistente, comparado con el uso de @code{\fontsize}.


@node Text alignment
@subsection Alineación de texto

@cindex texto, alineación de
@cindex alinear, texto
@cindex alinear, texto de marcado
@cindex alinear, elementos de marcado
@cindex marcado, elementos, alinear
@cindex marcado, texto, alinear

Esta subsección trata sobre cómo colocar texto en el modo de
marcado.  Los objetos de marcado también se pueden mover como un
todo, usando la sintaxis que se describe en
@rlearningnamed{Moving objects, Mover objetos}.

@cindex texto, alineación horizontal
@cindex horizontal, alineación de texto

@funindex \left-align
@funindex \center-align
@funindex \right-align

Los objetos de marcado se pueden alinear de distintas maneras.  De
forma predeterminada, una indicación de texto se alinea sobre el
borde izquierdo: en el ejemplo siguiente, no existe diferencia
entre los marcados primero y segundo.  El ejemplo muestra también
varias formas sintácticamente correctas de ubicar las
instrucciones de alineación:

@lilypond[quote,verbatim]
\relative {
  d''1-\markup { poco }
  f
  d-\markup { \left-align poco }
  f
  d-\markup { \center-align { poco } }
  f
  d-\markup \right-align { poco }
}
@end lilypond

@funindex \halign

Se puede realizar un ajuste fino de la alineación horizontal
usando un valor numérico:

@lilypond[quote,verbatim]
\relative {
  a'1-\markup { \halign #-1 poco }
  e'
  a,-\markup { \halign #0 poco }
  e'
  a,-\markup { \halign #0.5 poco }
  e'
  a,-\markup { \halign #2 poco }
}
@end lilypond

@funindex \hspace
@cindex marcado, relleno horizontal
@cindex horizontal, relleno en marcado
@cindex marcado, desplazamiento horizontal

Por último, las palabras y otros objetos se pueden desplazar
horizontalmente si los hacemos preceder de @code{\hspace}.
También es posible usar un valor negativo que hará moverse a los
objetos subsiguentes en la dirección opuesta.  Aquí, escribimos
@code{\hspace} dentro de la caja para mostrar mejor el efecto.

@lilypond[quote,verbatim]
\relative {
  d''1-\markup { poco }
  f
  d-\markup \concat { \with-color #darkred \box \hspace #4 poco }
  f
  d-\markup \concat { \with-color #darkred \box \hspace #-4 poco }
  f
  d-\markup \concat { \with-color #darkred \box \hspace #10 poco }
}
@end lilypond

@noindent
Ciertos objetos pueden poseer sus propios procedimientos de
alineación, y por tanto no resultan afectados por estas
instrucciones.  Es posible mover estos objetos de marcado como un
todo, como se muestra por ejemplo en @ref{Text marks}.

@cindex texto, alineación vertical
@cindex vertical, alineación de texto
@cindex alineación, vertical, de texto

@cindex desplazamiento en marcado, vertical
@cindex vertical, desplazamiento, en marcado
@cindex marcado, vertical, desplazamiento

@funindex \raise
@funindex \lower

La alineación vertical se puede establecer de una forma similar.
Como se ha dicho más arriba, los objetos de marcado se pueden
mover como un todo; sin embargo, también es posible mover
elementos específicos dentro de un bloque de marcado.

@lilypond[quote,verbatim]
\relative {
  d'2^\markup {
    Acte I
    \raise #2 { Scène 1 }
  }
  a'
  g_\markup {
    \lower #4 \bold { Très modéré }
  }
  a
  d,^\markup \raise #4 \italic {
    Une forêt.
  }
  a'4 a g2 a
}
@end lilypond

@funindex \general-align
@funindex \translate
@funindex \translate-scaled

Algunas instrucciones pueden afectar tanto a la alineación
horizontal como a la vertical de los objetos de texto en el modo
de marcado:

@lilypond[quote,verbatim]
\relative {
  d'2^\markup {
    Acte I
    \translate #'(2 . 2) "Scène 1"
  }
  a'
  g_\markup {
    \general-align #Y #5 \bold "Très modéré"
  }
  a
  d,^\markup \translate-scaled #'(-3 . 2) \teeny {
   "Une forêt."
  }
  a'4 a g2 a
}
@end lilypond

@funindex \vspace
@cindex relleno, en marcado, vertical
@cindex vertical, relleno, en marcado
@cindex marcado, desplazamiento vertical

Observe que en general @emph{no} se puede usar @code{\vspace} para
subir o bajar objetos arbitrarios dentro de un marcado
@code{\column} debido a la forma en que este está implementado.
Así, el enfoque ingenuo que aparece a continuación no funciona.

@lilypond[quote,verbatim]
\relative {
  d'2^\markup {
    Acte I
    \column {
      \vspace #-2
      "Scène 1"
    }
  }
  a'
  g_\markup \column {
    \vspace #1
    "Très modéré"
  }
  a
  d,^\markup \column {
    "Une forêt."
    \vspace #2
  }
  a'4 a g2 a
}
@end lilypond

Lo que sí funciona es escribir @code{\vspace} entre dos objetos
que tienen dimensiones no vacías.

@lilypond[quote,verbatim]
\relative {
  d'2^\markup {
    Acte I
    \column {
      " "
      \vspace #-2
      "Scène 1"
    }
  }
  a'
  g_\markup \column {
    " "
    \vspace #1
    "Très modéré"
  }
  a
  d,^\markup \column {
    "Une forêt."
    \vspace #2
    " "
  }
  a'4 a g2 a
}
@end lilypond

@cindex varias, líneas, marcado
@cindex marcado, de varias líneas
@cindex varias, líneas, texto
@cindex texto, de varias líneas
@cindex texto, en columnas
@cindex columnas, texto

@funindex \column
@funindex \center-column

Un objeto de marcado puede incluir varias líneas de texto.  En el
ejemplo siguiente, cada elemento o expresión se sitúa en su propia
línea, ya sea alineada por la izquierda o centrada:

@lilypond[quote,verbatim]
\markup {
  \column {
    a
    "b c"
    \line { d e f }
  }
  \hspace #10
  \center-column {
    a
    "b c"
    \line { d e f }
  }
}
@end lilypond

@cindex centrar texto en la página
@cindex texto, centrar en la página
@cindex marcado, centrar en la página

@funindex \fill-line

De forma similar, una lista de elementos o expresiones se puede
repartir de forma que rellene por completo el ancho de la línea
horizontal (si hay un solo elemento, se centra en el papel).  A su
vez, estas expresiones pueden incluir texto de varias líneas o
cualquier otra expresión de marcado:

@lilypond[quote,verbatim]
\markup {
  \fill-line {
    \line { William S. Gilbert }
    \center-column {
      \huge \smallCaps "The Mikado"
      or
      \smallCaps "The Town of Titipu"
    }
    \line { Sir Arthur Sullivan }
  }
}
\markup {
  \fill-line { 1885 }
}
@end lilypond

@cindex texto, ancho de línea
@cindex marcado, texto, ancho de línea

@funindex line-width

Los elementos se pueden extender para que cubran cualquier anchura
especificada mediante la sobreescritura de la propiedad
@code{line-width}.  De forma predetermianda está establecida a
@code{#f} lo que implica toda la línea:

@lilypond[quote,verbatim]
\markup {
  \column {
    \fill-line { left center right }
    \null
    \override #'(line-width . 30)
    \fill-line { left center right }
  }
}
@end lilypond

@cindex texto ajustado a palabras
@cindex texto justificado
@cindex justificar, texto
@cindex ajustado a palabras, texto
@cindex marcado, texto, ajustado a palabras
@cindex texto de marcado ajustado a palabras
@cindex ajuste de línea, texto con

@funindex \wordwrap
@funindex \justify

Las indicaciones de texto largas se pueden también ajustar
automáticamente según un ancho de línea dado.  Estarán alineados
por la izquierda o justificados, como se muestra en el ejemplo
siguiente.

@lilypond[quote,verbatim]
\markup {
  \column {
    \line  \smallCaps { La vida breve }
    \line \bold { Acto I }
    \wordwrap \italic {
      (La escena representa el corral de una casa de
      gitanos en el Albaicín de Granada.  Al fondo una
      puerta por la que se ve el negro interior de
      una Fragua, iluminado por los rojos resplandores
      del fuego.)
    }
    \hspace #0

    \line \bold { Acto II }
    \override #'(line-width . 50)
    \justify \italic {
      (Calle de Granada.  Fachada de la casa de Carmela
      y su hermano Manuel con grandes ventanas abiertas
      a través de las que se ve el patio
      donde se celebra una alegre fiesta)
    }
  }
}
@end lilypond

@cindex texto, alineación
@cindex marcado, texto, alineación
@cindex alineación, texto

Hay una lista exhaustiva de instrucciones de alineación de texto
en @ref{Markup for text alignment}.

@morerefs
Manual de aprendizaje:
@rlearningnamed{Moving objects, Mover objetos}.

Referencia de la notación:
@ref{Markup for text alignment},
@ref{Text marks}.

Archivos de inicio:
@file{scm/define-markup-commands.scm}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs


@node Graphic notation inside markup
@subsection Notación gráfica dentro de elementos de marcado

@cindex gráfico, insertar
@cindex dibujar, objeto gráfico
@cindex gráfico, dibujar objeto
@cindex insertar, objeto gráfico
@cindex gráfico, insertar objeto

Se puede añadir diversos objetos gráficos a una partitura,
utilizando instrucciones de marcado.

@cindex enmarcar texto
@cindex texto, enmarcar
@cindex texto, decorar
@cindex marcado, texto, decorar
@cindex marcado, texto, enmarcar
@cindex decorar texto

@funindex \box
@funindex \circle
@funindex \rounded-box
@c `@funindex \bracket` is auto-generated, too
@funindex \bracket
@funindex \hbracket

Ciertas instrucciones de marcado permiten la decoración de
elementos de texto con gráficos, como se muestra en el ejemplo
siguiente.

@lilypond[quote,verbatim]
\markup \fill-line {
  \center-column {
    \circle Jack
    \box "in the box"
    \null
    \line {
      Erik Satie
      \hspace #3
      \bracket "1866 - 1925"
    }
    \null
    \rounded-box \bold Prelude
  }
}
@end lilypond

@cindex relleno, alrededor de texto
@cindex texto, relleno de
@cindex marcado, relleno de textos de

@funindex \pad-markup
@funindex \pad-x
@funindex \pad-to-box
@funindex \pad-around

Algunas instrucciones pueden requerir un aumento del relleno
alrededor del texto: esto se puede conseguir con algunas
instrucciones de marcado descritas exhaustivamente en
@ref{Markup for text alignment}.

@lilypond[quote,verbatim,line-width=14\cm]
\markup \fill-line {
  \center-column {
    \box "Charles Ives (1874 - 1954)"
    \null
    \box \pad-markup #2 "THE UNANSWERED QUESTION"
    \box \pad-x #8 "A Cosmic Landscape"
    \null
  }
}
\markup \column {
  \line {
    \hspace #10
    \box \pad-to-box #'(-5 . 20) #'(0 . 5)
      \bold "Largo to Presto"
  }
  \box \pad-around #3 "String quartet keeps very even time."
}
@end lilypond

@cindex gráfica, notación
@cindex símbolos no musicales
@cindex no musicales, símbolos
@cindex notación gráfica

@funindex \combine
@funindex \draw-circle
@funindex \filled-box
@funindex \triangle
@funindex \draw-line
@funindex \arrow-head

Se pueden imprimir otros símbolos o elementos gráficos sin que se
requiera ningún otro texto.  De igual manera que en el caso de las
expresiones de marcado, dichos objetos se pueden combinar:

@lilypond[quote,verbatim]
\markup {
  \combine
    \draw-circle #4 #0.4 ##f
    \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
  \hspace #5

  \center-column {
    \triangle ##t
    \combine
      \draw-line #'(0 . 4)
      \arrow-head #Y #DOWN ##f
  }
}
@end lilypond

@cindex insertar, gráfico
@cindex imagen, insertar
@cindex gráfico, insertar
@cindex PostScript

@funindex \epsfile
@funindex \postscript

Entre las funcionalidades gráficas avanzadas se encuentran la
posibilidad de incluir archivos de imagen externos convertidos al
formato de PostScript Encapsulado (@emph{eps}), y la inclusión
directa de gráficos dentro del archivo de entrada, usando código
PostScript nativo.  En tal caso puede ser de utilidad la
especificación explícita del tamaño del dibujo, como se
ejemplifica a continuación:

@lilypond[quote,verbatim,fragment]
c'1^\markup {
  \combine
    \epsfile #X #10 "./context-example.eps"
    \with-dimensions #'(-0.5 . 10.5) #'(-2 . 8)
    \postscript "
      -0.3 1 translate
      2.7 2 scale
      newpath
      2 -1 moveto
      4 -2 4 1 1 arct
      4 2 3 3 1 arct
      0 4 0 3 1 arct
      0 0 1 -1 1 arct
      closepath
      stroke"
  }
c'
@end lilypond

Hay una lista exhaustiva de instrucciones específicas de gráficos
en @ref{Graphical markup}.

@morerefs
Referencia de la notación:
@ref{Markup for text alignment},
@ref{Dimensions},
@ref{Editorial annotations},
@ref{Graphical markup}.

Archivos de inicio:
@file{scm/define-markup-commands.scm},
@file{scm/stencil.scm}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs


@node Music notation inside markup
@subsection Notación musical dentro de elementos de marcado

@cindex notación, dentro de marcado
@cindex música, dentro de marcado
@cindex marcado, notación musical dentro de

Se pueden añadir a la partitura diversos elementos de notación
musical, dentro de un objeto de marcado.

Las notas y las alteraciones se pueden escribir utilizando
instrucciones de marcado:

@lilypond[quote,verbatim,fragment]
a'2 a'^\markup {
  \note {4} #1
  =
  \note-by-number #1 #1 #1.5
}
b'1_\markup {
  \natural \semiflat \flat
  \sesquiflat \doubleflat
}
\glissando
a'1_\markup {
  \natural \semisharp \sharp
  \sesquisharp \doublesharp
}
\glissando b'
@end lilypond

Otros objetos de notación se pueden también imprimir en el modo de
marcado:

@lilypond[quote,verbatim]
\relative {
  g1 bes
  ees\finger \markup \tied-lyric "4~1"
  fis_\markup { \dynamic rf }
  bes^\markup {
    \beam #8 #0.1 #0.5
  }
  cis
  d-\markup {
    \markalphabet #8
    \markletter #8
  }
}
@end lilypond

De forma más general, cualquier símbolo musical disponible se
puede incluir por separado dentro de un objeto de marcado, como se
ejemplifica a continuación; hay una lista exhaustiva de estos
símbolos y sus nombres en @ref{The Emmentaler font}.

@lilypond[quote,verbatim]
\relative {
  c''2
  c'^\markup { \musicglyph "eight" }
  c,4_\markup { \left-brace #40 }
  c,8._\markup { \musicglyph "clefs.G_change" }
  c16
  c2^\markup { \musicglyph "timesig.neomensural94" }
}
@end lilypond

El modo de marcado también contempla diagramas para instrumentos
específicos:

@lilypond[quote,verbatim]
\relative {
  c''1^\markup {
    \fret-diagram-terse "x;x;o;2;3;2;"
  }
  c^\markup {
    \harp-pedal "^-v|--ov^"
  }
  c
  c^\markup {
    \combine
      \musicglyph "accordion.discant"
      \combine
        \raise #0.5 \musicglyph "accordion.dot"
        \raise #1.5 \musicglyph "accordion.dot"
  }
}
@end lilypond

@c The accordion diagram is actually taken from a snippet.

@noindent
Dichos diagramas se encuentran documentados en
@ref{Instrument-specific markup}.

@cindex partitura, dentro de un marcado
@cindex marcado, partitura dentro de

Incluso una partitura completa se puede incluir dentro de un
objeto de marcado:

@lilypond[quote,verbatim]
\relative {
  c'4 d^\markup {
    \score {
      \relative { c'4 d e f }
    }
  }
  e f |
  c d e f
}
@end lilypond

Hay una lista exhaustiva de instrucciones relacionadas con la
notación musical en @ref{Markup for music and musical symbols}.

@morerefs
Referencia de la notación:
@ref{Markup for music and musical symbols},
@ref{The Emmentaler font}.

Archivos de inicio:
@file{scm/define-markup-commands.scm},
@file{scm/fret-diagrams.scm},
@file{scm/harp-pedals.scm}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.

Referencia de funcionamiento interno:
@rinternals{TextScript}.
@endmorerefs

@knownissues
El espaciado vertical de un @code{\score} dentro de un objeto de
marcado está controlado por @code{baseline-skip}.  Todo ajuste del
bloque @code{\paper} se ignora.


@node Fonts
@section Fuentes tipográficas

@cindex Pango
@cindex FontConfig

Las fuentes tipográficas se manejan en LilyPond por parte de
varias bibliotecas; dos de ellas son relevantes para el usuario:
@uref{https://fontconfig.org, @emph{FontConfig}} se usa para
detectar las fuentes disponibles, y las fuentes seleccionadas se
renderizan después por parte de @uref{https://pango.org,
@emph{Pango}} para imprimir las cadenas de texto.

Esta sección muestra cómo acceder a las fuentes tipográficas en
LilyPond, y cómo cambiarlas dentro de las partituras.


@node Unsupported font formats
@subsection Tipos de fuente no soportados

@c HASTA AQUÍ

En primer lugar unas palabras de precaución: LilyPond crea el
resultado final en PDF utilizando un archivo PosrtScript
intermedio.  Como consecuencia, algunos formatos de fuente
tipográfica no se pueden usar, porque siendo PostScript un antiguo
estándar que ya no recibe ninguna actualización, adolece de una
falta de soporte para aquellas.  He aquí una lista de los formatos
de fuente que no funcionan.

@table @b
@item CFF2
@cindex CFF2, fuente, formato
@cindex fuente, formato, CFF2
@cindex OpenType, fuente (@file{.otf})
En los últimos años este se convirtió en el formato de fuente
predeterminado para las tipografías OpenType (@file{.otf}).
Aunque su predecesor (CFF, que usaba igualmente la extensión
@file{.otf}) estaba soportado, el CFF2, más compacto, no lo está.
LilyPond emite una advertencia en la consola si encuentra una
fuente de ese tipo, y la conversión a PDF puede fallar o bien
crearse sin los glifos de esta fuente.

@item Font Variations
@cindex fuente, formato, Font Variations (VF)
@cindex Variation Font (VF), formato
Estas fuentes normalmente tienen las letras @q{VF} como parte del
nombre; desgraciadamente no están soportadas independientemente de
si son Font Variations de TrueType o de OpenType, y por ello se
rechazan por adelantado.

@item fuentes en color
@cindex fuentes, color
@cindex color, fuentes
@cindex fuentes, for Emojis
@cindex Emoji, fuentes
No soportadas; esto afecta en particular a las fuentes de Emoji
escalables.  Algunas fuentes tipográficas, sin embargo, también
contienen versiones en blanco y negro de los Emojis (como glifos
de contorno normales), y estos deberían funcionar perfectamente
(siempre y cuando vinieran en un formato de fuente que estuviera
soportado).

@item colecciones de OpenType
@cindex fuente, formato, OTC
@cindex OpenType, colecciones (@file{.otc})
Esto es un formato contenedor (usualmente con la extensión
@file{.otc}) que alberga varias fuentes dentro del mismo archivo.
Hoy en día se usan como fuente de último recurso, esto es, se usa
por parte del sistema operativo si por algún motivo no se
encuentra ninguna otra que sea válida.

@item fuentes de bitmap
@cindex fuente, formato, bitmap
@cindex bitmap, fuentes
No están soportadas en absoluto y se rechazan automáticamente
antes de que LilyPond llegue a ver la lista de las fuentes
disponibles.  Esto incluye algunas fuentes antiguas de Emojis en
color.
@end table

Muchas fuentes se encuentran disponibles en los dos formatos,
TrueType y OpenType; si falla la versión @file{.otf}, pruebe con
la versión @file{.ttf}.  Si no encuentra ninguna alternativa a una
fuente CFF2, pruebe la opción de la línea de órdenes
@option{-dbackend=@/cairo} de LilyPond; este @emph{backend}, aún
experimental, puentea la fase de PostScript y crea directamente
salida en PDF, siendo así capaz de soportar el formato CFF2 (y
también las colecciones de OpenType).


@node Finding fonts
@subsection Búsqueda de fuentes

@cindex fuente, búsqueda
@cindex fuente, archivos externos

Además de cualquier fuente tipográfica que ya esté instalada en el
sistema operativo, se pueden añadir fuentes adicionales al
conjunto que detecta FontConfig (y por ello disponibles en las
partituras de LilyPond) a través de las instrucciones siguientes:

@example
#(ly:font-config-add-font "@var{ruta/hacia/archivo-de-fuente}")
#(ly:font-config-add-directory "@var{ruta/hacia/directorio/}")
@end example

@noindent
Las dos instrucciones admiten rutas absolutas y relativas, lo que
permite compilar una partitura en cualquier sistema, simplemente
distribuyendo los archivos de fuente necesarios junto al código
fuente de la partitura.

Para verificar que las fuentes deseadas se encuentran por parte de
FontConfig, use la instrucción
@code{#(ly:font-config-display-fonts)}, que imprime en el archivo
de registro de la consola la lista completa de fuentes
disponibles.  También muestra los nombres de fuente efectivos a
usar con LilyPond; estos pueden ser distintos de los propios
nombres de archivo.  Como alternativa, lanzando en un terminal la
orden @command{lilypond -dshow-available-fonts} se consigue el
mismo efecto.


@node Font families
@subsection Familias de fuentes

Están disponibles tres alias genéricos para las
familias@footnote{En su forma más simple, una @emph{familia de
fuentes} contiene normalmente fuentes en estilos romano, itálica,
negrita e itálica negrita.} de fuentes de texto: @q{serif},
@q{sans}, y @q{máquina de escribir}.  Dependiendo del
@emph{backend}, estas familias se asignan a diferentes alias de
familias de fuente.

Para el @emph{backend} @code{svg}:

@indentedblock
@multitable {@b{máquina de escribir}} {@b{familia de fuente SVG}}
@headitem familia genérica @tab familia de fuente SVG
@item serif @tab serif
@item sans @tab sans-serif
@item máquina de escribir @tab monospace
@end multitable
@end indentedblock

@noindent
@q{serif}, @q{sans-serif}, y @q{monoespaciado} son la
@q{generic-family} en las especificaciones SVG y CSS.

Para otros @emph{backends}:

@indentedblock
@multitable @columnfractions .17 .30 .45
@headitem familia genérica
          @tab alias predeterminado de la familia
                    @tab familias contenidas en el alias
@item serif
@tab LilyPond Serif
@tab C059,
     Century SchoolBook URW,
     Century Schoolbook@tie{}L,
     TeX Gyre Schola,
     DejaVu Serif,
     @dots{},
     serif
@item sans
@tab LilyPond Sans Serif
@tab Nimbus Sans,
     Nimbus Sans@tie{}L,
     TeX Gyre Heros,
     DejaVu Sans,
     @dots{},
     sans-serif
@item máquina de escribir
@tab LilyPond Monospace
@tab Nimbus Mono PS,
     Nimbus Mono,
     Nimbus Mono@tie{}L,
     TeX Gyre Cursor,
     DejaVu Sans Mono,
     @dots{},
     monospace
@end multitable
@end indentedblock

@noindent
Si un carácter no existe en una fuente determinada de la primera
familia de la lista, se usa en su lugar para ese carácter la
fuente adecuada de la siguiente familia de la lista.

Observe que las familias de fuente URW distribuidas con LilyPond
(@q{C059}, @q{Nimbus Sans} y @q{Nimbus Mono PS}) tienen una
peculiaridad: por omisión, además de las ligaduras estándar como
@q{fl} o @q{ffi}, sustituyen la cadena de carcateres @q{Nr.} con
el símbolo de Número (U+2116) si se selecciona el script @q{latn}.
Para resolver el problema localmente, inserte un carácter
@emph{zero-width non-joiner} (ZWNJ, U+200C) entre los caracteres
@q{N} y @q{r}.  Para solucionarlo globalmente, use el siguiente
código para hacer que LilyPond siempre inserte el caácter ZWNJ.

@example
\paper @{
  #(add-text-replacements!
      `(("Nr." . ,(format #f "N~ar." (ly:wide-char->utf-8 #x200C)))))
@}
@end example

@q{LilyPond Serif}, @q{LilyPond Sans Serif} y @q{LilyPond
Monospace} son alias de familia de fuente definidos en el archivo
de configuración adicional de FontConfig
@file{00-lilypond-fonts.conf}, que se encuentra normalmente en el
directorio @file{/usr/local/share/lilypond/@version{}/fonts}, y
que se usa exclusivamente por parte de LilyPond.

Cada familia de fuentes puede incluir distintas formas y series.
El ejemplo siguiente muestra esto, incluyendo código para cambiar
también el tamaño.  El valor proporcionado a @code{font-size} se
toma en relación al tamaño predeterminado de la tipografía.

@lilypond[quote,verbatim,fragment]
\override Score.TextMark.font-family = #'typewriter
\textMark "Ouverture"
\override Voice.TextScript.font-shape = #'italic
\override Voice.TextScript.font-series = #'bold
d''2.^\markup "Allegro"
\override Voice.TextScript.font-size = -3
c''4^"smaller"
@end lilypond

@noindent
Se puede usar una sintaxis similar en el modo de marcado, aunque
en este caso es preferible usar la sintaxis sencilla que se
explica en @ref{Selecting font and font size}:

@lilypond[quote,verbatim]
\markup {
  \column {
    \line {
      \override #'((font-shape . italic) (font-size . 4))
      Idomeneo,
    }
    \line {
      \override #'(font-family . typewriter) {
        \override #'(font-series . bold) re
        di
      }
      \override #'(font-family . sans) Creta
    }
  }
}
@end lilypond


@node Font features
@subsection Funcionalidades de fuente

@cindex funcionalidad, OpenType, fuente
@cindex fuente, funcionalidad, OpenType
@cindex OpenType, funcionalidad de fuente

Al usar fuentes tipográficas de OpenType, pueden usarse las
funcionalidades de fuente o @emph{font features}.@footnote{No se
pueden especificar los idiomas ni los scripts de OpenType.}
Observe que no todas las fuentes de OpenType tienen todas las
funciones.  Si se requiere una funcionalidad que no existe en la
fuente seleccionada, la funcionalidad sencillamente se ignora.  El
ejemplo que aparece más abajo usa la fuente @q{TeX Gyre Schola}
(esto es, el estilo romano de la familia).

@lilypond[quote,verbatim]
\paper {
  property-defaults.fonts.serif = "TeX Gyre Schola"
}

\markup "normal style: Hello HELLO"

\markup \caps "small caps: Hello"

\markup \override #'(font-features . ("smcp")) "true small caps: Hello"

\markup "normal number style: 0123456789"

\markup \override #'(font-features . ("onum"))
  "old number style: 0123456789"

\markup \override #'(font-features . ("salt 0"))
  "stylistic alternate 0: εφπρθ"

\markup \override #'(font-features . ("salt 1"))
  "stylistic alternate 1: εφπρθ"

\markup \override #'(font-features . ("onum" "smcp" "salt 1"))
  "multiple features: Hello 0123456789 εφπρθ"
@end lilypond

Para ver la lista completa de funcionalidades de las fuentes
OpenType, consulte
@uref{https://www.microsoft.com/typography/otspec/featurelist.htm};
para la identificación de las funcionalidades de las fuentes de
OpenType véase
@uref{https://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html}.

@morerefs
Referencia de la notación:
@ref{The Emmentaler font},
@ref{Music notation inside markup},
@ref{Rotating objects},
@ref{Selecting font and font size},
@ref{Font markup}.
@ref{Finding fonts},
@ref{Font families},
@ref{Changing fonts}.

Fragmentos de código:
@rlsrnamed{Text,Texto}.
@endmorerefs

@c A source file gets never installed...
@c Installed files:
@c @file{lily/font-config-scheme.cc}.


@node Changing fonts
@section Cambiar las fuentes tipográficas

Es posible cambiar las fuentes usadas en las familias de la fuente
predeterminada de LilyPond.

@cindex fuente, establecer la familia de
@cindex fuente tipográfica, cambiar para todo el documento

@funindex make-pango-font-tree

@lilypond[verbatim,quote]
\paper {
  property-defaults.fonts.serif = "Linux Libertine O"
  property-defaults.fonts.sans = "DejaVu Sans"
  property-defaults.fonts.typewriter = "DejaVu Sans Mono"
}

\relative c'{
  c1-\markup {
    serif,
    \sans sans,
    \typewriter typewriter. }
}
@end lilypond

Se puede usar la misma sintaxis para cambiar la fuente de la
música; @pxref{Replacing the notation font}.

Para cambiar las fuentes usadas para un objeto gráfico específico,
o para una parte específica de un elemento de marcado,
sobreescriba la propiedad @code{fonts}.  El siguiente ejemplo
cambia la fuente para las @qq{cabezas de nota} normales de
tablatura (que usan la familia @code{serif}) manteniendo al mismo
tiempo la fuente predeterminada para las que se dibujan como unas
aspas (que usan la familia @code{music}).

@lilypond[verbatim,quote]
\layout {
  \override TabVoice.TabNoteHead.property-defaults.fonts.serif =
    "Linux Libertine O"
}

\new TabStaff { c' d' e' \deadNote c' }
@end lilypond

Más abajo aparece un ejemplo de la sobreescritura de @code{fonts}
en los elementos de marcado:

@lilypond[verbatim,quote]
\markup \override #'(fonts . ((serif . "Linux Libertine O")
                              (typewriter . "DejaVu Sans Mono"))) {
  Copyright © John Doe \typewriter john@doe.org
}
@end lilypond

@morerefs
Referencia de la notación:
@ref{Finding fonts},
@ref{Font families},
@ref{Selecting font and font size},
@ref{Font markup},
@ref{Replacing the notation font}.
@endmorerefs
