| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Text
Questa sezione spiega come includere del testo (con vari tipi di formattazione) nelle partiture musicali.
Alcuni elementi testuali che non sono trattati qui sono discussi in altre sezioni specifiche: Musica vocale, @ref{Titles and headers}.
| 1.8.1 Inserimento del testo | ||
| 1.8.2 Formattazione del testo | ||
| 1.8.3 Tipi di carattere |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Writing text
Questa sezione presenta vari modi di aggiungere del testo a una partitura.
Nota: Per scrivere caratteri accentati e speciali (come quelli di altre lingue), basta inserire semplicemente i caratteri nel file LilyPond, purché il file sia salvato in formato UTF-8. Ulteriori informazioni in Codifica del testo.
| Scritte | ||
| Estensori del testo | ||
| Indicazioni testuali | ||
| Testo separato |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Text scripts
Si possono aggiungere a una partitura delle semplici indicazioni con del “testo tra virgolette”, come mostrato nell’esempio seguente. Tali indicazioni possono essere posizionate sopra o sotto il rigo, usando la sintassi descritta in Direzione e posizionamento.
\relative { a'8^"pizz." g f e a4-"scherz." f }
In realtà questa sintassi è una scorciatoia; si può specificare una formattazione
del testo più complessa usando in modo esplicito un blocco \markup, come
è spiegato in Formattazione del testo.
\relative { a'8^\markup { \italic pizz. } g f e a4_\markup { \tiny scherz. \bold molto } f }
Le indicazioni testuali, di norma, non influenzano la spaziatura delle note. Ma è possibile far sì che la loro larghezza venga presa in considerazione: nell’esempio seguente la prima stringa di testo non influenza la spaziatura, mentre la seconda sì.
\relative { a'8^"pizz." g f e \textLengthOn a4_"scherzando" f }
Oltre alle scritte, si possono attaccare alle note anche le articolazioni. Ulteriori informazioni in Articolazioni e abbellimenti.
Per maggiori informazioni sull’ordinamento relativo delle scritte e delle articolazioni si veda (learning)Posizionamento degli oggetti section ‘Posizionamento degli oggetti’ in Manuale di Apprendimento.
\textLengthOn,
\textLengthOff.
Manuale d’apprendimento: (learning)Posizionamento degli oggetti section ‘Posizionamento degli oggetti’ in Manuale di Apprendimento.
Guida alla notazione: Formattazione del testo, Direzione e posizionamento, Articolazioni e abbellimenti.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
Per verificare che le scritte e il testo vocale siano entro i margini occorrono ulteriori calcoli. Nei casi in cui è richiesta un’esecuzione leggermente più veloce, usare
\override Score.PaperColumn.keep-inside-line = ##f |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Text spanners
Alcune indicazioni esecutive, per esempio rallentando o accelerando, appaiono in forma testuale e vengono estese lungo molteplici note con delle linee punteggiate. Tali oggetti, chiamati “estensori” (spanner), si creano collegando due note con la seguente sintassi:
\relative { \override TextSpanner.bound-details.left.text = "rit." b'1\startTextSpan e,\stopTextSpan }
La stringa testuale da stampare viene impostata attraverso le proprietà
dell’oggetto. Per impostazione predefinita, appare in corsivo, ma si
può ottenere una formattazione diversa tramite i blocchi \markup, come
è spiegato in Formattazione del testo.
\relative { \override TextSpanner.bound-details.left.text = \markup { \upright "rit." } b'1\startTextSpan c e,\stopTextSpan }
Lo stile della linea, così come la stringa testuale, può essere definito come una proprietà dell’oggetto. Questa sintassi è descritta in Stili della linea.
\textSpannerUp,
\textSpannerDown,
\textSpannerNeutral.
LilyPond è capace di gestire un solo estensore del testo per ogni voce.
Estensore testuale della dinamica personalizzato
Si possono definire estensori testuali personalizzati che fanno uso delle
forcine e dei crescendo testuali. \< e \> generano le
forcine, \cresc etc. generano gli estensori testuali.
% Some sample text dynamic spanners, to be used as postfix operators crpoco = #(make-music 'CrescendoEvent 'span-direction START 'span-type 'text 'span-text "cresc. poco a poco") \relative c' { c4\cresc d4 e4 f4 | g4 a4\! b4\crpoco c4 | c4 d4 e4 f4 | g4 a4\! b4\< c4 | g4\dim a4 b4\decresc c4\! }
Estensore testuale della dinamica personalizzato
Funzioni postfix per estensori testuali personalizzati del crescendo. Gli estensori devono iniziare sulla prima nota della misura; e bisogna usare -\mycresc, altrimenti l’inizio dell’estensore viene assegnato alla nota successiva.
% Two functions for (de)crescendo spanners where you can explicitly give the % spanner text. mycresc = #(define-music-function (mymarkup) (markup?) (make-music 'CrescendoEvent 'span-direction START 'span-type 'text 'span-text mymarkup)) mydecresc = #(define-music-function (mymarkup) (markup?) (make-music 'DecrescendoEvent 'span-direction START 'span-type 'text 'span-text mymarkup)) \relative c' { c4-\mycresc "custom cresc" c4 c4 c4 | c4 c4 c4 c4 | c4-\mydecresc "custom decresc" c4 c4 c4 | c4 c4\! c4 c4 }
Guida alla notazione: Stili della linea, Dinamiche, Formattazione del testo.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice, (snippets)Expressive marks section ‘Expressive marks’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextSpanner section ‘TextSpanner’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Text marks
Si possono aggiungere vari elementi testuali a una partitura tramite la sintassi descritta in Segni di chiamata:
\relative { \mark "Verse" c'2 g' \bar "||" \mark "Chorus" g2 c, \bar "|." }
Questa sintassi permette di porre del testo sopra una stanghetta;
una formattazione del testo più complessa è possibile grazie al
blocco \markup, come è spiegato in Formattazione del testo:
\relative { <c' e>1 \mark \markup { \italic { colla parte } } <d f>2 <e g> <c f aes>1 }
Questa sintassi permette anche di stampare segni speciali, come coda, segno o corona, se si specifica il nome appropriato del simbolo, come è spiegato in Notazione musicale nel blocco markup:
\relative { <bes' f>2 <aes d> \mark \markup { \musicglyph "scripts.ufermata" } <e g>1 }
Tali oggetti vengono posizionati soltanto sopra il rigo superiore della partitura; a seconda che siano inseriti alla fine o a metà di una battuta, possono trovarsi sopra la stanghetta o tra le note. Se inserito prima di un’interruzione di linea, l’indicazione apparirà all’inizio della linea successiva.
\relative c'' { \mark "Allegro" c1 c \mark "assai" \break c c }
\markLengthOn,
\markLengthOff.
Posizionare le indicazioni alla fine di una linea
È possibile posizionare le indicazioni alla fine della linea corrente, invece che all’inizio della linea successiva. In tali casi, può essere preferibile allineare l’estremità destra dell’indicazione alla stanghetta.
\relative c'' { g2 c d,2 a' \once \override Score.RehearsalMark.break-visibility = #end-of-line-visible \once \override Score.RehearsalMark.self-alignment-X = #RIGHT \mark "D.C. al Fine" \break g2 b, c1 \bar "||" }
Stampare le indicazioni su ogni rigo
Sebbene le indicazioni testuali siano di norma collocate solo sopra il rigo più alto, è possibile farle apparire su ogni rigo.
\score { << \new Staff { c''1 \mark "molto" c'' } \new Staff { c'1 \mark "molto" c' } >> \layout { \context { \Score \remove "Mark_engraver" \remove "Staff_collecting_engraver" } \context { \Staff \consists "Mark_engraver" \consists "Staff_collecting_engraver" } } }
Guida alla notazione: Segni di chiamata, Formattazione del testo, Notazione musicale nel blocco markup, Il font Emmentaler.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)MarkEvent section ‘MarkEvent’ in Guida al Funzionamento Interno, (internals)Mark_engraver section ‘Mark_engraver’ in Guida al Funzionamento Interno, (internals)RehearsalMark section ‘RehearsalMark’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Separate text
Un blocco \markup può esistere di per sé, fuori da qualsiasi
blocco \score, come un’ “espressione di livello superiore”. Questa
sintassi è descritta in Struttura del file.
\markup { Tomorrow, and tomorrow, and tomorrow... }
Ciò permette di stampare il testo in modo autonomo dalla musica, ed è utile soprattutto quando il file di input contiene vari brani musicali, come è spiegato in Molteplici partiture in un libro.
\score { c'1 } \markup { Tomorrow, and tomorrow, and tomorrow... } \score { c'1 }
Blocchi di testo separati possono essere estesi per molte pagine, rendendo possibile la realizzazione di documenti o libri interamente con LilyPond. Questa funzionalità, e la sintassi specifica che richiede, è descritta in Testo formattato su più pagine.
\markup,
\markuplist.
Testo separato su due colonne
Il testo separato può essere disposto su varie colonne con i comandi di
\markup:
\markup { \fill-line { \hspace #1 \column { \line { O sacrum convivium } \line { in quo Christus sumitur, } \line { recolitur memoria passionis ejus, } \line { mens impletur gratia, } \line { futurae gloriae nobis pignus datur. } \line { Amen. } } \hspace #2 \column \italic { \line { O sacred feast } \line { in which Christ is received, } \line { the memory of His Passion is renewed, } \line { the mind is filled with grace, } \line { and a pledge of future glory is given to us. } \line { Amen. } } \hspace #1 } }
Guida alla notazione: Formattazione del testo, Struttura del file, Molteplici partiture in un libro, Testo formattato su più pagine.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Formatting text
Questa sezione presenta la formattazione del testo basilare e quella avanzata,
usando la sintassi specifica della modalità \markup.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Text markup introduction
Un blocco \markup permette di comporre del testo con un’ampia
sintassi chiamata “modalità markup”.
La sintassi di markup è simile alla solita sintassi di LilyPond: un’espressione
\markup viene racchiusa tra parentesi graffe {… }. Una
singola parola viene considerata un’espressione minima, e quindi non è
necessario racchiuderla tra parentesi.
Diversamente dalle indicazioni testuali “tra virgolette”, i blocchi
\markup possono contenere espressioni o comandi di markup annidati,
inseriti col carattere di barra inversa \. Tali comandi hanno
effetto solo sulla prima espressione che segue.
\relative { a'1-\markup intenso a2^\markup { poco \italic più forte } c e1 d2_\markup { \italic "string. assai" } e b1^\markup { \bold { molto \italic agitato } } c }
Un blocco \markup può contenere anche stringhe di testo tra
virgolette. Tali stringhe vengono trattate come espressioni testuali
minime, e quindi qualsiasi comando di markup o carattere speciale
(come \ e #) apparirà alla lettera senza influenzare
la formattazione del testo. Le stesse doppie virgolette possono essere
stampate facendole precedere da una barra inversa.
\relative { a'1^"\italic markup..." a_\markup { \italic "... prints \"italic\" letters!" } a a }
Perché sia trattata come un’espressione distinta, una lista di parole deve
essere racchiusa tra virgolette doppie o preceduta da un comando. Il modo
in cui le espressioni musicali sono definite influenza il modo in cui
saranno sistemate, centrate e allineate; nell’esempio seguente, la seconda
espressione di \markup viene trattata nello stesso modo della prima:
\relative c'' { c1^\markup { \center-column { a bbb c } } c1^\markup { \center-column { a { bbb c } } } c1^\markup { \center-column { a \line { bbb c } } } c1^\markup { \center-column { a "bbb c" } } }
I markup possono essere salvati in delle variabili, che possono poi essere attaccate direttamente alle note:
allegro = \markup { \bold \large Allegro } { d''8.^\allegro d'16 d'4 r2 }
Una lista completa dei comandi specifici di \markup si trova in
Comandi per markup.
Guida alla notazione: Comandi per markup.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
File installati: ‘scm/markup.scm’.
I messaggi di errore di sintassi relativi alla modalità markup possono essere poco chiari.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Selecting font and font size
La modalità markup permette di cambiare il tipo di carattere:
\relative { d''1^\markup { \bold { Più mosso } \italic { non troppo \underline Vivo } } r2 r4 r8 d,_\markup { \italic quasi \smallCaps Tromba } f1 d2 r }
Si può modificare la dimensione del tipo di carattere, rispetto alla dimensione globale del rigo, in vari modi.
Si può impostare su una dimensione predefinita.
\relative b' { b1_\markup { \huge Sinfonia } b1^\markup { \teeny da } b1-\markup { \normalsize camera } }
oppure in modo proporzionale rispetto al valore precedente.
\relative b' { b1_\markup { \larger Sinfonia } b1^\markup { \smaller da } b1-\markup { \magnify #0.6 camera } }
Può essere aumentata o diminuita rispetto al valore impostato per la dimensione globale del rigo.
\relative b' { b1_\markup { \fontsize #-2 Sinfonia } b1^\markup { \fontsize #1 da } b1-\markup { \fontsize #3 camera } }
Si può impostare anche su una dimensione fissa (in punti), indipendentemente dalla dimensione globale del rigo.
\relative b' { b1_\markup { \abs-fontsize #20 Sinfonia } b1^\markup { \abs-fontsize #8 da } b1-\markup { \abs-fontsize #14 camera } }
Se il testo contiene degli spazi, è meglio racchiuderlo tutto tra virgolette, in modo che la dimensione di ciascun spazio sia adatta alla dimensione degli altri caratteri.
\markup \fontsize #6 \bold { Sinfonia da camera } \markup \fontsize #6 \bold { "Sinfonia da camera" }
È possibile stampare il testo come pedice o apice. Per impostazione predefinita, questo appaiono in corpo più piccolo, ma si può usare anche un corpo normale:
\markup { \column { \line { 1 \super st movement } \line { 1 \normal-size-super st movement \sub { (part two) } } } }
La modalità di markup fornisce un modo semplice per scegliere famiglie di caratteri diverse. Se non specificato altrimenti, viene scelto automaticamente il carattere tipografico con grazie (il tipo romano); nell’ultima linea dell’esempio seguente non c’è differenza tra la prima e la seconda parola.
\markup { \column { \line { Act \number 1 } \line { \sans { Scene I. } } \line { \typewriter { Verona. An open place. } } \line { Enter \roman Valentine and Proteus. } } }
Alcune di queste famiglie di caratteri, usate per elementi specifici come i numeri o le dinamiche, non forniscono tutti i caratteri, come accennato in Nuove indicazioni dinamiche e Indicazioni di ripetizione manuali.
Se usati all’interno di una parola, alcuni comandi che cambiano il tipo di carattere o la formattazione potrebbero produrre uno spazio vuoto indesiderato. Si può facilmente risolvere concatenando insieme gli elementi testuali:
\markup { \column { \line { \concat { 1 \super st } movement } \line { \concat { \dynamic p , } \italic { con dolce espressione } } } }
Una lista completa dei comandi per cambiare il tipo di carattere o per usare tipi di carattere personalizzati si trova in Font.
È possibile anche definire i propri gruppi di tipi di carattere, come è spiegato in Tipi di carattere.
\teeny,
\tiny,
\small,
\normalsize,
\large,
\huge,
\smaller,
\larger.
Guida alla notazione: Font, Nuove indicazioni dinamiche, Indicazioni di ripetizione manuali, Tipi di carattere.
File installati: ‘scm/define-markup-commands.scm’.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
L’uso dei comandi di dimensionamento dei caratteri \teeny, \tiny,
\small, \normalsize, \large e \huge produce
una spaziatura della linea imprevedibile rispetto all’uso di \fontsize.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Text alignment
Questa sottosezione spiega come posizionare il testo nella modalità markup. Gli oggetti markup possono anche essere spostati interamente tramite la sintassi descritta in (learning)Spostare gli oggetti section ‘Spostare gli oggetti’ in Manuale di Apprendimento.
Gli oggetti di markup possono essere allineati in vari modi. Per impostazione predefinita, l’indicazione testuale è allineata rispetto al suo margine sinistro: nell’esempio seguente, non c’è differenza tra il primo e il secondo markup.
\relative { d''1-\markup { poco } f d-\markup { \left-align poco } f d-\markup { \center-align { poco } } f d-\markup { \right-align poco } }
L’allineamento orizzontale può essere ritoccato usando un valore numerico:
\relative { a'1-\markup { \halign #-1 poco } e' a,-\markup { \halign #0 poco } e' a,-\markup { \halign #0.5 poco } e' a,-\markup { \halign #2 poco } }
Alcuni oggetti possono avere proprie procedure di allineamento, e dunque non sono influenzate da questi comandi. È possibile spostare tali oggetti di markup tutti insieme, come mostrato ad esempio in Indicazioni testuali.
L’allineamento verticale è un po’ più complesso. Come si è detto prima, gli oggetti di markup possono essere spostati tutti insieme; tuttavia è anche possibile spostare elementi specifici all’interno di un blocco markup. In questo caso l’elemento da spostare deve essere preceduto da un punto di riferimento, che può essere un altro elemento markup o un oggetto invisibile. L’esempio seguente illustra queste due possibilità; l’ultimo markup in questo esempio non ha un punto di riferimento e di conseguenza non si muove.
\relative { d'2^\markup { Acte I \raise #2 { Scène 1 } } a' g_\markup { \null \lower #4 \bold { Très modéré } } a d,^\markup { \raise #4 \italic { Une forêt. } } a'4 a g2 a }
Alcuni comandi possono cambiare l’allineamento sia orizzontale che verticale degli oggetti testuali in modalità markup. Qualsiasi oggetto interessato da questi comandi deve essere preceduto da un punto di riferimento:
\relative { d'2^\markup { Acte I \translate #'(-1 . 2) "Scène 1" } a' g_\markup { \null \general-align #Y #3.2 \bold "Très modéré" } a d,^\markup { \null \translate-scaled #'(-1 . 2) \teeny "Une forêt." } a'4 a g2 a }
Un oggetto markup può includere varie linee di testo. Nell’esempio seguente, ogni elemento o espressione viene posizionato sulla sua linea, allineato a sinistra o centrato:
\markup { \column { a "b c" \line { d e f } } \hspace #10 \center-column { a "b c" \line { d e f } } }
Analogalmente, una lista di elementi o espressioni può essere distesa per riempire l’intera larghezza orizzontale della linea (se c’è un solo elemento, verrà centrato sulla pagina). Queste espressioni possono a loro volta includere del testo multilinea o una qualsiasi altra espressione di markup:
\markup { \fill-line { \line { William S. Gilbert } \center-column { \huge \smallCaps "The Mikado" or \smallCaps "The Town of Titipu" } \line { Sir Arthur Sullivan } } } \markup { \fill-line { 1885 } }
Indicazioni testuali lunghe possono andare a capo automaticamente in base alla larghezza della linea specificata. Possono essere allineate a sinistra o giustificate, come mostra l’esempio seguente.
\markup { \column { \line \smallCaps { La vida breve } \line \bold { Acto I } \wordwrap \italic { (La escena representa el corral de una casa de gitanos en el Albaicín de Granada. Al fondo una puerta por la que se ve el negro interior de una Fragua, iluminado por los rojos resplandores del fuego.) } \hspace #0 \line \bold { Acto II } \override #'(line-width . 50) \justify \italic { (Calle de Granada. Fachada de la casa de Carmela y su hermano Manuel con grandes ventanas abiertas a través de las que se ve el patio donde se celebra una alegre fiesta) } } }
Una lista completa dei comandi di allineamento del testo si trova in Align.
Manuale d’apprendimento: (learning)Spostare gli oggetti section ‘Spostare gli oggetti’ in Manuale di Apprendimento.
Guida alla notazione: Align, Indicazioni testuali.
File installati: ‘scm/define-markup-commands.scm’.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Graphic notation inside markup
Si possono aggiungere vari oggetti grafici a una partitura attraverso i comandi di markup.
Alcuni comandi di markup consentono di decorare gli elementi testuali con degli elementi grafici, come è illustrato nell’esempio seguente.
\markup \fill-line { \center-column { \circle Jack \box "in the box" \null \line { Erik Satie \hspace #3 \bracket "1866 - 1925" } \null \rounded-box \bold Prelude } }
Alcuni comandi possono richiedere un aumento del padding intorno al testo; per farlo si usano dei comandi di markup, descritti in modo esaustivo in Align.
\markup \fill-line { \center-column { \box "Charles Ives (1874 - 1954)" \null \box \pad-markup #2 "THE UNANSWERED QUESTION" \box \pad-x #8 "A Cosmic Landscape" \null } } \markup \column { \line { \hspace #10 \box \pad-to-box #'(-5 . 20) #'(0 . 5) \bold "Largo to Presto" } \pad-around #3 "String quartet keeps very even time, Flute quartet keeps very uneven time." }
Si possono produrre altri elementi grafici o simboli che non richiedono alcun testo. Come con qualsiasi espressione di markup, tali oggetti possono essere combinati.
\markup { \combine \draw-circle #4 #0.4 ##f \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1 \hspace #5 \center-column { \triangle ##t \combine \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f } }
Le funzionalità grafiche avanzate comprendono la possibilità di includere file di immagini convertite nel formato Encapsulated PostScript (eps), oppure di inserire la grafica direttamente nel file di input, usando del codice PostScript nativo. In tal caso, può essere utile specificare esplicitamente la dimensione del disegno, come è mostrato sotto:
c'1^\markup { \combine \epsfile #X #10 "./context-example.eps" \with-dimensions #'(0 . 6) #'(0 . 10) \postscript " -2 3 translate 2.7 2 scale newpath 2 -1 moveto 4 -2 4 1 1 arct 4 2 3 3 1 arct 0 4 0 3 1 arct 0 0 1 -1 1 arct closepath stroke" } c'
Una lista completa dei comandi specifici per la grafica si trova in Graphic.
Guida alla notazione: Align, Dimensioni, Note editoriali, Graphic.
File installati: ‘scm/define-markup-commands.scm’, ‘scm/stencil.scm’.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Music notation inside markup
Si possono aggiungere vari elementi della notazione musicale dentro un oggetto markup.
Per le note e le alterazioni esistono dei comandi markup appositi:
a'2 a'^\markup { \note {4} #1 = \note-by-number #1 #1 #1.5 } b'1_\markup { \natural \semiflat \flat \sesquiflat \doubleflat } \glissando a'1_\markup { \natural \semisharp \sharp \sesquisharp \doublesharp } \glissando b'
Anche altri oggetti della notazione possono essere stampati in modalità markup:
\relative { g1 bes ees\finger \markup \tied-lyric "4~1" fis_\markup { \dynamic rf } bes^\markup { \beam #8 #0.1 #0.5 } cis d-\markup { \markalphabet #8 \markletter #8 } }
Più in generale, qualsiasi simbolo musicale disponibile può essere incluso separatamente in un oggetto markup, come è illustrato sotto. Una lista completa di questi simboli e dei loro nomi si trova in Il font Emmentaler.
\relative { c''2 c'^\markup { \musicglyph "eight" } c,4 c,8._\markup { \musicglyph "clefs.G_change" } c16 c2^\markup { \musicglyph "timesig.neomensural94" } }
Un altro modo per stampare glifi non testuali è descritto in Tipi di carattere in dettaglio. È utile per stampare parentesi di varie dimensioni.
La modalità markup supporta anche i diagrammi per strumenti specifici:
\relative { c''1^\markup { \fret-diagram-terse "x;x;o;2;3;2;" } c^\markup { \harp-pedal "^-v|--ov^" } c c^\markup { \combine \musicglyph "accordion.discant" \combine \raise #0.5 \musicglyph "accordion.dot" \raise #1.5 \musicglyph "accordion.dot" } }
Questi diagrammi sono documentati in Instrument Specific Markup.
È possibile annidare perfino un’intera partitura in un oggetto markup:
\relative { c'4 d^\markup { \score { \relative { c'4 d e f } } } e f | c d e f }
Una lista completa dei comandi relativi alla notazione musicale si trova in Music.
Guida alla notazione: Music, Il font Emmentaler, Tipi di carattere in dettaglio.
File installati: ‘scm/define-markup-commands.scm’, ‘scm/fret-diagrams.scm’, ‘scm/harp-pedals.scm’.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
La spaziatura verticale di un blocco \score interno a un oggetto markup
è regolata da baseline-skip. Le impostazioni in \paper vengono
ignorate.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Multi-page markup
Sebbene gli oggetti di markup standard non possano avere interruzioni, una specifica sintassi permette di inserire linee di testo che possono estendersi per varie pagine:
\markuplist { \justified-lines { Un testo molto lungo di linee giustificate. ... } \wordwrap-lines { Un altro paragrafo molto lungo. ... } ... }
Questa sintassi accetta una lista di oggetti di markup, che possono essere
Una lista completa dei comandi che si possono usare con \markuplist si trova in Comandi per una lista di markup.
Guida alla notazione: Comandi per una lista di markup.
Estendere LilyPond: (extending)New markup list command definition section ‘New markup list command definition’ in Estendere.
File installati: ‘scm/define-markup-commands.scm’.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
Guida al funzionamento interno: (internals)TextScript section ‘TextScript’ in Guida al Funzionamento Interno.
\markuplist.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Fonts
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 | ||
| Tipi di carattere per singolo oggetto | ||
| Tipi di carattere per l’intero documento |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Fonts explained
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.
Guida alla notazione: Il font Emmentaler, Notazione musicale nel blocco markup, Rotazione degli oggetti, Scelta del tipo di carattere e della dimensione, Font.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Single entry fonts
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 |
Guida alla notazione: Tipi di carattere in dettaglio, Tipi di carattere per l’intero documento.
Frammenti: (snippets)Text section ‘Text’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Entire document fonts
È 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 {
…
}
|
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.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] |
This document was generated by gub on Luglio 13, 2020 using texi2html 1.82.
Altre lingue: English, català, deutsch, español, français, 日本語.
A proposito della selezione automatica della lingua.