@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
    Translation of GIT committish: 21a1f431176e969d45a9cc973c99dce34e9e8733

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
    Guide, node Updating translation committishes..
@end ignore

@c \version "2.21.0"

@c Translators: Federico Bruni
@c Translation checkers:

@node Testo
@section Testo
@translationof Text

@lilypondfile[quote]{snippets/text-headword.ly}

Questa sezione spiega come includere del testo (con vari tipi di
formattazione) nelle partiture musicali.

@noindent
Alcuni elementi testuali che non sono trattati qui sono discussi in altre
sezioni specifiche: @ref{Musica vocale}, @ref{Titles and headers}.

@menu
* Inserimento del testo::
* Formattazione del testo::
* Tipi di carattere::
@end menu

@node Inserimento del testo
@subsection Inserimento del testo
@translationof Writing text

Questa sezione presenta vari modi di aggiungere del testo a una partitura.

@cindex testo, altre lingue
@warning{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 @ref{Codifica del testo}.}

@menu
* Scritte::
* Estensori del testo::
* Indicazioni testuali::
* Testo separato::
@end menu


@node Scritte
@unnumberedsubsubsec Scritte
@translationof Text scripts

@cindex scritta
@cindex testo, elemento non vuoto
@cindex testo tra virgolette

Si possono aggiungere a una partitura delle semplici indicazioni con
del @qq{testo tra virgolette}, come mostrato nell'esempio seguente.
Tali indicazioni possono essere posizionate sopra o sotto il rigo,
usando la sintassi descritta in @ref{Direzione e posizionamento}.

@lilypond[quote,verbatim]
\relative { a'8^"pizz." g f e a4-"scherz." f }
@end lilypond

In realtà questa sintassi è una scorciatoia; si può specificare una formattazione
del testo più complessa usando in modo esplicito un blocco @code{\markup}, come
è spiegato in @ref{Formattazione del testo}.

@lilypond[quote,verbatim]
\relative {
  a'8^\markup { \italic pizz. } g f e
  a4_\markup { \tiny scherz. \bold molto } f }
@end lilypond

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ì.

@lilypond[quote,verbatim]
\relative {
  a'8^"pizz." g f e
  \textLengthOn
  a4_"scherzando" f
}
@end lilypond

Oltre alle scritte, si possono attaccare alle note anche le
articolazioni.  Ulteriori informazioni in @ref{Articolazioni e abbellimenti}.

Per maggiori informazioni sull'ordinamento relativo delle scritte e delle
articolazioni si veda @rlearning{Posizionamento degli oggetti}.

@funindex \textLengthOn
@funindex \textLengthOff

@predefined
@code{\textLengthOn},
@code{\textLengthOff}.
@endpredefined

@morerefs
Manuale d'apprendimento:
@rlearning{Posizionamento degli oggetti}.

Guida alla notazione:
@ref{Formattazione del testo},
@ref{Direzione e posizionamento},
@ref{Articolazioni e abbellimenti}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs

@cindex testo, fuori dal margine
@cindex margine, testo che va oltre
@cindex testo, tenerlo dentro il margine
@cindex testo vocale, tenerlo dentro il margine

@knownissues
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

@example
\override Score.PaperColumn.keep-inside-line = ##f
@end example


@node Estensori del testo
@unnumberedsubsubsec Estensori del testo
@translationof Text spanners

@cindex estensore del testo

Alcune indicazioni esecutive, per esempio @notation{rallentando} o
@notation{accelerando}, appaiono in forma testuale e vengono estese
lungo molteplici note con delle linee punteggiate.  Tali oggetti,
chiamati @qq{estensori} (spanner), si creano collegando due note
con la seguente sintassi:

@lilypond[verbatim,quote]
\relative {
  \override TextSpanner.bound-details.left.text = "rit."
  b'1\startTextSpan
  e,\stopTextSpan
}
@end lilypond

@cindex estensore del testo, formattazione
@cindex formattare un estensore del testo

@noindent
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 @code{\markup}, come
è spiegato in @ref{Formattazione del testo}.

@lilypond[quote,verbatim]
\relative {
  \override TextSpanner.bound-details.left.text =
    \markup { \upright "rit." }
  b'1\startTextSpan c
  e,\stopTextSpan
}
@end lilypond

Lo stile della linea, così come la stringa testuale, può essere definito come
una proprietà dell'oggetto.  Questa sintassi è descritta in @ref{Stili della linea}.

@funindex \textSpannerUp
@funindex \textSpannerDown
@funindex \textSpannerNeutral


@predefined
@code{\textSpannerUp},
@code{\textSpannerDown},
@code{\textSpannerNeutral}.
@endpredefined

@knownissues
LilyPond è capace di gestire un solo estensore del testo per ogni voce.

@snippets

@cindex dinamiche, estensore del testo, personalizzazione
@cindex estensore del testo, dinamiche, personalizzazione
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/dynamics-text-spanner-postfix.ly}

