1.8.3 Tipi di carattere

Questa sezione presenta il modo in cui sono gestiti i tipi di carattere e come possono essere modificati nelle partiture.


Tipi di carattere in dettaglio

I tipi di carattere vengono gestiti attraverso varie librerie. FontConfig rileva i tipi di carattere disponibili nel sistema; i tipi selezionati sono riprodotti con Pango.

I tipi di carattere della notazione musicale possono essere descritti come un insieme di glifi specifici, ordinati in varie famiglie. La seguente sintassi permette di usare vari glifi Feta di LilyPond direttamente nella modalità markup:

a'1^\markup {
  \vcenter {
    \override #'(font-encoding . fetaBraces)
    \lookup "brace120"
    \override #'(font-encoding . fetaText)
    \column { 1 3 sf }
    \override #'(font-encoding . fetaMusic)
    \lookup "noteheads.s0petrucci"
  }
}

[image of music]

Tuttavia, tutti questi glifi, ad eccezione delle graffe di varie dimensioni contenute in fetaBraces, sono già utilizzabili con la sintassi ben più semplice descritta in Notazione musicale nel blocco markup.

Quando si usano i glifi contenuti in fetaBraces, la dimensione della graffa viene specificata dalla parte numerica del nome del glifo, in unità arbitrarie. Può essere specificato qualsiasi numero intero da 0 a 575 compresi, dove 0 corrisponde alla graffa più piccola. Il valore ottimale deve essere determinato per tentativi. Questi glifi sono tutte graffe sinistre; le graffe destre si possono ottenere con la rotazione, vedi Rotazione degli oggetti.

Sono disponibili tre famiglie di font: il font roman (con grazie), il font sans (senza grazie) e il font monospaziato typewriter.

Per il backend svg:

FamigliaFont predefinito
romanserif
sanssans-serif
typewritermonospace

serif, sans-serif, e monospace sono generic-family (famiglie generiche) nelle specifiche SVG e CSS.

Per gli altri backend:

FamigliaFont predefinito (alias)Elenchi di definizione di alias
romanLilyPond SerifTeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif
sansLilyPond Sans SerifTeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif
typewriterLilyPond MonospaceTeX Gyre Cursor, Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, DejaVu Sans Mono, ..., monospace

LilyPond Serif, LilyPond Sans Serif, e LilyPond Monospace sono font alias definiti nel file di configurazione FontConfig specifico per LilyPond 00-lilypond-fonts.conf. Se un carattere non esiste nel primo font elencato, il font successivo dell’elenco verrà usato al suo posto per quel carattere. I dettagli delle definizioni degli alias si trovano nel file 00-lilypond-fonts.conf all’interno della directory di installazione.

Ogni famiglia può avere forme e serie differenti. L’esempio seguente illustra la possibilità di scegliere famiglie, forme, serie e dimensioni alternative. Il valore specificato per font-size è la modifica relativa alla dimensione predefinita.

\override Score.RehearsalMark.font-family = #'typewriter
\mark \markup "Ouverture"
\override Voice.TextScript.font-shape = #'italic
\override Voice.TextScript.font-series = #'bold
d''2.^\markup "Allegro"
\override Voice.TextScript.font-size = #-3
c''4^smaller

[image of music]

Una sintassi simile si usa nella modalità markup; tuttavia in questo caso è preferibile usare la sintassi più semplice spiegata in Scelta del tipo di carattere e della dimensione:

\markup {
  \column {
    \line {
      \override #'((font-shape . italic) (font-size . 4))
      Idomeneo,
    }
    \line {
      \override #'(font-family . typewriter)
      {
        \override #'(font-series . bold)
        re
        di
      }
      \override #'(font-family . sans)
      Creta
    }
  }
}

[image of music]

Quando si usano i font OpenType, sono disponibili le funzionalità dei font. Nota bene: non tutti i font OpenType hanno a disposizione tutte le funzioni. Se si richiede una funzionalità che non esiste nel font scelto, tale funzionalità viene semplicemente ignorata.

% Maiuscoletto vero
\markup { Stile normale: Hello HELLO }
\markup { \caps { Maiuscoletto: Hello } }
\markup { \override #'(font-features . ("smcp"))
          { Maiuscoletto vero: Hello } }

% Stili numerici
\markup { Stile numerico normale: 0123456789 }
\markup { \override #'(font-features . ("onum"))
          { Stile numerico vecchio: 0123456789 } }

% Alternative stilistiche
\markup { \override #'(font-features . ("salt 0"))
          { Alternative stilistiche 0: εφπρθ } }
\markup { \override #'(font-features . ("salt 1"))
          { Alternative stilistiche 1: εφπρθ } }

% Funzionalità multiple
\markup { \override #'(font-features . ("onum" "smcp" "salt 1"))
          { Funzionalità multiple: Hello 0123456789 εφπρθ } }

