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 este número de 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? not-first-page ¿no 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? part-first-page ¿es la primera página de la parte de libro? not-part-first-page ¿no 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 { \if \should-print-page-number \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:
\if \on-first-page
\if \on-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 títulos, Presentación predeterminada de los títulos de partes de libro y partitura.
Archivos instalados: ../ly/titling-init.ly.