3.2.2 Cabeceras, pies y títulos personalizados
Formateo personalizado del texto de los bloques de título | ||
Personalización de los bloques de título | ||
Disposición personalizada de cabeceras y pies de página |
Formateo personalizado del texto de los bloques de título
Se pueden usar instrucciones \markup
estándar para personalizar
el texto de cualquier cabecera, pie o título dentro del bloque
\header
.
\score { { s1 } \header { piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" } subtitle = \markup { \italic "(Excerpt)" } } }
Véase también
Referencia de la notación: Formatear el texto.
Personalización de los bloques de título
Las instrucciones \markup
dentro del bloque \header
son
útiles para dar un formato simple al texto, pero no permiten un
control preciso sobre la colocación de los títulos. Para personalizar
la colocación de los campos de texto, cambie una o las dos variables de
\paper
siguientes:
-
bookTitleMarkup
(marcado de título del libro) -
scoreTitleMarkup
(marcado de título de la partitura)
La colocación de los títulos cuando se utilizan los valores
predeterminados de estas variables de \markup
se muestra en los
ejemplos de
Presentación predeterminada de los bloques de título del libro y la partitura.
Los ajustes predeterminados para scoreTitleMarkup
tal y como
están definidos en el archivo ‘ly/titling-init.ly’ son:
scoreTitleMarkup = \markup { \column { \on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 } \fill-line { \fromproperty #'header:piece \fromproperty #'header:opus } } }
Esto sitúa los campos de texto piece
y opus
en extremos
opuestos de la misma línea:
\score { { s1 } \header { piece = "PRAELUDIUM I" opus = "BWV 846" } }
Este ejemplo redefine scoreTitleMarkup
de manera que el campo
de texto piece
aparece centrado y en un tipo de letra grande y
en negrita.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:opus } } } \header { tagline = ##f } \score { { s1 } \header { piece = "PRAELUDIUM I" opus = "BWV 846" } } }
Los campos de texto reservados normalmente para el bloque principal de
título se pueden insertar dentro de los bloques de título de las
partituras individuales con la variable print-all-headers
establecida dentro del bloque \paper
. Una desventaja de la
utilización de este método es que los campos de texto que están
orientados específicamente para el bloque \header
del nivel
superior han de suprimirse manualmente en cada uno de los bloques
\score
. Véase Explicación de los bloques de títulos.
Para evitarlo, añada el campo de texto deseado a la definición de
scoreTitleMarkup
. En el ejemplo siguiente, el campo de texto
composer
(asociado normalmente con bookTitleMarkup
) se
añade a scoreTitleMarkup
, permitiendo que cada partitura
muestre un compositor diferente:
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:composer } } } \header { tagline = ##f } \score { { s1 } \header { piece = "MENUET" composer = "Christian Petzold" } } \score { { s1 } \header { piece = "RONDEAU" composer = "François Couperin" } } }
También podemos crear nuestros propios campos de texto personalizados, y referirnos a ellos en la definición del elemento de marcado.
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \override #`(direction . ,UP) { \dir-column { \center-align \fontsize #-1 \bold \fromproperty #'header:mycustomtext %% User-defined field \center-align \fontsize #4 \bold \fromproperty #'header:piece } } \fromproperty #'header:opus } } } \header { tagline = ##f } \score { { s1 } \header { piece = "FUGA I" mycustomtext = "A 4 VOCI" %% User-defined field opus = "BWV 846" } } }
Véase también
Referencia de la notación: Explicación de los bloques de títulos.
Disposición personalizada de cabeceras y pies de página
Las instrucciones \markup
dentro del bloque \header
son
de utilidad para dar formato al texto de una manera sencilla, pero no
permiten un control preciso sobre la colocación de las cabeceras y los
pies de página. Para personalizar la colocación de los campos de
texto, use una o más de las siguientes variables de \paper
:
-
oddHeaderMarkup
(marcado de encabezamiento impar) -
evenHeaderMarkup
(marcado de encabezamiento par) -
oddFooterMarkup
(marcado de pie de página impar) -
evenFooterMarkup
(marcado de pie de página par)
La instrucción de marcado \on-the-fly
se puede utilizar para
añadir elementos de forma condicional al texto de encabezamiento y pie
de página definido dentro del bloque \paper
, usando la sintaxis
siguiente:
variable
=\markup
{ ...\on-the-fly
#procedimiento marcado ... }
El procedimiento se llama cada vez que se evalúa la instrucción
\markup
en que ésta aparece. El procedimiento debería
comprobar si se cumple una condición determinada e interpretar (es
decir: imprimir) el argumento marcado si, y sólo si, la
condición es verdadera.
Se proveen un cierto número de procedimientos ya hechos para la comprobación de diversas condiciones:
Nombre del procedimiento
Condición que se comprueba
print-page-number-check-first
¿debería imprimirse esta página?
create-page-number-stencil
¿es ’print-page-numbers verdadero?
print-all-headers
¿es ’print-all-headers verdadero?
first-page
¿es la primera página del libro?
(on-page nmbr)
¿es el número de página = nmbr?
last-page
¿es la última página del libro?
not-first-page
¿no es la primera página del libro?
part-first-page
¿es la primera página de la parte de libro?
part-last-page
¿es la última página de la parte de libro?
not-single-page
¿es el núm. de páginas en la parte de libro > 1?
El ejemplo siguiente centra los números de página en la parte baja de
las páginas. En primer lugar, los ajustes predeterminados para
oddHeaderMarkup
y evenHeaderMarkup
se eliminan
definiéndolos como un marcado nulo. Después de esto, se
redefine oddFooterMarkup
con el número de página centrado.
Finalmente, evenFooterMarkup
recibe la misma disposición
definiéndola como \oddFooterMarkup
:
\book { \paper { print-page-number = ##t print-first-page-number = ##t oddHeaderMarkup = \markup \null evenHeaderMarkup = \markup \null oddFooterMarkup = \markup { \fill-line { \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string } } evenFooterMarkup = \oddFooterMarkup } \score { \new Staff { s1 \break s1 \break s1 } } }
Se pueden combinar varias condiciones de \on-the-fly
con un
operador ‘and’, por ejemplo:
\on-the-fly #first-page
\on-the-fly #last-page
{ \markup ... \fromproperty #'header: ... }
determina si la salida es una sola página.
Véase también
Referencia de la notación: Explicación de los bloques de títulos, Presentación predeterminada de los bloques de título del libro y la partitura.
Archivos instalados: ‘../ly/titling-init.ly’.
Otros idiomas: English, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.