@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/dynamics-custom-text-spanner-postfix.ly}

@morerefs
Guida alla notazione:
@ref{Stili della linea},
@ref{Dinamiche},
@ref{Formattazione del testo}.

Frammenti:
@rlsr{Text},
@rlsr{Expressive marks}.

Guida al funzionamento interno:
@rinternals{TextSpanner}.
@endmorerefs


@node Indicazioni testuali
@unnumberedsubsubsec Indicazioni testuali
@translationof Text marks


@cindex indicazione testuale
@cindex testo, indicazione
@cindex testo, sulla stanghetta
@cindex coda, segno, sulla stanghetta
@cindex segno, sulla stanghetta
@cindex corona, sulla stanghetta
@cindex stanghetta, simboli sulla

@funindex \mark
@funindex \markup

Si possono aggiungere vari elementi testuali a una partitura tramite la
sintassi descritta in @ref{Segni di chiamata}:

@c \mark needs to be placed on a separate line (it's not
@c attached to an object like \markup is). -vv

@lilypond[verbatim,quote]
\relative {
  \mark "Verse"
  c'2 g'
  \bar "||"
  \mark "Chorus"
  g2 c,
  \bar "|."
}
@end lilypond

Questa sintassi permette di porre del testo sopra una stanghetta;
una formattazione del testo più complessa è possibile grazie al
blocco @code{\markup}, come è spiegato in @ref{Formattazione del testo}:

@lilypond[quote,verbatim]
\relative {
  <c' e>1
  \mark \markup { \italic { colla parte } }
  <d f>2 <e g>
  <c f aes>1
}
@end lilypond

@noindent
Questa sintassi permette anche di stampare segni speciali, come coda, segno
o corona, se si specifica il nome appropriato del simbolo, come è spiegato
in @ref{Notazione musicale nel blocco markup}:

@lilypond[quote,verbatim]
\relative {
  <bes' f>2 <aes d>
  \mark \markup { \musicglyph "scripts.ufermata" }
  <e g>1
}
@end lilypond

@noindent
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.

@lilypond[quote,verbatim,ragged-right]
\relative c'' {
  \mark "Allegro"
  c1 c
  \mark "assai" \break
  c  c
}
@end lilypond

@funindex \markLengthOn
@funindex \markLengthOff

@predefined
@code{\markLengthOn},
@code{\markLengthOff}.
@endpredefined

@snippets

@cindex segno, su ogni rigo
@funindex Mark_engraver
@funindex Staff_collecting_engraver
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/printing-marks-on-every-staff.ly}

@morerefs
Guida alla notazione:
@ref{Segni di chiamata},
@ref{Formattazione del testo},
@ref{Notazione musicale nel blocco markup},
@ref{Il font Emmentaler}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{MarkEvent},
@rinternals{Mark_engraver},
@rinternals{RehearsalMark}.
@endmorerefs


@node Testo separato
@unnumberedsubsubsec Testo separato
@translationof Separate text

@cindex testo separato
@cindex testo indipendente
@cindex testo al livello superiore

@funindex \markup

Un blocco @code{\markup} può esistere di per sé, fuori da qualsiasi
blocco @code{\score}, come un'@tie{@qq{espressione di livello superiore}}.  Questa
sintassi è descritta in @ref{Struttura del file}.

