Referencia de la notación de GNU LilyPond: 3.2.2 Títulos, encabezamientos y pies de página personalizados

### 3.2.2 Títulos, encabezamientos y pies de página personalizados

#### 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 {
>       \header {
>         piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
>         opus = \markup { \italic "BWV 846" }
>       }
>       { s1 }
>     }

#### Véase también

Referencia de la notación: Formatear el texto.

#### Personalización de los títulos

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 títulos de partes de libro y partitura.

Los ajustes predeterminados para `scoreTitleMarkup` tal y como están definidos en el archivo ‘`ly/titling-init.ly`’ son:

>     scoreTitleMarkup = \markup { \column {
>       \if \should-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 {
>       \header {
>         piece = "PRAELUDIUM I"
>         opus = "BWV 846"
>       }
>       { s1 }
>     }

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 {
>         \header {
>           piece = "PRAELUDIUM I"
>           opus = "BWV 846"
>         }
>         { s1 }
>       }
>     }

Los campos de texto que normalmente no son efectivos dentro de los bloques `\header` de una partitura se pueden imprimir en la zona del Título de la partitura si se coloca `print-all-headers` 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 la zona del título de parte de libro han de suprimirse manualmente en cada uno de los bloques `\score`. Véase Explicación de los 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 {
>         \header {
>           piece = "MENUET"
>           composer = "Christian Petzold"
>         }
>         { s1 }
>       }
>       \score {
>         \header {
>           piece = "RONDEAU"
>           composer = "François Couperin"
>         }
>         { s1 }
>       }
>     }

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 {
>         \header {
>           piece = "FUGA I"
>           mycustomtext = "A 4 VOCI" %% User-defined field
>           opus = "BWV 846"
>         }
>         { s1 }
>       }
>     }

#### Véase también

Referencia de la notación: Explicación de los 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 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`’.

#### LilyPond — Referencia de la notación v2.24.4 (rama estable).