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:

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 proceduraCondizione verificata
print-page-number-check-firststampare questa pagina?
create-page-number-stencilprint-page-numbers è vero?
print-all-headersprint-all-headers è vero?
first-pageprima pagina del libro?
not-first-pagenon la prima pagina del libro?
(on-page nmbr)numero pagina = nmbr?
last-pageultima pagina del libero?
part-first-pageprima pagina della parte?
not-part-first-pagenon la prima pagine della parte?
part-last-pageultima pagina della parte?
not-single-pagepagine 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 }
  }
}

[image of music]

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.


Guida alla Notazione di LilyPond v2.25.22 (development-branch).