@lilypond[verbatim,quote]
\markup {
  Tomorrow, and tomorrow, and tomorrow...
}
@end lilypond

@noindent
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 @ref{Molteplici partiture in un libro}.

@lilypond[quote,verbatim]
\score {
  c'1
}
\markup {
  Tomorrow, and tomorrow, and tomorrow...
}
\score {
  c'1
}
@end lilypond

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 @ref{Testo formattato su più pagine}.

@funindex \markup
@funindex \markuplist

@predefined
@code{\markup},
@code{\markuplist}.
@endpredefined


@snippets

@cindex testo, in colonne
@cindex colonna, testo
@cindex testo a due colonne
@cindex markup, due colonne
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/stand-alone-two-column-markup.ly}

@morerefs
Guida alla notazione:
@ref{Formattazione del testo},
@ref{Struttura del file},
@ref{Molteplici partiture in un libro},
@ref{Testo formattato su più pagine}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs


@node Formattazione del testo
@subsection Formattazione del testo
@translationof Formatting text

Questa sezione presenta la formattazione del testo basilare e quella avanzata,
usando la sintassi specifica della modalità @code{\markup}.

@menu
* Introduzione al testo a margine::
* Scelta del tipo di carattere e della dimensione::
* Allineamento del testo::
* Notazione grafica nel blocco markup::
* Notazione musicale nel blocco markup::
* Testo formattato su più pagine::
@end menu

@node Introduzione al testo a margine
@unnumberedsubsubsec Introduzione al testo a margine
@translationof Text markup introduction

@cindex markup
@cindex testo a margine
@cindex annotazione

@funindex \markup

Un blocco @code{\markup} permette di comporre del testo con un'ampia
sintassi chiamata @qq{modalità markup}.

@cindex markup, espressione
@cindex espressione, markup
@cindex sintassi di markup
@cindex markup, sintassi

La sintassi di markup è simile alla solita sintassi di LilyPond: un'espressione
@code{\markup} viene racchiusa tra parentesi graffe @code{@{@dots{} @}}.  Una
singola parola viene considerata un'espressione minima, e quindi non è
necessario racchiuderla tra parentesi.

Diversamente dalle indicazioni testuali @qq{tra virgolette}, i blocchi
@code{\markup} possono contenere espressioni o comandi di markup annidati,
inseriti col carattere di barra inversa @code{\}.  Tali comandi hanno
effetto solo sulla prima espressione che segue.

@lilypond[quote,verbatim]
\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
}
@end lilypond

@cindex carattere speciale, in modalità markup
@cindex modalità markup, caratteri speciali
@cindex carattere riservato, stampare
@cindex stampare carattere riservato
@cindex stampare carattere speciale
@cindex testo tra virgolette, in modalità markup
@cindex modalità markup, testo tra virgolette

Un blocco @code{\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 @code{\} e@tie{}@code{#}) apparirà alla lettera senza influenzare
la formattazione del testo.  Le stesse doppie virgolette possono essere
stampate facendole precedere da una barra inversa.

@lilypond[quote,verbatim]
\relative {
  a'1^"\italic markup..."
  a_\markup { \italic "... prints \"italic\" letters!" }
  a a
}
@end lilypond

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 @code{\markup} viene trattata nello stesso modo della prima:

@lilypond[quote,verbatim]
\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" } }
}
@end lilypond

I markup possono essere salvati in delle variabili, che possono poi essere
attaccate direttamente alle note:

@lilypond[quote,verbatim]
allegro = \markup { \bold \large Allegro }

{
  d''8.^\allegro
  d'16 d'4 r2
}
@end lilypond


@noindent
Una lista completa dei comandi specifici di @code{\markup} si trova in
@ref{Comandi per markup}.

@morerefs
Guida alla notazione:
@ref{Comandi per markup}.

Frammenti:
@rlsr{Text}.

File installati:
@file{scm/markup.scm}.
@endmorerefs

@knownissues
I messaggi di errore di sintassi relativi alla modalità markup possono
essere poco chiari.


@node Scelta del tipo di carattere e della dimensione
@unnumberedsubsubsec Scelta del tipo di carattere e della dimensione
@translationof Selecting font and font size

@cindex tipo di carattere, cambiare
@cindex cambiare i tipi di carattere
@cindex font, cambiare

@funindex \italic
@funindex \bold
@funindex \underline

La modalità markup permette di cambiare il tipo di carattere:

@lilypond[quote,verbatim]
\relative {
  d''1^\markup {
    \bold { Più mosso }
    \italic { non troppo \underline Vivo }
  }
  r2 r4 r8
  d,_\markup { \italic quasi \smallCaps Tromba }
  f1 d2 r
}
@end lilypond

@cindex dimensione del tipo di carattere
@cindex tipo di carattere, dimensione
@cindex font, dimensione
@cindex dimensione del testo
@cindex testo, dimensione

@funindex \abs-fontsize
@funindex \fontsize
@funindex \smaller
@funindex \larger
@funindex \magnify

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.

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \huge Sinfonia }
  b1^\markup { \teeny da }
  b1-\markup { \normalsize camera }
}
@end lilypond

