]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/it/learning/tweaks.itely
Merge branch 'translation' into staging
[lilypond.git] / Documentation / it / learning / tweaks.itely
index 2822e25b8c72fb62c44720ed4b9e7a537d19e8ff..52390da399354e225953af788e7b1cd9a3b6dd9e 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
 
 @ignore
-    Translation of GIT committish: 0f6397c6fb10d919c6fd006d89bd5cb614f858c6
+    Translation of GIT committish: f3e8b5f9b68cab4579873749f4648ba63bc92ac7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -23,6 +23,7 @@ configurabile; praticamente si può modificare qualsiasi elemento dell'output.
 * Manuale del Funzionamento interno::
 * Aspetto degli oggetti::
 * Posizionamento degli oggetti::
+* Spaziatura verticale::
 * Collisioni tra oggetti::
 * Altre modifiche::
 @end menu
@@ -334,8 +335,8 @@ g4 a
 b c |
 @end lilypond
 
-Tuttavia, i comandi prefediniti che hanno la forma @code{\...Neutral},
-@code{\...Off} e @code{\un...} usano internamente @code{\revert} invece
+Tuttavia, i comandi prefediniti che hanno la forma @code{\@dots{}Neutral},
+@code{\@dots{}Off} e @code{\un@dots{}} usano internamente @code{\revert} invece
 di @code{\override} dunque inserire @code{\once} prima di questi comandi
 non produce alcun effetto.
 
@@ -1750,7 +1751,7 @@ devono esserne posizionati al di fuori.  In LilyPond si chiamano rispettivamente
 (dentro il rigo) e oggetti outside-staff (fuori dal rigo).
 
 Gli oggetti within-staff sono quelli che si trovano nel rigo, come
-le teste e i gambi delle note, le alterazioni, etc..  La loro posizione
+le teste e i gambi delle note, le alterazioni, etc@dots{}  La loro posizione
 è determinata perlopiù dalla musica stessa: in verticale sono collocati
 su determinate posizioni del rigo o sono collegati
 ad altri oggetti disposti in questo modo. Di norma LilyPond evita
@@ -2328,7 +2329,7 @@ far posto al testo.  Lo si può ottenere con il comando
 @funindex textLengthOff
 
 Per impostazione predefinita, finché si tratta di formattare la musica il
-testo prodotto dal comando \markup non occupa uno spazio orizzontale.
+testo prodotto dal comando @code{\markup} non occupa uno spazio orizzontale.
 Il comando @code{\textLengthOn} inverte questo comportamento e fa sì che
 le note si distanzino quanto basti per introdurre il testo:
 
@@ -2344,6 +2345,9 @@ Il comando che ripristina il comportamento predefinito è
 @code{\textLengthOff}.  Altrimenti si può usare @code{\once}
 con @code{\textLengthOn} se l'effetto deve essere limitato
 a un singolo momento musicale.
+Analogalmente, la spaziatura per i segni di chiamata e le indicazioni
+di tempo è regolata in modo indipendente con i comandi @code{\markLengthOn}
+e @code{\markLengthOff}.
 
 @cindex testo a margine, permettere le collisioni
 
@@ -2410,7 +2414,7 @@ questo esempio piuttosto improbabile:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-a4\f b\mf c\mp b\p
+a4\f b\mf a\mp b\p
 @end lilypond
 
 @noindent
@@ -2446,16 +2450,17 @@ Queste proprietà appartengono a tutti i grob che supportano l'interfaccia
 
 Per impostazione predefinita, gli oggetti esterni al rigo presentano estensione
 pari a zero, in modo da potersi sovrapporre nella direzione orizzontale.
