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.