oppure in modo proporzionale rispetto al valore precedente.

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \larger Sinfonia }
  b1^\markup { \smaller da }
  b1-\markup { \magnify #0.6  camera }
}
@end lilypond

Può essere aumentata o diminuita rispetto al valore impostato per la
dimensione globale del rigo.

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \fontsize #-2 Sinfonia }
  b1^\markup { \fontsize #1 da }
  b1-\markup { \fontsize #3 camera }
}
@end lilypond

Si può impostare anche su una dimensione fissa (in punti), indipendentemente
dalla dimensione globale del rigo.

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \abs-fontsize #20 Sinfonia }
  b1^\markup { \abs-fontsize #8 da }
  b1-\markup { \abs-fontsize #14 camera }
}
@end lilypond

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.

@lilypond[quote,verbatim]
\markup \fontsize #6 \bold { Sinfonia da camera }
\markup \fontsize #6 \bold { "Sinfonia da camera" }
@end lilypond

@cindex pedice
@cindex apice

@funindex \super
@funindex \sub
@funindex \normal-size-super

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

@lilypond[quote,verbatim]
\markup {
  \column {
    \line { 1 \super st movement }
    \line { 1 \normal-size-super st movement
      \sub { (part two) }  }
  }
}
@end lilypond

@cindex famiglia di tipi di carattere
@cindex tipi di carattere, famiglia
@cindex famiglia di font
@cindex font, famiglia

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.

@lilypond[quote,verbatim]
\markup {
  \column {
    \line { Act \number 1 }
    \line { \sans { Scene I. } }
    \line { \typewriter { Verona. An open place. } }
    \line { Enter \roman Valentine and Proteus. }
  }
}
@end lilypond

@noindent
Alcune di queste famiglie di caratteri, usate per elementi specifici come i
numeri o le dinamiche, non forniscono tutti i caratteri, come accennato in
@ref{Nuove indicazioni dinamiche} e @ref{Indicazioni di ripetizione manuali}.

@c \concat is actually documented in Align (it is not
@c a font-switching command).  But we need it here. -vv

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:

@lilypond[quote,verbatim]
\markup {
  \column {
    \line {
      \concat { 1 \super st }
      movement
    }
    \line {
      \concat { \dynamic p , }
      \italic { con dolce espressione }
    }
  }
}
@end lilypond

Una lista completa dei comandi per cambiare il tipo di carattere o per usare
tipi di carattere personalizzati si trova in @ref{Font}.

È possibile anche definire i propri gruppi di tipi di carattere, come
è spiegato in @ref{Tipi di carattere}.

@funindex \teeny
@funindex \tiny
@funindex \small
@funindex \normalsize
@funindex \large
@funindex \huge
@funindex \smaller
@funindex \larger


@predefined
@code{\teeny},
@code{\tiny},
@code{\small},
@code{\normalsize},
@code{\large},
@code{\huge},
@code{\smaller},
@code{\larger}.
@endpredefined

@morerefs
Guida alla notazione:
@ref{Font},
@ref{Nuove indicazioni dinamiche},
@ref{Indicazioni di ripetizione manuali},
@ref{Tipi di carattere}.

File installati:
@file{scm/define-markup-commands.scm}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs

@knownissues
L'uso dei comandi di dimensionamento dei caratteri @code{\teeny}, @code{\tiny},
@code{\small}, @code{\normalsize}, @code{\large} e @code{\huge} produce
una spaziatura della linea imprevedibile rispetto all'uso di @code{\fontsize}.


@node Allineamento del testo
@unnumberedsubsubsec Allineamento del testo
@translationof Text alignment

@cindex testo, allineamento
@cindex allineare il testo
@cindex allineare il markup
@cindex markup, allineare

Questa sottosezione spiega come posizionare il testo nella modalità
markup.  Gli oggetti markup possono anche essere spostati interamente
tramite la sintassi descritta in @rlearning{Spostare gli oggetti}.

@c Padding commands should be mentioned on this page, but
@c most of these require \box to be more clearly illustrated. -vv

@cindex testo, allineamento orizzontale
@cindex allineamento orizzontale del testo

@funindex \left-align
@funindex \center-align
@funindex \right-align

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.

@lilypond[quote,verbatim]
\relative {
  d''1-\markup { poco }
  f
  d-\markup { \left-align poco }
  f
  d-\markup { \center-align { poco } }
  f
  d-\markup { \right-align poco }
}
@end lilypond

@funindex \halign

L'allineamento orizzontale può essere ritoccato usando un valore numerico:

@lilypond[quote,verbatim]
\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 }
}
@end lilypond

