Formattazione personalizzata di intestazioni e piè di pagina
I comandi \markup nel blocco \header sono utili solo per la
formattazione del testo, ma non consentono un controllo preciso sul
posizionamento di intestazioni e piè di pagina. Per personalizzare il
posizionamento dei campi testuali, usare una o entrambe le seguenti
variabili \paper:
-
oddHeaderMarkup -
evenHeaderMarkup -
oddFooterMarkup -
evenFooterMarkup
Il comando \on-the-fly – usato all’interno di un blocco \markup –
permette di aggiungere del testo a intestazioni e piè di pagina definiti nel
blocco \paper, solo se certe condizioni sono soddisfatte, tramite la
seguente sintassi:
variabile = \markup {
…
\on-the-fly \procedura testo
…
}
La procedura viene chiamata ogni volta che viene elaborato il comando
\markup nel quale essa si trova. La procedura verifica una
precisa condizione e interpreta (ovvero stampa) l’argomento testo se
e solo se la condizione è vera.
Sono disponibili varie procedure pronte per verificare varie condizioni:
Nome della procedura
Condizione verificata
print-page-number-check-first
stampare questa pagina?
create-page-number-stencil
print-page-numbers è vero?
print-all-headers
print-all-headers è vero?
first-page
prima pagina del libro?
not-first-page
non la prima pagina del libro?
(on-page nmbr)
numero pagina = nmbr?
last-page
ultima pagina del libero?
part-first-page
prima pagina della parte?
not-part-first-page
non la prima pagine della parte?
part-last-page
ultima pagina della parte?
not-single-page
pagine della parte > 1?
L’esempio seguente centra i numeri di pagina in fondo a ogni pagina.
Innanzitutto vengono annullate le impostazioni predefinite per
oddHeaderMarkup e evenHeaderMarkup definendo ciascuno di
essi come un markup null. Poi oddFooterMarkup viene
ridefinito col numero di pagina centrato. Infine a evenFooterMarkup
viene assegnata la stessa formattazione di \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 } } }
Varie condizioni \on-the-fly possono essere combinate insieme come se
si utilizzasse l’operatore logico ‘AND’ e il testo apparirà solo se tutte
le condizioni sono vere. Per esempio, queste due condizioni
\if \on-first-page \if \on-last-page{ \markup … \fromproperty #'header: … }
verificano se l’output è una pagina singola.
Vedi anche
Guida alla notazione: Come funzionano i titoli, Formattazione predefinita dei titoli delle parti e dei brani.
File installati: ‘../ly/titling-init.ly’.
![[image of music]](../5e/lily-10e87715.png)