[image of music]

L’elenco completo delle funzionalità del font OpenType è consultabile qui: https://www.microsoft.com/typography/otspec/featurelist.htm

Per identificare le funzionalità dei font OpenType leggere qui: https://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html

Sebbene sia semplice passare a un tipo di carattere preconfigurato, è anche possibile usare altri tipi, come viene spiegato nelle sezioni successive: Tipi di carattere per singolo oggetto e Tipi di carattere per l’intero documento.

Vedi anche

Guida alla notazione: Il font Emmentaler, Notazione musicale nel blocco markup, Rotazione degli oggetti, Scelta del tipo di carattere e della dimensione, Font.


Tipi di carattere per singolo oggetto

Si può usare nella partitura qualsiasi tipo di carattere che sia installato nel sistema operativo e riconosciuto da FontConfig, usando la seguente sintassi:

\override Staff.TimeSignature.font-name = "Bitstream Charter"
\override Staff.TimeSignature.font-size = #2
\time 3/4

a'1_\markup {
  \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
    { Vera Oblique Bold }
}

[image of music]

font-name può essere definito da una lista separata da virgola di ‘font’ e una lista separata da spazi di ‘stili’. Se il ‘font’ nella lista è installato e contiene il glifo richiesto, verrà usato, altrimenti sarà usato al suo posto il font successivo.

Lanciando lilypond con la seguente opzione si ottiene un elenco di tutti i tipi di carattere disponibili nel sistema operativo:

lilypond -dshow-available-fonts

Vedi anche

Guida alla notazione: Tipi di carattere in dettaglio, Tipi di carattere per l’intero documento.

Frammenti: Text.


Tipi di carattere per l’intero documento

È possibile modificare i tipi di carattere usati come tipi predefiniti nelle famiglie roman, sans e typewriter specificandoli, in questo ordine, come è mostrato nell’esempio seguente, che ridimensiona automaticamente i caratteri col valore impostato per la dimensione globale del rigo. In modo analogo a Tipi di carattere per singolo oggetto, si può indicare con una lista separata da virgole di ‘font’. Gli ‘stili’ dei font, invece, non possono essere definiti. I tipi di carattere sono spiegati in Tipi di carattere in dettaglio.

\paper  {
  #(define fonts
    (make-pango-font-tree "Linux Libertine O"
                          "Nimbus Sans, Nimbus Sans L"
                          "DejaVu Sans Mono"
                          (/ staff-height pt 20)))
}

\relative c'{
  c1-\markup {
    roman,
    \sans sans,
    \typewriter typewriter. }
}

[image of music]

Nota: make-pango-font-tree reimposta i font della notazione sui predefiniti Emmentaler.

La sintassi seguente permette di cambiare font specifici, lasciando gli altri ai valori predefiniti. L’esempio seguente produce lo stesso risultato dell’esempio precedente di make-pango-font-tree. Come con make-pango-font-tree, è possibile specificare un elenco separato da virgola di “font” per le categorie roman, sans e typewriter. Se non si cambia la dimensione del rigo dal valore predefinito di 20 pt, #:factor (/ staff-height pt 20) non è necessario.

\paper {
  #(define fonts
    (set-global-fonts
     #:roman "Linux Libertine O"
     #:sans "Nimbus Sans, Nimbus Sans L"
     #:typewriter "DejaVu Sans Mono"
     #:factor (/ staff-height pt 20) ; non necessario se la dimensione del rigo è predefinita
    ))
}

È possibile specificare anche i font della notazione. Il prossimo esempio ha anch’esso lo stesso risultato degli esempi precedenti, perché imposta i font della notazione predefiniti. Maggiori informazioni in Cambiare il tipo di carattere della notazione.

\paper {
  #(define fonts
    (set-global-fonts
     #:music "emmentaler"            ; predefinito
     #:brace "emmentaler"            ; predefinito
     #:roman "Linux Libertine O"
     #:sans "Nimbus Sans, Nimbus Sans L"
     #:typewriter "DejaVu Sans Mono"
     #:factor (/ staff-height pt 20) ; non necessario se la dimensione del rigo è predefinita
    ))
}

Nota: ogni chiamata della funzione set-global-fonts reimposta completamente i font sia della notazione principale che del testo. Se una categoria non è specificata, allora verrà usato il font predefinito per quella categoria. Ogni chiamata di set-global-fonts cambia i font di ciascun blocco \book che la segue. Se ci sono molteplici blocchi \book e si vogliono usare font diversi per ciascuno, basta ripetere set-global-fonts, in questo modo:

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

Vedi anche

Guida alla notazione: Tipi di carattere in dettaglio, Tipi di carattere per singolo oggetto, Scelta del tipo di carattere e della dimensione, Font, Cambiare il tipo di carattere della notazione.


LilyPond — Guida alla Notazione v2.24.4 (ramo stabile).