@noindent
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
@ref{Indicazioni testuali}.

@cindex testo, allineamento verticale
@cindex allineamento verticale del testo

@funindex \raise
@funindex \lower
@funindex \null

@c QUERY Should the function of ``\null'' be clarified? rp

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 @emph{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.

@lilypond[quote,verbatim]
\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
}
@end lilypond

@funindex \general-align
@funindex \translate
@funindex \translate-scaled

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:

@lilypond[quote,verbatim]
\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
}
@end lilypond

@cindex markup multilinea
@cindex multilinea, markup
@cindex testo multilinea
@cindex multilinea, testo
@cindex testo, in colonne
@cindex colonna, testo

@funindex \column
@funindex \center-column

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:

@lilypond[quote,verbatim]
\markup {
  \column {
    a
    "b c"
    \line { d e f }
  }
  \hspace #10
  \center-column {
    a
    "b c"
    \line { d e f }
  }
}
@end lilypond

@cindex centrare il testo sulla pagina
@cindex testo, centrare sulla pagina
@cindex markup, centrare sulla pagina

@funindex \fill-line

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:

@lilypond[quote,verbatim]
\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 }
}
@end lilypond

@cindex testo a capo automaticamente
@cindex testo giustificato
@cindex giustificato, testo
@cindex a capo, testo
@cindex markup, testo a capo
@cindex markup, testo giustificato

@funindex \wordwrap
@funindex \justify

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.

@lilypond[quote,verbatim]
\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)
    }
  }
}
@end lilypond

@cindex testo, comando di allineamento
@cindex markup, testo, comando di allineamento
@cindex allineamento, testo, comandi

Una lista completa dei comandi di allineamento del testo si trova in
@ref{Align}.

@morerefs
Manuale d'apprendimento:
@rlearning{Spostare gli oggetti}.

Guida alla notazione:
@ref{Align},
@ref{Indicazioni testuali}.

File installati:
@file{scm/define-markup-commands.scm}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs


@node Notazione grafica nel blocco markup
@unnumberedsubsubsec Notazione grafica nel blocco markup
@translationof Graphic notation inside markup

@cindex grafica, inclusione
@cindex disegnare un oggetto grafico
@cindex oggetto grafico, disegnare
@cindex oggetto grafico incorporato
@cindex oggetto grafico, includere

Si possono aggiungere vari oggetti grafici a una partitura attraverso
i comandi di markup.

