Guida alla Notazione di LilyPond: 1.8.3 Tipi di carattere

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

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`:

Famiglia | Font predefinito
--- | ---
roman | `serif`
sans | `sans-serif`
typewriter | `monospace`

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

Per gli altri backend:

Famiglia | Font predefinito (alias) | Elenchi di definizione di alias
--- | --- | ---
roman | `LilyPond Serif` | TeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif
sans | `LilyPond Sans Serif` | TeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif
typewriter | `LilyPond Monospace` | TeX 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

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

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 εφπρθ } }

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: http://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 }
>     }

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 "Times New Roman"
>                               "Nimbus Sans,Nimbus Sans L"
>                               "Luxi Mono"
>                               (/ staff-height pt 20)))
>     }

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

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 "Times New Roman"
>          #:sans "Nimbus Sans,Nimbus Sans L"
>          #:typewriter "Luxi 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 "Times New Roman"
>          #:sans "Nimbus Sans,Nimbus Sans L"
>          #:typewriter "Luxi 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.22.2 (ramo stabile).