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 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 }
  }
}

[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’.


LilyPond — Guida alla Notazione v2.25.4 (ramo di sviluppo).