@cindex decorazione del testo
@cindex incorniciatura del testo
@cindex testo, incorniciatura
@cindex testo, decorazione
@cindex markup, decorazione
@cindex markup, incorniciatura

@funindex \box
@funindex \circle
@funindex \rounded-box
@funindex @sortas{bracketB} \bracket
@funindex \hbracket

Alcuni comandi di markup consentono di decorare gli elementi testuali con
degli elementi grafici, come è illustrato nell'esempio seguente.

@lilypond[quote,verbatim]
\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
  }
}
@end lilypond

@cindex padding intorno al testo
@cindex testo, padding
@cindex markup, testo, padding

@funindex \pad-markup
@funindex \pad-x
@funindex \pad-to-box
@funindex \pad-around

Alcuni comandi possono richiedere un aumento del padding intorno al
testo;  per farlo si usano dei comandi di markup, descritti in modo
esaustivo in @ref{Align}.

@lilypond[quote,verbatim]
\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."
}
@end lilypond

@cindex notazione grafica
@cindex simbolo non musicale

@funindex \combine
@funindex \draw-circle
@funindex \filled-box
@funindex \triangle
@funindex \draw-line
@funindex \arrow-head

Si possono produrre altri elementi grafici o simboli che non richiedono
alcun testo.  Come con qualsiasi espressione di markup, tali oggetti
possono essere combinati.

@lilypond[quote,verbatim]
\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
  }
}
@end lilypond

@cindex grafica inclusa
@cindex immagine, inclusione
@cindex postscript

@funindex \epsfile
@funindex \postscript

Le funzionalità grafiche avanzate comprendono la possibilità di includere
file di immagini convertite nel formato Encapsulated PostScript
(@emph{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:

@lilypond[quote,verbatim,fragment]
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'
@end lilypond

Una lista completa dei comandi specifici per la grafica si trova in
@ref{Graphic}.

@morerefs
Guida alla notazione:
@ref{Align},
@ref{Dimensioni},
@ref{Note editoriali},
@ref{Graphic}.

File installati:
@file{scm/define-markup-commands.scm},
@file{scm/stencil.scm}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs


@node Notazione musicale nel blocco markup
@unnumberedsubsubsec Notazione musicale nel blocco markup
@translationof Music notation inside markup

@cindex notazione, dentro il blocco markup
@cindex musica, dentro il blocco markup
@cindex markup, notazione musicale dentro

Si possono aggiungere vari elementi della notazione musicale dentro un
oggetto markup.

Per le note e le alterazioni esistono dei comandi markup appositi:

@lilypond[quote,verbatim,fragment]
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'
@end lilypond

Anche altri oggetti della notazione possono essere stampati in
modalità markup:

@lilypond[quote,verbatim]
\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
  }
}
@end lilypond

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
@ref{Il font Emmentaler}.

@lilypond[quote,verbatim]
\relative {
  c''2
  c'^\markup { \musicglyph "eight" }
  c,4
  c,8._\markup { \musicglyph "clefs.G_change" }
  c16
  c2^\markup { \musicglyph "timesig.neomensural94" }
}
@end lilypond

Un altro modo per stampare glifi non testuali è descritto in
@ref{Tipi di carattere in dettaglio}.  È utile per stampare parentesi di varie
dimensioni.

La modalità markup supporta anche i diagrammi per strumenti specifici:

@lilypond[quote,verbatim]
\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"
  }
}
@end lilypond

@c The accordion diagram is actually taken from a snippet.

@noindent
Questi diagrammi sono documentati in @ref{Instrument Specific Markup}.

@cindex partitura, dentro il blocco markup
@cindex markup, partitura dentro

È possibile annidare perfino un'intera partitura in un oggetto markup:

@lilypond[quote,verbatim]
\relative {
  c'4 d^\markup {
    \score {
      \relative { c'4 d e f }
    }
  }
  e f |
  c d e f
}
@end lilypond

Una lista completa dei comandi relativi alla notazione musicale si trova
in @ref{Music}.

@morerefs
Guida alla notazione:
@ref{Music},
@ref{Il font Emmentaler},
@ref{Tipi di carattere in dettaglio}.

