3.2.2 Titoli intestazioni e piè di pagina personalizzati


Titoli personalizzati

Si possono usare i normali comandi \markup per personalizzare qualsiasi intestazione, piè di pagina e titolo di un blocco \header.

\score {
  \header {
    piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
    opus = \markup { \italic "BWV 846" }
  }
  { s1 }
}

[image of music]

Vedi anche

Guida alla notazione: Formattazione del testo.


Formattazione personalizzata dei titoli

I comandi \markup nel blocco \header sono utili solo per la formattazione del testo, ma non consentono un controllo preciso sul posizionamento dei titoli. Per personalizzare il posizionamento dei campi testuali, cambiare una o entrambe le seguenti variabili \paper:

Il posizionamento dei titoli secondo i valori predefiniti di queste variabili \markup è mostrato negli esempi in Formattazione predefinita dei titoli delle parti e dei brani.

Le impostazioni predefinite di scoreTitleMarkup, definite in ‘ly/titling-init.ly’, sono:

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
    \fromproperty #'header:piece
    \fromproperty #'header:opus
  }
}
}

Questo pone i campi testuali piece e opus alle estremità opposte della stessa riga:

\score {
  \header {
    piece = "PRAELUDIUM I"
    opus = "BWV 846"
  }
  { s1 }
}

[image of music]

L’esempio seguente ridefinisce scoreTitleMarkup in modo che il campo testuale di piece sia centrato e in un tipo di carattere più grande e in grassetto.

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

[image of music]

I campi testuali che non sono normalmente attivi nei blocchi \header compresi in un blocco \score possono essere stampati nello spazio dedicato al titolo del brano aggiungendo print-all-headers nel blocco \paper. Lo svantaggio di questo metodo è che i campi testuali intesi esclusivamente per lo spazio del titolo della parte devono essere manualmente soppressi in ogni blocco \score. Vedi Come funzionano i titoli.

Per evitare ciò, è meglio mettere il campo testuale desiderato nella definizione di scoreTitleMarkup. Nell’esempio seguente il campo composer (solitamente associato a bookTitleMarkup) viene aggiunto a scoreTitleMarkup, facendo sì che ogni brano possa elencare un diverso compositore:

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

[image of music]

È anche possibile creare un campo testuale personalizzato e fare riferimento ad esso nella definizione di markup.

\book {
  \paper {
    indent = 0\mm
    scoreTitleMarkup = \markup {
      \fill-line {
        \null
        \override #`(direction . ,UP)
        \dir-column {
          \center-align \fontsize #-1 \bold
            \fromproperty #'header:mycustomtext %% Campo definito dall'utente
          \center-align \fontsize #4 \bold
            \fromproperty #'header:piece
        }
        \fromproperty #'header:opus
      }
    }
  }
  \header { tagline = ##f }
  \score {
    \header {
      piece = "FUGA I"
      mycustomtext = "A 4 VOCI" %% Campo definito dall'utente
      opus = "BWV 846"
    }
    { s1 }
  }
}

[image of music]

Vedi anche

Guida alla notazione: Come funzionano i titoli.


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.24.4 (ramo stabile).