-Ciò si ottiene con un trucco, ovvero aggiungendo infinito all'estensione
-sinistra e infinito negativo a quella destra, impostando il valore di
-@code{extra-spacing-width} su @code{'(+inf.0 . -inf.0)}.  Dunque, per
+Ciò si ottiene con un trucco, ovvero dando un valore infinito all'estensione
+sinistra e infinito negativo a quella destra, impostando la proprietà
+@code{extra-spacing-width} su @code{'(+inf.0 . -inf.0)}.  Per
 assicurarci che non si sovrappongano nella direzione orizzontale, dobbiamo
-sovrascrivere il valore di @code{extra-spacing-width} e impostarlo su
-@code{'(0 . 0)} in modo da inserire una larghezza vera e propria.  Ecco il
-comando che lo fa sul testo della dinamica:
+sovrascrivere il valore di @code{extra-spacing-width} per dar loro un po' più
+di spazio.  Le unità sono lo spazio tra due linee del rigo, dunque spostare
+il margine sinistro di mezza unità a sinistra e quello destro di mezza unità
+a destra dovrebbe dare il risultato desiderato:
 
 @example
-\override DynamicText.extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 @end example
 
 @noindent
@@ -2467,38 +2472,214 @@ Vediamo se funziona nell'esempio precedente:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText.extra-spacing-width = #'(0 . 0)
-a4\f b\mf c\mp b\p |
+% Aumenta la larghezza di 1 spazio rigo
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
+a4\f b\mf a\mp b\p
 @end lilypond
 
 @noindent
-Sicuramente ha impedito un'errata disposizione delle indicazioni
-dinamiche, ma restano due problemi.  Le dinamiche dovrebbero
-essere un po' più distanziate; sarebbe inoltre opportuno collocarle
-tutte alla stessa distanza dal rigo.
-Il primo problema è facilmente risolvibile.  Invece di
-impostare @code{extra-spacing-width} su zero, possiamo
-aggiungere un po' di spazio.  L'unità è lo spazio tra due linee
-del rigo, quindi se spostiamo il margine sinistro mezza unità
-a sinistra e il margine destro mezza unità a destra dovrebbe
-funzionare:
+L'aspetto è migliore, ma sarebbe preferibile avere i segni di dinamica
+allineati alla stessa linea di base invece di spostarsi su e giù seguendo
+la posizione delle note.  La proprietà che permette di ottenere tale
+risultato è @code{staff-padding} ed è trattata nella sezione relativa
+alle collisioni (vedi @ref{Collisions of objects}).
 
-@cindex DynamicText, esempio di sovrascrittura
-@cindex proprietà extra-spacing-width, esempio
-@cindex extra-spacing-width, esempio
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\dynamicUp
-% Aumenta la larghezza di 1 spazio rigo
-\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-a4\f b\mf c\mp b\p
+@node Spaziatura verticale
+@section Spaziatura verticale
+@translationof Vertical spacing
+
+Di norma, la spaziatura verticale degli oggetti musicali decisa da
+LilyPond è molto buona.  Vediamo come si comporta con una semplice
+canzone, composta da due voci e un accompagnamento per pianoforte:
+
+@lilypond[quote,fragment,ragged-right]
+<<
+  \new ChoirStaff
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
 @end lilypond
 
-@noindent
-L'aspetto è migliore, ma sarebbe preferibile avere i segni di dinamica
-allineati alla stessa linea di base invece di spostarsi su e giù seguendo la posizione delle note.
-La proprietà che permette di ottenere tale risultato è @code{staff-padding} ed è trattata
-nella sezione seguente.
+Non c'è niente di sbagliato con la spaziatura verticale predefinita.  Tuttavia,
+supponiamo che si stia lavorando con un editore che abbia requisiti specifici
+per la spaziatura verticale dei righi e del testo vocale, ovvero maggior spazio
+tra testo e note, e tra l'accompagnamento del pianoforte e la linea vocale, e
+minor spazio tra i righi del pianoforte.  Iniziamo dal testo.
+
+the lyrics spaced away from any notes, they want the piano
+accompaniment spaced away from the vocal line and they want the two
+piano staves pushed together tightly.  Let's start with the lyrics.
+
+Il testo vocale si trova all'interno di un sistema, dunque i comandi per
+modificarne la spaziatura sono descritti in @ruser{Flexible vertical spacing within systems}.
+Quel paragrafo ci dice che il testo è costituito da linee che non appartengono
+al rigo (@code{non-staff lines}), quindi il comando per cambiarne la spaziatura
+sarà riferito alla proprietà @code{nonstaff}.  Per allontanarlo dal rigo a cui
+si riferiscono (la linea superiore) si usa la proprietà @code{relatedstaff}.
+Per allontanarli dalla linea più bassa si usa la proprietà @code{unrelatedstaff}.
+Le parti vocali fanno parte del @code{VerticalAxisGroup}, dunque dobbiamo
+aggiustare le sue proprietà.  Proviamo a vedere se funziona.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new ChoirStaff
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics \with {
+      \override VerticalAxisGroup.
+        nonstaff-relatedstaff-spacing.padding = #5
+      \override VerticalAxisGroup.
+        nonstaff-unrelatedstaff-spacing.padding = #5
+    }
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+Funziona, ma forse non molto bene.  Quando impostiamo il
+@code{padding} su 5, LilyPond aggiunge 5 spazi rigo alla distanza
+tra gli oggetti, che è troppo in questo caso.  Useremo 2.
+
+Ora allontaniamo la musica per pianoforte dalle parti vocali.  La musica
+vocale si trova nel rigo @code{ChoirStaff}, quindi dobbiamo aumentare lo
+spazio tra quel gruppo di righi e il rigo per pianoforte che si trova sotto.
+Lo faremo modificando la proprietà @code{basic-distance} del
+@code{staffgroup-staff-spacing} di @code{StaffGrouper}.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new ChoirStaff \with {
+    \override StaffGrouper.
+      staffgroup-staff-spacing.basic-distance = #15
+  }
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics \with {
+      \override VerticalAxisGroup.
+        nonstaff-relatedstaff-spacing.padding = #2
+      \override VerticalAxisGroup.
+        nonstaff-unrelatedstaff-spacing.padding = #2
+    }
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+Ottimo.  Non ci resta che avvicinare i righi del pianoforte.  Per farlo,
+modifichiamo di nuovo le proprietà di @code{StaffGrouper}, ma questa volta
+riduciamo sia @code{basic-distance} che @code{padding}.  Ecco come fare:
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new ChoirStaff \with {
+    \override StaffGrouper.
+      staffgroup-staff-spacing.basic-distance = #15
+  }
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics \with {
+      \override VerticalAxisGroup.
+        nonstaff-relatedstaff-spacing.padding = #2
+      \override VerticalAxisGroup.
+        nonstaff-unrelatedstaff-spacing.padding = #2
+    }
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff \with {
+    \override StaffGrouper.staff-staff-spacing = #'(
+                            (basic-distance . 0)
+                            (padding . 0))
+  }
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+In questo modo sono molto vicini, ma è quello che vuole l'editore.
+Se necessario, possono essere allontanati modificando @code{padding} o
+@code{basic-distance}.
+
+Ci sono molti modi per modificare la spaziatura verticale.  Il punto fondamentale
+da ricordare è che la spaziatura degli oggetti in un contesto @code{StaffGroup}
+(come i gruppi @code{GrandStaff} o @code{PianoStaff}) è controllata dalle
+variabili spaziali di @code{StaffGrouper}.  La spaziatura relativa ai righi
+non raggruppati (come @code{Lyrics} e @code{Staff}) è regolata dalle variabili
+del @code{VerticalAxisGroup}.  Ulteriori dettagli in
+@ruser{Flexible vertical spacing \\paper variables} e
+@ruser{Flexible vertical spacing within systems}.
 
 
 @node Collisioni tra oggetti
@@ -2904,7 +3085,7 @@ preso dalla sezione precedente:
 \override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Allinea le dinamiche alla base posta 2 unità sopra il rigo
 \override DynamicLineSpanner.staff-padding = #2
-a4\f b\mf c\mp b\p
+a4\f b\mf a\mp b\p
 @end lilypond
 
 
@@ -2912,9 +3093,9 @@ a4\f b\mf c\mp b\p
 @unnumberedsubsubsec La proprietà @code{self-alignment-X}
 @translationof The self-alignment-X property
 
-L'esempio successivo mostra come questa proprietà possa risolvere la
-collisione di un numero di corda con un gambo allineando il bordo
-destro del numero al punto di riferimento della nota a cui si riferisce:
+L'esempio successivo mostra come aggiustare la posizione di un numero
+di corda rispetto a un gambo allineando il bordo destro del numero
+al punto di riferimento della nota a cui si riferisce:
 
 @cindex StringNumber, esempio di sovrascrittura
 @cindex proprietà self-alignment-X, esempio
@@ -2927,6 +3108,7 @@ destro del numero al punto di riferimento della nota a cui si riferisce:
 <a\2>
 @end lilypond
 
+
 @node La proprietà staff-position
 @unnumberedsubsubsec La proprietà @code{staff-position}
 @translationof The staff-position property
@@ -2947,7 +3129,7 @@ di collisione di questo tipo:
 
 In questo caso la soluzione migliore è spostare in basso la pausa d'intero, poiché
 si trova nella seconda voce.  In @code{\voiceTwo} (ovvero nella seconda
-voce di un costrutto @code{<<@{...@} \\ @{...@}>>}) il valore predefinito
+voce di un costrutto @code{<<@{@dots{}@} \\ @{@dots{}@}>>}) il valore predefinito
 di @code{staff-position} è -4 per la pausa multipla (MultiMeasureRest), quindi
 dobbiamo spostarla più in basso, ad esempio di altri quattro semispazi del
 rigo; il nuovo valore sarà @w{@code{-8}}.
@@ -3192,19 +3374,19 @@ rhMusic = \relative c'' {
       \new Voice {
         \voiceTwo
         c,8~
-        % Reposition the c2 to the right of the merged note
+        % Riposiziona il c2 a destra della nota unita
         \once \override NoteColumn.force-hshift = #1.0
-        % Move the c2 out of the main note column
-        % so the merge will work
+        % Sposta il c2 fuori dalla colonna della nota principale
+        % in modo che l'unione di note (merge) funzioni
         \shiftOnn
         c2
       }
       \new Voice {
         \voiceThree
         s8
-        % Stem on the d2 must be down to permit merging
+        % Il gambo di d2 deve essere in giù per permettere l'unione delle note
         \stemDown
-        % Stem on the d2 should be invisible
+        % Il gambo di d2 deve essere invisibile
         \tweak Stem.transparent ##t
         d2
       }
@@ -3643,7 +3825,7 @@ rhMusic = \relative c'' {
         s8
         % Il gambo di d2 deve essere in giù per permettere l'unione delle note
         \stemDown
-        % Stem on the d2 should be invisible
+        % Il gambo di d2 deve essere invisibile
         \tweak Stem.transparent ##t
         d2
       }
@@ -3686,15 +3868,15 @@ lhMusic = \relative c' {
 @translationof Further tweaking
 
 @menu
-* Altri usi delle modifiche::
-* Uso delle variabili per le modifiche::
+* Altri usi delle modifiche con \tweak::
+* Uso delle variabili per modificare la formattazione::
 * Fogli di stile::
 * Altre fonti di informazione::
 * Modifiche avanzate con Scheme::
 @end menu
 
-@node Altri usi delle modifiche
-@subsection Altri usi delle modifiche
+@node Altri usi delle modifiche con \tweak
+@subsection Altri usi delle modifiche con @code{\tweak}
 @translationof Other uses for tweaks
 
 @menu
@@ -3761,9 +3943,10 @@ possiamo allungarlo impostando la proprietà
 @end lilypond
 
 @funindex \single
-@cindex tweak, generated from override
-Per @emph{sovrascrivere} la trasparenza di un oggetto grafico,
-avremmo potuto usare la scorciatoia @code{\hide}, come spiegato
+@cindex tweak, generato da un override
+
+Per @emph{sovrascrivere} (con @code{\override}) la trasparenza di un oggetto
+grafico, avremmo potuto usare la scorciatoia @code{\hide}, come spiegato
 in precedenza.  Ma la modifica manuale con @emph{\tweak} è un'operazione
 diversa, che riguarda solo le proprietà generate da una singola espressione
 musicale.  Tuttavia è possibile convertire le sovrascritture in @emph{tweak}
@@ -3784,12 +3967,13 @@ in questo modo
 @end lilypond
 
 In questo caso particolare, la differenza rispetto a @code{\once \hide} non
-è evidente.  La differenza è importante quando ci sono vari oggetti che
+è evidente.  La differenza è evidente quando ci sono vari oggetti che
 si trovano nello stesso punto del tempo musicale (come le teste delle note
 in un accordo).  In quel caso, @code{\once} avrà effetto su tutti quegli
 oggetti mentre @code{\single} solo su uno, ovvero quello generato
 dall'espressione musicale immediatamente seguente.
 
+
 @node Simulare una corona nel MIDI
 @unnumberedsubsubsec Simulare una corona nel MIDI
 @translationof Simulating a fermata in MIDI
@@ -3868,13 +4052,13 @@ viene tolto lo stampo (@emph{stencil}), ciò non accade.
 Glossario musicale:
 @rglosnamed{system,sistema}.
 
-@node Uso delle variabili per le modifiche
-@subsection Uso delle variabili per le modifiche
-@translationof Using variables for tweaks
+@node Uso delle variabili per modificare la formattazione
+@subsection Uso delle variabili per modificare la formattazione
+@translationof Using variables for layout adjustments
 
-@cindex variabili, usarle per le modifiche
-@cindex usare le variabili per le modifiche
-@cindex modifiche, usare le variabili per le
+@cindex variabili, usarle per le sovrascritture
+@cindex sovrascritture, usare le variabili per
+@cindex formattazione, usare le variabili per modificare la
 
 I comandi di sovrascrittura sono spesso lunghi e tediosi da
 scrivere, e devono essere assolutamente corretti.  Se si usa
@@ -3983,13 +4167,10 @@ parti che hanno @code{#()}; verranno spiegate nel capitolo
 @ref{Advanced tweaks with Scheme}.
 
 @lilypond[quote,verbatim,ragged-right]
-mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function
@@ -4016,13 +4197,10 @@ piuttosto brutti, dunque nascondiamoli in un altro file:
 
 @example
 %%% salva queste righe in un file chiamato "definitions.ily"
-mpdolce =
-#(make-dynamic-script
-  #@{ \markup @{ \hspace #0
-               \translate #'(5 . 0)
-               \line @{ \dynamic "mp"
-                       \text \italic "dolce" @} @}
-  #@})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function
@@ -4053,13 +4231,10 @@ Ora modifichiamo la musica (e salviamo questo file come @file{music.ly}).
 @end example
 
 @lilypond[quote,ragged-right]
-mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function
@@ -4088,13 +4263,10 @@ questo modo:
 
 @example
 %%%  definitions.ily
-mpdolce =
-#(make-dynamic-script
-  #@{ \markup @{ \hspace #0
-               \translate #'(5 . 0)
-               \line @{ \dynamic "mp"
-                       \text \italic "dolce" @} @}
-  #@})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function
@@ -4121,13 +4293,10 @@ inst =
 @end example
 
 @lilypond[quote,ragged-right]
-mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function
@@ -4171,13 +4340,10 @@ la dimensione complessiva dell'output.
 
 @example
 %%%  web-publish.ily
-mpdolce =
-#(make-dynamic-script
-  #@{ \markup @{ \hspace #0
-               \translate #'(5 . 0)
-               \line @{ \dynamic "mp"
-                       \text \italic "dolce" @} @}
-  #@})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function
@@ -4205,13 +4371,10 @@ inst =
 @end example
 
 @lilypond[quote,ragged-right]
-mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+  (make-dynamic-script
+   (markup #:dynamic "mp"
+           #:normal-text #:italic "dolce" ))
 
 inst =
 #(define-music-function