File installati:
@file{scm/define-markup-commands.scm},
@file{scm/fret-diagrams.scm},
@file{scm/harp-pedals.scm}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs

@knownissues
La spaziatura verticale di un blocco @code{\score} interno a un oggetto markup
è regolata da @code{baseline-skip}.  Le impostazioni in @code{\paper} vengono
ignorate.


@node Testo formattato su più pagine
@unnumberedsubsubsec Testo formattato su più pagine
@translationof Multi-page markup

@cindex testo formattato su più pagine
@cindex markup, multipagina
@cindex multipagina, testo
@cindex testo, esteso su più pagine

@funindex \markuplist
@funindex \justified-lines
@funindex \wordwrap-lines

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:

@lilypond[quote,verbatim]
\markuplist {
  \justified-lines {
    Un testo molto lungo di linee giustificate.
    ...
  }
  \wordwrap-lines {
    Un altro paragrafo molto lungo.
    ...
  }
  ...
}
@end lilypond

Questa sintassi accetta una lista di oggetti di markup, che possono essere
@itemize
@item
il risultato di un comando \markuplist,
@item
una lista di markup,
@item
una lista di \markuplists.
@end itemize

Una lista completa dei comandi che si possono usare con \markuplist si
trova in @ref{Comandi per una lista di markup}.

@morerefs
Guida alla notazione:
@ref{Comandi per una lista di markup}.

Estendere LilyPond:
@rextend{New markup list command definition}.

File installati:
@file{scm/define-markup-commands.scm}.

Frammenti:
@rlsr{Text}.

Guida al funzionamento interno:
@rinternals{TextScript}.
@endmorerefs

@funindex \markuplist

@predefined
@code{\markuplist}.
@endpredefined


@node Tipi di carattere
@subsection Tipi di carattere
@translationof Fonts

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

@menu
* Tipi di carattere in dettaglio::
* Tipi di carattere per singolo oggetto::
* Tipi di carattere per l'intero documento::
@end menu

@node Tipi di carattere in dettaglio
@unnumberedsubsubsec Tipi di carattere in dettaglio
@translationof Fonts explained

@cindex Pango
@cindex tipo di carattere
@cindex font
@cindex graffa, varie dimensioni
@cindex font non testuali, nel markup

@funindex font-interface

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 @emph{Feta} di LilyPond
direttamente nella modalità markup:

@lilypond[quote,verbatim,fragment]
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"
  }
}
@end lilypond

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

Quando si usano i glifi contenuti in @code{fetaBraces}, la dimensione
della graffa viene specificata dalla parte numerica del nome del glifo,
in unità arbitrarie.  Può essere specificato qualsiasi numero intero da
@code{0} a @code{575} compresi, dove @code{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 @ref{Rotazione degli oggetti}.

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

Per il backend @code{svg}:
@multitable @columnfractions .15 .30
@headitem Famiglia @tab Font predefinito
@item @emph{roman} @tab @code{serif}
@item @emph{sans} @tab @code{sans-serif}
@item @emph{typewriter} @tab @code{monospace}
@end multitable

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

Per gli altri backend:
@multitable @columnfractions .15 .30 .55
@headitem Famiglia @tab Font predefinito (alias) @tab Elenchi di definizione di alias
@item @emph{roman}
@tab @code{LilyPond Serif}
@tab
TeX Gyre Schola,
C059, Century SchoolBook URW, Century Schoolbook L,
DejaVu Serif,
..., serif
@item @emph{sans}
@tab @code{LilyPond Sans Serif}
@tab
TeX Gyre Heros,
Nimbus Sans, Nimbus Sans L, DejaVu Sans,
..., sans-serif
@item @emph{typewriter}
@tab @code{LilyPond Monospace}
@tab
TeX Gyre Cursor,
Nimbus Mono PS, Nimbus Mono, Nimbus Mono L,
DejaVu Sans Mono,
..., monospace
@end multitable

@code{LilyPond Serif}, @code{LilyPond Sans Serif},
e @code{LilyPond Monospace} sono font alias definiti
nel file di configurazione FontConfig specifico per LilyPond
@code{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
@code{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 @code{font-size} è
la modifica relativa alla dimensione predefinita.

@lilypond[quote,verbatim,fragment]
\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
@end lilypond

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

@lilypond[quote,verbatim]
\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
    }
  }
}
@end lilypond

@noindent
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.

@lilypond[quote,verbatim]
% 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 εφπρθ } }
@end lilypond

@noindent L'elenco completo delle funzionalità del font OpenType è
consultabile qui:
@uref{https://www.microsoft.com/typography/otspec/featurelist.htm}

@noindent Per identificare le funzionalità dei font OpenType leggere qui:
@uref{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:
@ref{Tipi di carattere per singolo oggetto} e
@ref{Tipi di carattere per l'intero documento}.

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


@node Tipi di carattere per singolo oggetto
@unnumberedsubsubsec Tipi di carattere per singolo oggetto
@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:

@lilypond[quote,verbatim,fragment]
\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 }
}
@end lilypond

@cindex tipo di carattere, trovare disponibilità
@cindex trovare i tipi di carattere disponibili
@cindex elencare i tipi di carattere disponibili
@cindex tipi di carattere disponibili, elenco

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

@funindex show-available-fonts

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

@example
lilypond -dshow-available-fonts
@end example

@morerefs
Guida alla notazione:
@ref{Tipi di carattere in dettaglio},
@ref{Tipi di carattere per l'intero documento}.

Frammenti:
@rlsr{Text}.
@endmorerefs

@c A source file gets never installed...
@c Installed Files:
@c @file{lily/font-config-scheme.cc}.


@node Tipi di carattere per l'intero documento
@unnumberedsubsubsec Tipi di carattere per l'intero documento
@translationof Entire document fonts

È possibile modificare i tipi di carattere usati come tipi predefiniti nelle
famiglie @emph{roman}, @emph{sans} e @emph{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 @ref{Tipi di carattere per singolo oggetto}, si può indicare con una lista separata da
virgole di @q{font}. Gli @q{stili} dei font, invece, non possono essere
definiti.  I tipi di carattere  sono spiegati in @ref{Tipi di carattere in dettaglio}.

@cindex famiglia di tipi di carattere, impostare
@cindex font, impostare
@cindex tipo di carattere, modificarli per l'intero documento
@cindex font, modificarli per l'intero documento

@funindex make-pango-font-tree

@lilypond[verbatim,quote]
\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. }
}
@end lilypond

Nota: @code{make-pango-font-tree} reimposta i font della notazione sui
predefiniti Emmentaler.

@c we don't do Helvetica / Courier, since GS incorrectly loads
@c Apple TTF fonts

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 @code{make-pango-font-tree}.
Come con  @code{make-pango-font-tree}, è possibile specificare un elenco
separato da virgola di @qq{font} per le categorie @code{roman}, @code{sans}
e @code{typewriter}.
Se non si cambia la dimensione del rigo dal valore predefinito di 20 pt,
@code{#:factor (/ staff-height pt 20)} non è necessario.

@funindex set-global-fonts

@example
\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
    ))
@}
@end example

È 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 @ref{Cambiare il tipo di carattere della notazione}.

@example
\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
    ))
@}
@end example

Nota: ogni chiamata della funzione @code{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 @code{set-global-fonts} cambia i font di ciascun blocco
@code{\book} che la segue.
Se ci sono molteplici blocchi @code{\book} e si vogliono usare font diversi
per ciascuno, basta ripetere @code{set-global-fonts}, in questo modo:

@example
\paper @{
  #(define fonts
    (set-global-fonts
     @dots{}
    ))
@}
\book @{
  @dots{}
@}

\paper @{
  #(define fonts
    (set-global-fonts
     @dots{}
    ))
@}
\book @{
  @dots{}
@}
@end example


@morerefs
Guida alla notazione:
@ref{Tipi di carattere in dettaglio},
@ref{Tipi di carattere per singolo oggetto},
@ref{Scelta del tipo di carattere e della dimensione},
@ref{Font},
@ref{Cambiare il tipo di carattere della notazione}.
@endmorerefs
