]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/notation/spacing.itely
Doc: NR renamed 'New spacing area' node
[lilypond.git] / Documentation / it / notation / spacing.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: 410fe169a1eeff173aed62d85b79686532b379ff
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.19.22"
12
13 @c Translators: Federico Bruni
14 @c Translation checkers:
15
16 @ignore
17 GDP TODO list
18
19 Negative numbers are allowed:
20 > Are you sure? The following works well
21 > \paper{
22 >   first-page-number = -2
23 > }
24 > and prints page number -1 on the second page, for example.
25
26
27 Clarify
28 http://code.google.com/p/lilypond/issues/detail?id=68
29
30 @end ignore
31
32
33 @node Gestione dello spazio
34 @chapter Gestione dello spazio
35 @translationof Spacing issues
36
37 La formattazione globale del foglio è determinata da tre fattori: la
38 formattazione della pagina, le interruzioni di linea e la spaziatura.
39 Ciascun fattore influenza l'altro. La scelta della spaziatura determina
40 la densità con cui vengono disposti i sistemi musicali, che a sua volta
41 influenza la scelta delle interruzioni di linea e quindi infine quante
42 pagine occupa un brano.
43
44 Generalmente, questa procedura si svolge in quattro stadi. Inizialmente
45 vengono scelte le distanze flessibili (@q{springs}), in base alle
46 durate.  Poi vengono tentate tutte le possibili combinazioni per le
47 interruzioni di linea e viene calcolato un punteggio @q{negativo} per
48 ciascuna di esse. Quindi viene calcolata l'altezza di ogni possibile
49 sistema. Infine viene scelta una combinazione di interruzioni di linea
50 e di interruzioni di pagina che assicuri che la spaziatura verticale e
51 quella orizzontale non siano né troppo compresse né troppo allungate.
52
53 Due tipi di blocchi possono contenere le impostazioni di formattazione:
54 @code{\paper @{@dots{}@}} e @code{\layout @{@dots{}@}}.  Il blocco
55 @code{\paper} contiene le impostazioni di formattazione della pagina
56 da applicare a tutte le partiture di un libro o di una parte,
57 come l'altezza del foglio o se stampare o meno i numeri di pagina, etc.
58 (vedi @ref{Page layout}).  Il blocco @code{\layout} contiene le impostazioni
59 di formattazione della partitura, come il numero di sistemi da usare o lo
60 spazio tra i gruppi di righi, etc. (vedi @ref{Score layout}).
61
62 @menu
63 * Formattazione della pagina::
64 * Formattazione della partitura::
65 * Interruzioni::
66 * Spaziatura verticale::
67 * Spaziatura orizzontale::
68 * Riduzione del numero di pagine di una partitura::
69 @end menu
70
71
72 @node Formattazione della pagina
73 @section Formattazione della pagina
74 @translationof Page layout
75
76 Questa sezione tratta le opzioni di formattazione della pagina per il
77 blocco @code{\paper}.
78
79 @menu
80 * Il blocco paper::
81 * Formato carta e ridimensionamento automatico::
82 * Variabili paper della spaziatura verticale fissa::
83 * Variabili paper della spaziatura verticale flessibile::
84 * Variabili paper della spaziatura orizzontale::
85 * Altre variabili di paper::
86 @end menu
87
88
89 @node Il blocco paper
90 @subsection Il blocco @code{@bs{}paper}
91 @translationof The paper block
92
93 I blocchi @code{\paper} possono essere posizionati in tre punti diversi, in
94 modo da formare una gerarchia discendente di blocchi @code{\paper}:
95
96 @itemize
97
98 @item
99 All'inizio del file di input, prima di tutti i blocchi @code{\book},
100 @code{\bookpart} e @code{\score}.
101
102 @item
103 Dentro un blocco @code{\book} ma fuori da tutti i blocchi
104 @code{\bookpart} e @code{\score} in esso racchiusi.
105
106 @item
107 Dentro un blocco @code{\bookpart} ma fuori da tutti i blocchi
108 @code{\score} in esso racchiusi.
109
110 @end itemize
111
112 Non è possibile inserire un blocco @code{\paper} in un blocco @code{\score}.
113
114 I valori dei campi vengono filtrati dall'alto verso il basso attraverso
115 questa gerarchia: i valori impostati nei livelli più alti della
116 gerarchia persistono finché non sono sovrascritti da un valore
117 impostato in un livello più basso.
118
119 Vari blocchi @code{\paper} possono apparire in ognuno di questi livelli, per
120 esempio come parti di vari file inclusi con @code{\include}.  In questo caso,
121 i campi di ciascun livello vengono combinati e i valori riscontrati per
122 ultimi avranno la precedenza in caso di campi duplicati.
123
124 Le impostazioni che possono apparire in un blocco @code{\paper} comprendono:
125
126 @itemize
127
128 @item
129 la funzione scheme @code{set-paper-size},
130
131 @item
132 le variabili @code{\paper} per personalizzare la formattazione della pagina e
133
134 @item
135 le definizioni di markup usate per personalizzare la formattazione di intestazioni,
136 piè di pagina e titoli.
137
138 @end itemize
139
140 La funzione @code{set-paper-size} è trattata nella prossima
141 sezione, @ref{Paper size and automatic scaling}.  Le variabili
142 @code{\paper} che si occupano della formattazione della pagina sono
143 trattate in sezioni successive.  Le definizioni di markup relative a
144 intestazioni, piè di pagina e titoli sono trattate in
145 @ref{Custom titles headers and footers}.
146
147 La maggior parte delle variabili @code{\paper} funzionano soltanto in
148 un blocco @code{\paper}.  Le poche che funzionano anche in un blocco
149 @code{\layout} sono elencate in
150 @ref{The layout block,,Il blocco @code{@bs{}layout}}.
151
152 Se non indicato diversamente, tutte le variabili @code{\paper} che
153 corrispondono a distanze sulla pagina sono misurate in millimetri,
154 a meno che un'unità di misura diversa non sia specificata dall'utente.
155 Per esempio, la seguente dichiarazione imposta @code{top-margin} su
156 dieci millimetri:
157
158 @example
159 \paper @{
160   top-margin = 10
161 @}
162 @end example
163
164 Per impostarla su @code{0.5} pollici, usare il suffisso di
165 unità @code{\in} (inch = pollice):
166
167 @example
168 \paper @{
169   top-margin = 0.5\in
170 @}
171 @end example
172
173 I suffissi di unità disponibili sono @code{\mm}, @code{\cm},
174 @code{\in} e @code{\pt}.  Queste unità sono semplici valori utili
175 per convertire dai millimetri e sono definite in
176 @file{ly/paper-defaults-init.ly}.  Solo per chiarezza, quando
177 si usano i millimetri, di solito si usa il suffisso @code{\mm},
178 anche se non è tecnicamente necessario.
179
180 È anche possibile definire i valori di @code{\paper} con Scheme.
181 L'equivalente Scheme dell'esempio precedente è:
182
183 @example
184 \paper @{
185   #(define top-margin (* 0.5 in))
186 @}
187 @end example
188
189 @seealso
190 Guida alla notazione:
191 @ref{Paper size and automatic scaling},
192 @ref{Custom titles headers and footers},
193 @ref{The layout block,,Il blocco @code{@bs{}layout}}.
194
195 File installati:
196 @file{ly/paper-defaults-init.ly}.
197
198
199 @node Formato carta e ridimensionamento automatico
200 @subsection Formato carta e ridimensionamento automatico
201 @translationof Paper size and automatic scaling
202
203 @cindex formato carta
204 @cindex formato pagina
205 @cindex carta, formato
206 @cindex pagina, formato
207
208 @funindex \paper
209
210 @menu
211 * Impostare il formato carta::
212 * Ridimensionamento automatico al formato carta::
213 @end menu
214
215
216 @node Impostare il formato carta
217 @unnumberedsubsubsec Impostare il formato carta
218 @translationof Setting the paper size
219
220 @q{A4} è il valore predefinito quando non viene impostato esplicitamente
221 alcun formato carta. Esistono due funzioni che permettono di cambiare
222 formato:
223
224 @table @code
225 @item set-default-paper-size
226
227 @example
228 #(set-default-paper-size "quarto")
229 @end example
230
231 che deve sempre trovarsi nel livello superiore, e
232
233 @item set-paper-size
234
235 @example
236 \paper @{
237   #(set-paper-size "tabloid")
238 @}
239 @end example
240
241 che deve sempre trovarsi in un blocco @code{\paper}.
242 @end table
243
244 La funzione @code{set-default-paper-size}, se usata nel livello superiore,
245 deve precedere qualsiasi blocco @code{\paper}.
246 @code{set-default-paper-size} imposta il formato di tutte le pagine,
247 mentre @code{set-paper-size} imposta il formato soltanto di quelle
248 pagine a cui è applicato il blocco @code{\paper}.  Per esempio, se il
249 blocco @code{\paper} si trova all'inizio del file, applicherà il formato
250 a tutte le pagine.  Se il blocco @code{\paper} si trova dentro un blocco
251 @code{\book}, il formato verrà applicato a quel libro soltanto.
252
253 Quando si usa la funzione @code{set-paper-size}, questa deve essere
254 posta @emph{prima} di qualsiasi altra funzione usata nello stesso blocco
255 @code{\paper}.  Vedi @ref{Automatic scaling to paper size}.
256
257 I formati carta sono definiti in @file{scm/paper.scm}, e sebbene sia
258 possibile aggiungere formati personalizzati in questo file, tali aggiunte
259 verrebbero sovrascritte da successivi aggiornamenti del software. I formati
260 disponibili sono elencati in @ref{Predefined paper sizes}.
261
262 @c An appendix entry exists for paper sizes but is not auto-generated
263
264 È tuttavia possibile aggiungere un formato personalizzato nel file di
265 input per poi utilizzarlo con @code{set-default-paper-size} o
266 @code{set-paper-size}:
267
268 @example
269 #(set! paper-alist (cons '("mio formato" . (cons (* 15 in) (* 3 in))) paper-alist))
270
271 \paper @{
272   #(set-paper-size "mio formato")
273 @}
274 @end example
275
276 Si può usare qualsiasi unità di misura: @code{in} (inch, o pollici), @code{cm}
277 (centimetri) e @code{mm} (millimetri).
278
279 @cindex formato carta, orientamento
280 @cindex pagina, orientamento
281 @cindex formato carta, orizzontale (landscape)
282
283 Aggiungendo il simbolo @code{'landscape} alla funzione del formato, le pagine
284 vengono ruotate di 90 gradi e le linee occupano il maggior spazio a disposizione.
285
286 @example
287 #(set-default-paper-size "a6" 'landscape)
288 @end example
289
290 Appendendo @samp{landscape} (orizzontale) al nome del formato, è possibile
291 scambiare le dimensioni della carta @emph{senza} ruotare la stampa
292 (come quando si stampa in formato cartolina o si creano dei file
293 grafici da includere invece di un documento indipendente):
294
295 @example
296 #(set-default-paper-size "a6landscape")
297 @end example
298
299 Quando il formato termina con un esplicito @samp{landscape} (orizzontale) o
300 @samp{portrait} (verticale), la presenza di un simbolo @code{'landscape}
301 influisce @emph{solo} sull'orientamento della stampa, non sul formato
302 usato per la formattazione.
303
304 @seealso
305 Guida alla notazione:
306 @ref{Automatic scaling to paper size},
307 @ref{Predefined paper sizes}.
308
309 File installati:
310 @file{scm/paper.scm}.
311
312
313 @node Ridimensionamento automatico al formato carta
314 @unnumberedsubsubsec Ridimensionamento automatico al formato carta
315 @translationof Automatic scaling to paper size
316
317 Se il formato viene cambiato con una delle funzioni scheme
318 (@code{set-default-paper-size} o @code{set-paper-size}), i
319 valori di diverse variabili @code{\paper} sono automaticamente
320 ricalcolati in base alla nuova dimensione.  Per aggirare il ridimensionamento
321 automatico di una certa variabile, impostare la variabile dopo aver
322 impostato il formato.  Fare attenzione al fatto che il ridimensionamento
323 automatico non viene attivato se si impostano le variabili
324 @code{paper-height} o @code{paper-width}, anche se
325 @code{paper-width} può influenzare altri valori (ma questo
326 è un argomento diverso dal ridimensionamento ed è trattato in seguito).  Le
327 funzioni @code{set-default-paper-size} e @code{set-paper-size} sono
328 descritte in @ref{Setting the paper size}.
329
330 Le dimensioni verticali interessate dal ridimensionamento automatico
331 sono @code{top-margin} e @code{bottom-margin} (vedi
332 @ref{Fixed vertical spacing paper variables,,Variabili fisse della spaziatura verticale di @code{@bs{}paper}}).
333 Le dimensioni orizzontali interessate dal ridimensionamento automatico
334 sono @code{left-margin}, @code{right-margin}, @code{inner-margin},
335 @code{outer-margin}, @code{binding-offset}, @code{indent} e @code{short-indent} (vedi
336 @ref{Horizontal spacing paper variables,,Variabili della spaziatura orizzontale di @code{@bs{}paper}}).
337
338 I valori predefiniti di queste dimensioni sono impostati in
339 @file{ly/paper-defaults-init.ly} e salvati in variabili interne
340 chiamate @code{top-margin-default}, @code{bottom-margin-default}, etc.
341 Questi valori si riferiscono al formato predefinito @code{a4}.
342 Per riferimento, nel formato @code{a4} il valore di @code{paper-height} è
343 @code{297\mm} e quello di @code{paper-width} è @code{210\mm}.
344
345 @seealso
346 Guida alla notazione:
347 @ref{Fixed vertical spacing paper variables,,Variabili fisse della spaziatura verticale di @code{@bs{}paper}},
348 @ref{Horizontal spacing paper variables,,Variabili della spaziatura orizzontale di @code{@bs{}paper}}.
349
350 File installati:
351 @file{ly/paper-defaults-init.ly},
352 @file{scm/paper.scm}.
353
354
355 @node Variabili paper della spaziatura verticale fissa
356 @subsection Variabili @code{@bs{}paper} della spaziatura verticale fissa
357 @translationof Fixed vertical spacing paper variables
358
359 @warning{Alcune dimensioni definite nel blocco @code{@bs{}paper} sono
360 ridimensionate automaticamente in base al formato carta, portando a
361 possibili risultati imprevisti. Vedi
362 @ref{Automatic scaling to paper size}.}
363
364 I valori predefiniti (prima del ridimensionamento) sono definiti in
365 @file{ly/paper-defaults-init.ly}.
366
367 @table @code
368 @item paper-height
369 @funindex paper-height
370
371 L'altezza della pagina (valore predefinito: non impostata).  Il ridimensionamento
372 automatico di alcune dimensioni verticali non è influenzato da questa.
373
374 @item top-margin
375 @funindex top-margin
376
377 Il margine tra il punto più alto della pagina e il punto più alto
378 dell'area di stampa.  Se il formato viene modificato, il valore
379 predefinito di questa dimensione viene ridimensionato di conseguenza.
380
381 @item bottom-margin
382 @funindex bottom-margin
383
384 Il margine tra il punto più basso dell'area di stampa e il punto
385 più basso della pagina.  Se il formato viene modificato, il valore
386 predefinito di questa dimensione viene ridimensionato di conseguenza.
387
388 @item ragged-bottom
389 @funindex ragged-bottom
390
391 Se impostato su vero, i sistemi avranno la loro naturale spaziatura.
392 Non saranno giustificati, ovvero non saranno né compressi né allungati
393 verticalmente per stare nella pagina.
394
395 @item ragged-last-bottom
396 @funindex ragged-last-bottom
397
398 Se impostato su falso, l'ultima pagina, e l'ultima pagina
399 di ogni sezione creata con un blocco @code{\bookpart}, saranno
400 giustificate verticalmente come nelle pagine precedenti.
401
402 @end table
403
404 @seealso
405 Guida alla notazione:
406 @ref{Automatic scaling to paper size}.
407
408 File installati:
409 @file{ly/paper-defaults-init.ly}.
410
411 Frammenti:
412 @rlsr{Spacing}.
413
414 @knownissues
415 I titoli (definiti nel blocco @code{\header}) sono considerati
416 un sistema, dunque @code{ragged-bottom} e @code{ragged-last-bottom}
417 aggiungeranno spazio tra i titoli e il primo sistema della partitura.
418
419 Formati carta definiti esplicitamente sovrascriveranno qualsiasi
420 impostazione di margine superiore o inferiore definito dall'utente.
421
422
423 @node Variabili paper della spaziatura verticale flessibile
424 @subsection Variabili @code{@bs{}paper} della spaziatura verticale flessibile
425 @translationof Flexible vertical spacing paper variables
426
427 Nella maggior parte dei casi è preferibile che le distanze verticali
428 tra certi elementi (come margini, titoli, sistemi e partiture
429 separate) siano flessibili, così che siano ben compresse o allungate
430 a seconda della situazione.  Sono disponibili diverse variabili
431 @code{\paper} (elencate sotto) per regolare il comportamento di
432 allungamento di queste dimensioni.
433
434 Nota bene che le variabili @code{\paper} trattate in questa sezione
435 non regolano la spaziatura dei righi dei singoli sistemi.
436 La spaziatura interna ai sistemi è controllata dalle proprietà
437 del grob, solitamente inserite in un blocco @code{\score} o
438 @code{\layout} e non in un blocco @code{\paper}.  Vedi
439 @ref{Flexible vertical spacing within systems}.
440
441 @menu
442 * Struttura delle liste associative flessibili della spaziatura verticale::
443 * Elenco delle variabili paper flessibili della spaziatura verticale::
444 @end menu
445
446
447 @node Struttura delle liste associative flessibili della spaziatura verticale
448 @unnumberedsubsubsec Struttura delle liste associative flessibili della spaziatura verticale
449 @translationof Structure of flexible vertical spacing alists
450
451 Ognuna delle variabili @code{\paper} flessibili della spaziatura verticale
452 è una lista associativa (alist) composta da quattro @emph{elementi}:
453
454 @itemize
455
456 @item
457 @code{basic-distance} -- la distanza verticale, misurata in
458 spazi rigo, tra i @emph{punti di riferimento} dei due
459 elementi, quando non si verificano collisioni e non sono
460 attivi allungamenti o compressioni.  Il punto di riferimento
461 di un markup (un titolo o un markup di un livello superiore)
462 è il suo punto più alto, mentre quello di un sistema è il
463 centro verticale del più vicino @code{StaffSymbol}, anche se
464 una linea diversa da un rigo (come un contesto @code{Lyrics}) si
465 trova nel mezzo.  Valori di @code{basic-distance} inferiori a quelli
466 di @code{padding} o @code{minimum-distance} non hanno senso, dato che
467 la distanza risultante non sarà mai inferiore a quella definita per
468 @code{padding} o @code{minimum-distance}.
469
470 @item
471 @code{minimum-distance} -- la minima distanza verticale consentita,
472 misurata in spazi rigo, tra i punti di riferimento dei due
473 elementi, quando la compressione è attiva.  Valori di
474 @code{minimum-distance} inferiori a quelli di @code{padding} non
475 hanno senso, perché la distanza risultante non sarà mai inferiore
476 a quella definita per @code{padding.}
477
478 @c TODO: explain skylines somewhere and xref to it from here.
479
480 @item
481 @code{padding} -- la quantità minima di spazio verticale libero
482 tra i profili (@emph{skyline}) dei due elementi, misurata in
483 spazi rigo.
484
485 @item
486 @code{stretchability} -- una misura, priva di unità di misura,
487 della relativa propensione della dimensione a allungarsi.  Se
488 pari a zero, la distanza non si allungherà (a meno che non ci
489 siano delle collisioni).  Se positiva, il significato del valore
490 di @code{stretchability} di una certa dimensione sta nella sua
491 relazione con i valori di @code{stretchability} delle altre
492 dimensioni.  Per esempio, se una dimensione ha un valore di
493 @code{stretchability} doppio rispetto a un'altra, si allungherà
494 il doppio.
495 I valori devono essere non negativi e finiti.  Il valore @code{+inf.0} causa un
496 errore di programmazione e viene ingorato, ma si può usare @code{1.0e7} per
497 ottenere un'elasticità allungabile quasi all'infinito. Se non impostata, il
498 valore predefinito equivale a quello di @code{basic-distance}.  Nota che la
499 propensione della dimensione a @emph{comprimersi} non può essere impostata
500 direttamente dall'utente ed è uguale a
501 (@code{basic-distance}@tie{}@minus{}@tie{}@code{minimum-distance}).
502
503 @end itemize
504
505 Se in una pagina lo spazio verticale non è giustificato (ovvero con
506 @code{ragged-bottom} impostato su vero) la distanza risultante è
507 data dal valore più grande assegnato a una di queste tre proprietà:
508
509 @itemize
510
511 @item
512 @code{basic-distance},
513
514 @item
515 @code{minimum-distance} e
516
517 @item
518 @code{padding} con l'aggiunta della più piccola distanza necessaria a
519 eliminare collisioni.
520
521 @end itemize
522
523 In caso di partiture con molte pagine in cui l'ultima pagina non è
524 giustificata (ovvero con @code{ragged-last-bottom} impostato su vero),
525 l'ultima pagina usa la stessa spaziatura della pagina precedente,
526 purché ci sia abbastanza spazio.
527
528 I metodi specifici per modificare le liste associative (alist) sono
529 trattati in @ref{Modifying alists}.  L'esempio seguente illustra i
530 due modi in cui queste possono essere modificate.  La prima dichiarazione
531 aggiorna un elemento-valore individualmente, mentre la seconda ridefinisce
532 completamente la variabile:
533
534 @example
535 \paper @{
536   system-system-spacing.basic-distance = #8
537   score-system-spacing =
538     #'((basic-distance . 12)
539        (minimum-distance . 6)
540        (padding . 1)
541        (stretchability . 12))
542 @}
543 @end example
544
545
546 @node Elenco delle variabili paper flessibili della spaziatura verticale
547 @unnumberedsubsubsec Elenco delle variabili @code{@bs{}paper} flessibili della spaziatura verticale
548 @translationof List of flexible vertical spacing paper variables
549
550 I nomi di queste variabili hanno il formato
551 @code{@var{superiore}-@var{inferiore}-spacing}, dove @code{@var{superiore}}
552 e @code{@var{inferiore}} indicano gli elementi di cui stabilire la
553 distanza.  Ogni distanza viene misurata tra i punti di riferimento
554 dei due elementi (vedi la descrizione precedente della struttura della
555 lista associativa). Nei nomi di queste variabili il termine @q{@code{markup}}
556 si riferisce sia ai @emph{titoli} (@code{bookTitleMarkup} o
557 @code{scoreTitleMarkup}) sia ai @emph{markup di livello superiore} (vedi
558 @ref{File structure}).  Tutte le distanze sono misurate in spazi rigo.
559
560 Le impostazioni predefinite sono definite in @file{ly/paper-defaults-init.ly}.
561
562 @c TODO: Where do headers/footers fit in? -mp
563
564 @table @code
565 @item markup-system-spacing
566 @funindex markup-system-spacing
567
568 la distanza tra il testo (titolo o markup di livello superiore) e il sistema
569 che lo segue.
570
571 @item score-markup-spacing
572 @funindex score-markup-spacing
573
574 la distanza tra l'ultimo sistema di un brano e il testo (titolo o
575 markup di livello superiore) che lo segue.
576
577 @item score-system-spacing
578 @funindex score-system-spacing
579
580 la distanza tra l'ultimo sistema di un brano e il primo sistema
581 del brano successivo, quando non c'è alcun testo (titolo o
582 markup di livello superiore) tra di loro.
583
584 @item system-system-spacing
585 @funindex system-system-spacing
586
587 la distanza tra due sistemi di uno stesso brano.
588
589 @item markup-markup-spacing
590 @funindex markup-markup-spacing
591
592 la distanza tra due testi (titoli o markup di livello superiore).
593
594 @item last-bottom-spacing
595 @funindex last-bottom-spacing
596
597 la distanza tra l'ultimo sistema o l'ultimo markup di livello superiore di
598 una pagina e la fine dello spazio stampabile (ovvero la parte superiore
599 del margine inferiore).
600
601 @item top-system-spacing
602 @funindex top-system-spacing
603
604 la distanza tra l'inizio dello spazio stampabile (ovvero la parte
605 inferiore del margine superiore) e il primo sistema di una pagina, quando
606 non c'è alcun testo (titolo o markup di livello superiore) tra di loro.
607
608 @item top-markup-spacing
609 @funindex top-markup-spacing
610
611 la distanza tra l'inizio dello spazio stampabile (ovvero la parte
612 inferiore del margine superiore) e il primo testo (titolo o markup di
613 livello superiore) di una pagina, quando non c'è alcun sistema tra i due.
614 @end table
615
616 @seealso
617 Guida alla notazione:
618 @ref{Flexible vertical spacing within systems}.
619
620 File installati:
621 @file{ly/paper-defaults-init.ly}.
622
623 Frammenti:
624 @rlsr{Spacing}.
625
626
627 @node Variabili paper della spaziatura orizzontale
628 @subsection Variabili @code{@bs{}paper} della spaziatura orizzontale
629 @translationof Horizontal spacing paper variables
630
631 @warning{Alcune dimensioni in @code{@bs{}paper} sono ridimensionate
632 automaticamente in base al formato carta, producendo talvolta un
633 risultato inatteso. Vedi @ref{Automatic scaling to paper size}.}
634
635 @menu
636 * Variabili paper per larghezze e margini::
637 * Variabili paper per la modalità due pagine per foglio::
638 * Variabili paper per spostamenti e indentazioni::
639 @end menu
640
641
642 @node Variabili paper per larghezze e margini
643 @unnumberedsubsubsec Variabili @code{@bs{}paper} per larghezze e margini
644 @translationof paper variables for widths and margins
645
646 I valori predefiniti (prima del ridimensionamento) non elencati qui si
647 trovano in @file{ly/paper-defaults-init.ly}.
648
649 @table @code
650
651 @item paper-width
652 @funindex paper-width
653
654 Larghezza della pagina (non impostata inizialmente).  @code{paper-width},
655 pur non avendo effetto sul ridimensionamento automatico di alcune dimensioni
656 orizzontali, influenza la variabile @code{line-width}.  Se sono impostate
657 sia @code{paper-width} che @code{line-width}, saranno modificate anche
658 @code{left-margin} e @code{right-margin}. Vedi anche @code{check-consistency}.
659
660 @item line-width
661 @funindex line-width
662
663 Se specificata in un blocco @code{\paper} definisce la lunghezza orizzontale
664 disponibile per i righi musicali nei sistemi non indentati.  Se non specificata,
665 la larghezza della linea (@code{line-width}) del foglio è determinata dalla sottrazione
666 @code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}.
667 Se @code{line-width} è specificata nel blocco @code{\paper} e entrambi i margini,
668 @code{left-margin} e @code{right-margin}, non lo sono, questi saranno aggiornati
669 in modo da centrare i sistemi sulla pagina automaticamente.
670 Vedi anche @code{check-consistency}.
671
672 Le variabili @code{line-width} per i singoli brani possono essere specificate
673 nel blocco @code{\layout} di ogni brano, ovvero dentro un blocco @code{\score}.
674 Questi valori regolano la larghezza delle linee prodotte brano per brano.  Se
675 @code{line-width} non viene specificata per un brano, il suo valore predefinito
676 coincide con la larghezza della linea del foglio, ovvero col valore della
677 variabile @code{line-width} del blocco @code{\paper}.  Impostando
678 @code{line-width} per un brano in particolare, ovvero all'interno di un blocco
679 @code{\score}, i margini del foglio non vengono modificati. Le linee del rigo,
680 la cui lunghezza è determinata dalla variabile @code{line-width} del brano, sono
681 allineate a sinistra all'interno dello spazio definito dalla variabile
682 @code{line-width} del foglio. Se le variabili @code{line-width} del brano e del
683 foglio sono uguali, le linee del rigo si estenderanno esattamente dal margine
684 sinistro al margine destro, ma se quella del brano è maggiore di quella del
685 foglio le linee del rigo andranno oltre il margine destro.
686
687 @item left-margin
688 @funindex left-margin
689
690 Margine tra il bordo sinistro della pagina e l'inizio delle linee
691 del rigo nei sistemi non indentati.  Se il formato è modificato, il valore
692 predefinito di questa dimensione viene ridimensionato proporzionalmente.  Se
693 @code{left-margin} non è impostato, e sono impostati sia @code{line-width} che
694 @code{right-margin}, allora @code{left-margin} equivale alla differenza
695 @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}right-margin)}.
696 Se è impostata soltanto @code{line-width}, entrambi i margini sono impostati su
697 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)},
698 e di conseguenza i sistemi sono centrati sulla pagina.  Vedi anche
699 @code{check-consistency}.
700
701 @item right-margin
702 @funindex right-margin
703
704 Margine tra il bordo destro della pagina e la fine delle linee
705 del rigo in sistemi giustificati.  Se il formato è modificato, il valore
706 predefinito di questa dimensione viene ridimensionato proporzionalmente.  Se
707 @code{right-margin} non è impostato, e sono impostati sia @code{line-width} che
708 @code{left-margin}, allora @code{right-margin} equivale a
709 @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}left-margin)}.
710 Se è impostata soltanto @code{line-width}, entrambi i margini sono impostati su
711 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)},
712 e di conseguenza i sistemi sono centrati sulla pagina.  Vedi anche
713 @code{check-consistency}.
714
715 @item check-consistency
716 @funindex check-consistency
717
718 Se impostata su vero (valore predefinito), appare un avvertimento nella
719 console se la somma di @code{left-margin}, @code{line-width} e
720 @code{right-margin} non corrisponde esattamente a @code{paper-width}, e a
721 ciascuna di queste variabili (eccetto @code{paper-width}) sarà assegnato il suo
722 valore predefinito (ridimensionato in base al formato, se richiesto).  Se
723 impostato su falso, qualsiasi incongruenza viene ignorata e i sistemi potrebbero
724 andare oltre il bordo della pagina.
725
726 @item ragged-right
727 @funindex ragged-right
728
729 Se impostato su vero, i sistemi non occuperanno interamente la larghezza
730 della linea, ovvero non saranno giustificati.  Termineranno invece alla loro
731 lunghezza orizzontale naturale.  Valori predefiniti: @code{#t} (true = vero)
732 per i brani con un unico sistema, e @code{#f} (false = falso) per i brani
733 con due o più sistemi.  Questa variabile può essere impostata anche in
734 un blocco @code{\layout}.
735
736 @item ragged-last
737 @funindex ragged-last
738
739 Se impostata su vero, l'ultimo sistema del brano non occuperà interamente
740 la larghezza della linea, ovvero non sarà giustificato.  Terminerà invece
741 alla sua lunghezza orizzontale naturale.  Valore predefinito: @code{#f} (false = falso).
742 Questa variabile può essere impostata anche in un blocco @code{\layout}.
743
744 @end table
745
746 @seealso
747 Guida alla notazione:
748 @ref{Automatic scaling to paper size}.
749
750 File installati:
751 @file{ly/paper-defaults-init.ly}.
752
753 @knownissues
754 Formati carta definiti esplicitamente sovrascriveranno qualsiasi margine
755 destro o sinistro definito dall'utente.
756
757
758 @node Variabili paper per la modalità due pagine per foglio
759 @unnumberedsubsubsec Variabili @code{@bs{}paper} per la modalità due pagine per foglio
760 @translationof paper variables for two-sided mode
761
762 I valori predefiniti (prima del ridimensionamento) sono definiti in
763 @file{ly/paper-defaults-init.ly}.
764
765 @table @code
766
767 @item two-sided
768 @funindex two-sided
769
770 @cindex rilegatura
771 @cindex margine di rilegatura
772
773 Se impostata su vero, vengono usati @code{inner-margin}, @code{outer-margin} e
774 @code{binding-offset} per determinare i margini a seconda che il numero di
775 pagina sia dispari o pari.  Questa variabile sovrascrive @code{left-margin}
776 e @code{right-margin}.
777
778 @item inner-margin
779 @funindex inner-margin
780
781 Margine del lato interno di tutte le pagine se queste fanno parte
782 di un libro.  Se il formato è modificato, il valore predefinito di questa
783 dimensione viene ridimensionato proporzionalmente.  Funziona soltanto con
784 @code{two-sided} impostato su vero.
785
786 @item outer-margin
787 @funindex outer-margin
788
789 È il margine del lato esterno di tutte le pagine se queste fanno parte
790 di un libro.  Se il formato è modificato, il valore predefinito di questa
791 dimensione viene ridimensionato proporzionalmente.  Funziona soltanto con
792 @code{two-sided} impostato su vero.
793
794 @item binding-offset
795 @funindex binding-offset
796
797 Quantità di spazio da aggiungere a @code{inner-margin} per assicurarsi che
798 niente sia nascosto dalla rilegatura.  Se il formato è modificato, il valore
799 predefinito di questa dimensione viene ridimensionato proporzionalmente.
800 Funziona soltanto con @code{two-sided} impostato su vero.
801
802 @end table
803
804 @seealso
805 Guida alla notazione:
806 @ref{Automatic scaling to paper size}.
807
808 File installati:
809 @file{ly/paper-defaults-init.ly}.
810
811
812 @node Variabili paper per spostamenti e indentazioni
813 @unnumberedsubsubsec Variabili @code{@bs{}paper} per spostamenti e indentazioni
814 @translationof paper variables for shifts and indents
815
816 I valori predefiniti (prima del ridimensionamento) non elencati qui sono
817 visibili in @file{ly/paper-defaults-init.ly}.
818
819 @table @code
820
821 @item horizontal-shift
822 @funindex horizontal-shift
823
824 @c This default value is buried in the middle of page.scm.  -mp
825
826 È la quantità di spazio di cui spostare a destra tutti i sistemi (inclusi
827 i titoli e i separatori dei sistemi).  Valore predefinito: @code{0.0\mm}.
828
829 @item indent
830 @funindex indent
831
832 Livello di indentazione del primo sistema di un brano.
833 Se il formato è modificato, il valore predefinito di questa dimensione viene
834 ridimensionato proporzionalmente.  Lo spazio compreso in @code{line-width}
835 disponibile per il primo sistema è ridotto di questa quantità.  @code{indent}
836 può essere specificato anche in blocchi @code{\layout} per impostare
837 l'indentazione brano per brano.
838
839 @item short-indent
840 @funindex short-indent
841
842 Livello di indentazione di tutti i sistemi di un brano eccetto
843 il primo sistema.  Se il formato è modificato, il valore predefinito di
844 questa dimensione viene ridimensionato proporzionalmente.  Lo spazio
845 compreso in @code{line-width} disponibile per tutti i sistemi tranne il
846 primo è ridotto di questa quantità.  @code{short-indent} può essere specificato
847 anche in blocchi @code{\layout} per impostare le brevi indentazioni brano per brano.
848
849 @end table
850
851 @seealso
852 Guida alla notazione:
853 @ref{Automatic scaling to paper size}.
854
855 File installati:
856 @file{ly/paper-defaults-init.ly}.
857
858 Frammenti:
859 @rlsr{Spacing}.
860
861
862 @node Altre variabili di paper
863 @subsection Altre variabili di @code{@bs{}paper}
864 @translationof Other paper variables
865
866 @menu
867 * Variabili di paper per l'interruzione di linea::
868 * Variabili di paper per l'interruzione di pagina::
869 * Variabili di paper per la numerazione delle pagine::
870 * Svariate variabili di paper::
871 @end menu
872
873
874 @node Variabili di paper per l'interruzione di linea
875 @unnumberedsubsubsec Variabili di @code{@bs{}paper} per l'interruzione di linea
876 @translationof paper variables for line breaking
877
878 @table @code
879
880 @item max-systems-per-page
881 @funindex max-systems-per-page
882
883 Il numero massimo di sistemi che saranno disposti in una pagina.  Attualmente
884 ciò è supportanto soltanto dall'algoritmo @code{ly:optimal-breaking}.
885 Valore predefinito: non impostato.
886
887 @item min-systems-per-page
888 @funindex min-systems-per-page
889
890 Il numero minimo di sistemi che saranno disposti in una pagina.  Ciò
891 potrebbe riempire troppo le pagine, se il numero è troppo grande.  Attualmente
892 ciò è supportanto soltanto dall'algoritmo @code{ly:optimal-breaking}.
893 Valore predefinito: non impostato.
894
895 @item systems-per-page
896 @funindex systems-per-page
897
898 Il numero di sistemi da disporre in una pagina.  Attualmente
899 ciò è supportanto soltanto dall'algoritmo @code{ly:optimal-breaking}.
900 Valore predefinito: non impostato.
901
902 @item system-count
903 @funindex system-count
904
905 Il numero di sistemi da usare per un brano.  Valore predefinito: non impostato.
906 Questa variabile può essere impostata anche in un blocco @code{\layout}.
907
908 @end table
909
910 @seealso
911 Guida alla notazione:
912 @ref{Line breaking}.
913
914
915 @node Variabili di paper per l'interruzione di pagina
916 @unnumberedsubsubsec Variabili di @code{@bs{}paper} per l'interruzione di pagina
917 @translationof paper variables for page breaking
918
919 I valori predefiniti non elencati qui sono visibili in
920 @file{ly/paper-defaults-init.ly}
921
922 @table @code
923
924 @item page-breaking
925 @funindex page-breaking
926
927 L'algoritmo di interruzione di pagina da usare.  Le opzioni sono
928 @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
929 @code{ly:one-line-breaking} e @code{ly:optimal-breaking}
930 (predefinito).
931
932 @item page-breaking-system-system-spacing
933 @funindex page-breaking-system-system-spacing
934
935 Induce il sistema di interruzione di pagina a credere che
936 @code{system-system-spacing} sia impostato in modo diverso dal
937 modo in cui è impostato realmente.  Per esempio, se
938 @code{page-breaking-system-system-spacing #'padding} è impostato su un
939 valore molto più grande di @code{system-system-spacing #'padding}, il
940 sistema di interruzione di pagina disporrà meno sistemi su ciascuna
941 pagina.  Valore predefinito: non impostato.
942
943 @item page-count
944 @funindex page-count
945
946 Il numero di pagine da usare per un brano, non impostato.
947
948 @end table
949
950 Le variabili seguenti sono attive soltanto quando @code{page-breaking}
951 è impostato su @code{ly:page-turn-breaking}.  Le interruzioni di pagina
952 vengono quindi scelte per minimizzare il numero di voltate di pagina.
953 Dato che le voltate di pagina si rendono necessarie quando si passa da
954 una pagina con numero dispari a una con numero pari, verrà solitamente
955 favorita una formattazione in cui l'ultima pagina abbia un numero dispari.
956 I punti preferiti per le voltate di pagina possono essere indicati
957 manualmente col comando @code{\allowPageTurn} o automaticamente
958 includendo l'incisore @code{Page_turn_engraver} (vedi @ref{Optimal page turning}).
959
960 Se le scelte disponibili per avere voltate di pagina adeguate sono
961 insufficienti, LilyPond potrebbe inserire una pagina vuota all'interno
962 di un brano o tra i brani (se ce ne sono almeno due), oppure potrebbe
963 terminare un brano su una pagina pari.  Aumentando i valori delle
964 seguenti tre variabili diminuisce la probabilità che queste entrino
965 in azione.
966
967 I valori sono penalità: maggiore il valore, minore la probabilità
968 che si verifichi l'azione associata rispetto alle altre scelte.
969
970 @table @code
971
972 @item blank-page-penalty
973 @funindex blank-page-penalty
974
975 La penalità per avere una pagina vuota nel mezzo di un brano.  Se il
976 valore di @code{blank-page-penalty} è grande ed è selezionato
977 @code{ly:page-turn-breaking}, sarà meno probabile che LilyPond
978 insersica una pagina nel mezzo del brano.  Aggiungerà invece
979 maggior spazio tra i sistemi per occupare la pagina vuota e
980 quella successiva.  Valore predefinito: 5.
981
982 @item blank-last-page-penalty
983 @funindex blank-last-page-penalty
984
985 La penalità per terminare il brano su una pagina pari.  Se il
986 valore di @code{blank-last-page-penalty} è grande ed è selezionato
987 @code{ly:page-turn-breaking}, sarà meno probabile che LilyPond
988 produca una partitura in cui l'ultima pagina sia pari.  Regolerà
989 invece la spaziatura in modo da usare una pagina in più o in meno.
990 Valore predefinito: 0.
991
992 @item blank-after-score-page-penalty
993 @funindex blank-after-score-page-penalty
994
995 La penalità per avere una pagina vuota dopo la fine di un brano e
996 prima di quello successivo.  Il valore predefinito è inferiore a
997 @code{blank-page-penalty}, in modo che siano inserite preferibilmente
998 pagine vuote al termine di un brano piuttosto che nel mezzo di un brano.
999 Valore predefinito: 2.
1000
1001 @end table
1002
1003
1004 @seealso
1005 Guida alla notazione:
1006 @ref{Page breaking},
1007 @ref{Optimal page breaking},
1008 @ref{Optimal page turning},
1009 @ref{Minimal page breaking},
1010 @ref{One-line page breaking}.
1011
1012 File installati:
1013 @file{ly/paper-defaults-init.ly}.
1014
1015
1016 @node Variabili di paper per la numerazione delle pagine
1017 @unnumberedsubsubsec Variabili di @code{@bs{}paper} per la numerazione delle pagine
1018 @translationof paper variables for page numbering
1019
1020 I valori predefiniti non elencati qui sono visibili in
1021 @file{ly/paper-defaults-init.ly}
1022
1023 @table @code
1024
1025 @cindex numeri di pagina, numerazione automatica
1026 @item auto-first-page-number
1027 @funindex auto-first-page-number
1028
1029 L'algoritmo di interruzione di pagina si comporta diversamente a seconda
1030 che il numero della prima pagina sia dispari o pari.  Se questa variabile
1031 è impostata su vero, l'algoritmo di interruzione di pagina
1032 deciderà se iniziare con un numero dispari o un numero pari.  Quindi il
1033 numero della prima pagina resterà lo stesso o aumenterà di uno.
1034 Valore predefinito: @code{#f} (falso).
1035
1036 @cindex numeri di pagina, indicare il primo
1037 @item first-page-number
1038 @funindex first-page-number
1039
1040 Il valore del numero di pagina della prima pagina.
1041
1042 @item print-first-page-number
1043 @funindex print-first-page-number
1044
1045 Se impostato su vero, appare il numero di pagina sulla prima pagina.
1046
1047 @cindex numeri di pagina, sopprimere
1048 @item print-page-number
1049 @funindex print-page-number
1050
1051 Se impostato su falso, non apparirano i numeri di pagina.
1052
1053 @cindex numeri di pagina in numeri romani
1054 @item page-number-type
1055 @funindex page-number-type
1056
1057 Il tipo di numero usato per numerare le pagine.  Le opzioni possibili
1058 sono @code{roman-lower}, @code{roman-upper} e @code{arabic}.
1059 Valore predefinito: @code{'arabic}.
1060
1061 @end table
1062
1063 @seealso
1064 File installati:
1065 @file{ly/paper-defaults-init.ly}.
1066
1067 @knownissues
1068 I numeri di pagina dispari sono sempre sulla destra.  Se la musica
1069 deve iniziare a pagina 1, ci deve essere una pagina vuota sulla
1070 seconda di copertina in modo che pagina 1 sia sul lato destro.
1071
1072
1073 @node Svariate variabili di paper
1074 @unnumberedsubsubsec Svariate variabili di @code{@bs{}paper}
1075 @translationof Miscellaneous paper variables
1076
1077 @table @code
1078
1079 @item page-spacing-weight
1080 @funindex page-spacing-weight
1081
1082 L'importanza della spaziatura (verticale) e della linea (orizzontale)
1083 della pagina.  Valori più grandi renderanno la spaziatura della pagina
1084 più importante.  Valore predefinito: @code{10}.
1085
1086 @item print-all-headers
1087 @funindex print-all-headers
1088
1089 Se impostato su vero, appariranno nell'output tutte le intestazioni di
1090 ciascun blocco @code{\score}.  Di norma appaiono soltanto le variabili
1091 @code{piece} e @code{opus}.  Valore predefinito: @code{#f}.
1092
1093 @item system-separator-markup
1094 @funindex system-separator-markup
1095
1096 Un oggetto markup inserito tra i sistemi, spesso usato per le
1097 partiture orchestrali.  Valore predefinito: non impostato.  È
1098 disponibile il comando markup @code{\slashSeparator}, definito
1099 in @file{ly/titling-init.ly}, che fornisce un ragionevole valore
1100 predefinito, per esempio:
1101
1102 @lilypond[quote,verbatim,noragged-right,line-width=30\mm]
1103 #(set-default-paper-size "a8")
1104
1105 \book {
1106   \paper {
1107     system-separator-markup = \slashSeparator
1108   }
1109   \header {
1110     tagline = ##f
1111   }
1112   \score {
1113     \relative { c''1 \break c1 \break c1 }
1114   }
1115 }
1116 @end lilypond
1117
1118 @end table
1119
1120 @seealso
1121 File installati:
1122 @file{ly/titling-init.ly}.
1123
1124 Frammenti:
1125 @rlsr{Spacing}.
1126
1127 @knownissues
1128 L'intestazione di pagina predefinita pone sulla stessa linea il numero di
1129 pagina e il campo @code{instrument} del blocco @code{\header}.
1130
1131
1132 @node Formattazione della partitura
1133 @section Formattazione della partitura
1134 @translationof Score layout
1135
1136 Questa sezione tratta le opzioni di formattazione della partitura disponibili
1137 nel blocco @code{\layout}.
1138
1139 @menu
1140 * Il blocco layout::
1141 * Impostare la dimensione del rigo::
1142 @end menu
1143
1144
1145 @node Il blocco layout
1146 @subsection Il blocco @code{@bs{}layout}
1147 @translationof The layout block
1148
1149 @funindex \layout
1150
1151 Mentre il blocco @code{\paper} contiene le impostazioni relative
1152 alla formattazione della pagina per l'intero documento, il blocco
1153 @code{\layout} contiene impostazioni di formattazione specifica
1154 di un brano.  Per impostare globalmente le opzioni di formattazione
1155 del brano, inserirle in un blocco @code{\layout} del livello superiore.
1156 Per impostare le impostazioni di formattazione per un singolo brano, inserirle
1157 in un blocco @code{\layout} racchiuso in un blocco @code{\score}, dopo la
1158 musica.  Le impostazioni che possono apparire in un blocco
1159 @code{\layout} includono:
1160
1161 @itemize
1162 @item la funzione scheme @code{layout-set-staff-size},
1163 @item le modifiche di contesto nei blocchi @code{\context} e
1164 @item le variabili @code{\paper} che agiscono sulla formattazione del brano.
1165 @end itemize
1166
1167 La funzione @code{layout-set-staff-size} è spiegata nella prossima
1168 sezione, @ref{Setting the staff size}.  Le modifiche di contesto sono
1169 trattate in un capitolo separato; vedi @ref{Modifying context plug-ins} e
1170 @ref{Changing context default settings}.
1171
1172 Le variabili @code{\paper} che possono apparire in un blocco @code{\layout},
1173 con valori predefiniti presi dal blocco @code{\paper}, sono:
1174
1175 @itemize
1176
1177 @item
1178 @code{line-width}, @code{ragged-right} e @code{ragged-last}
1179 (vedi @ref{paper variables for widths and margins,,variabili @code{@bs{}paper} per larghezze e margini})
1180
1181 @item
1182 @code{indent} e @code{short-indent}
1183 (vedi @ref{paper variables for shifts and indents,,variabili @code{@bs{}paper} per spostamenti e indentazioni})
1184
1185 @item
1186 @code{system-count}
1187 (vedi @ref{paper variables for line breaking,,variabili @code{@bs{}paper} per l'interruzione di linea})
1188
1189 @end itemize
1190
1191 Ecco un esempio di blocco @code{\layout}:
1192
1193 @example
1194 \layout @{
1195   indent = 2\cm
1196   \context @{
1197     \StaffGroup
1198     \override StaffGrouper.staff-staff-spacing.basic-distance = #8
1199   @}
1200   \context @{
1201     \Voice
1202     \override TextScript.padding = #1
1203     \override Glissando.thickness = #3
1204   @}
1205 @}
1206 @end example
1207
1208 Si possono inserire molteplici blocchi @code{\layout} come espressioni
1209 di livello superiore.  Ciò può essere utile, per esempio, se impostazioni
1210 diverse sono salvate in file separati e incluse facoltativamente.
1211 Internamente, quando un blocco @code{\layout} viene elaborato, viene fatta
1212 una copia della configurazione del blocco @code{\layout} corrente, poi
1213 qualsiasi modifica apportata nel blocco viene applicata e il risultato
1214 viene salvato come la nuova configurazione corrente.  Dalla prospettiva
1215 dell'utente, i blocchi @code{\layout} sono combinati, ma in situazioni di
1216 conflitto (ovvero quando viene modificata la stessa proprietà in blocchi
1217 diversi) hanno precedenza le definizioni più recenti.
1218
1219 Per esempio, se questo blocco
1220
1221 @example
1222 \layout @{
1223   \context @{
1224     \Voice
1225     \override TextScript.color = #magenta
1226     \override Glissando.thickness = #1.5
1227   @}
1228 @}
1229 @end example
1230
1231 viene posto dopo quello dell'esempio precedente, le sovrascritture di
1232 @code{'padding} e @code{'color} per @code{TextScript} sono combinate, mentre
1233 quella più recente di @code{'thickness} per @code{Glissando} sostituisce
1234 (o nasconde) quella precedente.
1235
1236 I blocchi @code{\layout} possono essere assegnati a delle variabili per
1237 poterli riusare successivamente, ma il modo in cui ciò funziona è
1238 leggermente ma significativamente diverso rispetto a scriverle davvero.
1239
1240 Se una variabile è definita in questo modo,
1241
1242 @example
1243 layoutVariable = \layout @{
1244   \context @{
1245     \Voice
1246     \override NoteHead.font-size = #4
1247   @}
1248 @}
1249 @end example
1250
1251 manterrà la configurazione attuale di @code{\layout} con l'aggiunta
1252 della sovrascrittura @code{NoteHead.font-size}, ma questa combinazione
1253 @emph{non} è salvata come la nuova configurazione corrente.  Attenzione
1254 al fatto che la @qq{configurazione corrente} viene letta quando la variabile
1255 è definita e non quando viene usata, dunque il contenuto della variabile
1256 dipende dalla sua posizione nel file di input.
1257
1258 La variabile può quindi essere usata all'interno di un altro
1259 blocco @code{\layout}, per esempio:
1260
1261 @example
1262 \layout @{
1263   \layoutVariable
1264   \context @{
1265     \Voice
1266     \override NoteHead.color = #red
1267   @}
1268 @}
1269 @end example
1270
1271 Un blocco @code{\layout} che contiene una variabile, come nell'esempio
1272 precedente, @emph{non} copia la configurazione corrente bensì usa il
1273 contenuto di @code{\layoutVariable} come configurazione di base per
1274 altre aggiunte.  Ciò significa che qualsiasi modifica definita tra la
1275 definizione della variabile e il momento in cui essa viene usata è perduta.
1276
1277 Se @code{layoutVariable} è definita (o inclusa con @code{\include}) subito
1278 prima di essere usata, il suo contenuto comprende soltanto la configurazione
1279 corrente più le sovrascritture definite al suo interno.  Quindi nell'esempio
1280 precedente che illustra l'uso di @code{\layoutVariable} il blocco @code{\layout}
1281 finale conterrebbe:
1282
1283 @example
1284   TextScript.padding = #1
1285   TextScript.color = #magenta
1286   Glissando.thickness = #1.5
1287   NoteHead.font-size = #4
1288   NoteHead.color = #red
1289 @end example
1290
1291 più le sovrascritture @code{indent} e @code{StaffGrouper}.
1292
1293 Ma se la variabile fosse già stata definita prima del primo blocco
1294 @code{\layout}, la configurazione corrente conterrebbe soltanto
1295
1296 @example
1297   NoteHead.font-size = #4 % (scritta nella definizione della variabile)
1298   NoteHead.color = #red % (aggiunta dopo l'uso della variabile)
1299 @end example
1300
1301 Se ben organizzate, le variabili @code{\layout} possono essere un
1302 valido strumento per strutturare le formattazioni dei sorgenti, e anche
1303 per ripristinare la configurazione di @code{\layout} a uno stato conosciuto.
1304
1305 @seealso
1306 Guida alla notazione:
1307 @ref{Changing context default settings}.
1308
1309 Frammenti:
1310 @rlsr{Spacing}.
1311
1312
1313 @node Impostare la dimensione del rigo
1314 @subsection Impostare la dimensione del rigo
1315 @translationof Setting the staff size
1316
1317 @cindex tipo di carattere, impostare la dimensione
1318 @cindex rigo, impostare la dimensione
1319 @funindex layout file
1320 @funindex magnification->font-size
1321 @funindex magstep
1322 @funindex set-global-staff-size
1323 @funindex layout-set-staff-size
1324
1325 La dimensione del rigo (in inglese @strong{staff size}) è 20 punti, che
1326 corrispondono a un'altezza del rigo di 7.03mm (un punto è uguale a 100/7227
1327 di un pollice o a 2540/7227 mm).  La dimensione del rigo può essere
1328 modificata in tre modi:
1329
1330 @enumerate
1331
1332 @item
1333 Per impostare la dimensione del rigo globalmente per tutti i brani di un
1334 file (o di un blocco @code{\book}, per essere precisi), usare
1335 @code{set-global-staff-size}:
1336
1337 @example
1338 #(set-global-staff-size 14)
1339 @end example
1340
1341 @noindent
1342 L'esempio precedente imposta la dimensione del rigo globale a 14pt (4.92mm) e
1343 ridimensiona proporzionalmente tutti i tipi di carattere.
1344
1345 @item
1346 Per impostare la dimensione del rigo di una singola partitura in un libro, usare
1347 @code{layout-set-staff-size} all'interno del blocco @code{\layout} di quel brano:
1348
1349 @example
1350 \score @{
1351   @dots{}
1352   \layout @{
1353     #(layout-set-staff-size 14)
1354   @}
1355 @}
1356 @end example
1357
1358 @item
1359 Per impostare la dimensione del rigo di un singolo rigo di un sistema, usare
1360 il comando @code{\magnifyStaff}.  Per esempio, le partiture di musica da camera
1361 incise in modo tradizionale spesso usavano righi per pianoforte di 7mm mentre
1362 gli altri righi erano solitamente tra 3/5 e 5/7 più grandi (tra 60% e 71%).
1363 Per ottenere la proporzione 5/7, usare:
1364
1365 @example
1366 \score @{
1367   <<
1368     \new Staff \with @{
1369       \magnifyStaff #5/7
1370     @} @{ @dots{} @}
1371     \new PianoStaff @{ @dots{} @}
1372   >>
1373 @}
1374 @end example
1375
1376 Se si desidera una dimensione del tipo di carattere (@code{fontSize}) ben
1377 precisa, si può usare la seguente forma:
1378
1379 @example
1380 \score @{
1381   <<
1382     \new Staff \with @{
1383       \magnifyStaff #(magstep -3)
1384     @} @{ @dots{} @}
1385     \new PianoStaff @{ @dots{} @}
1386   >>
1387 @}
1388 @end example
1389
1390 Per emulare l'aspetto delle partiture incise coi metodi tradizionali, è meglio
1391 evitare di ridurre lo spessore delle linee del rigo.
1392
1393 @end enumerate
1394
1395
1396 @subheading Corpo automatico dei tipi di carattere a dimensioni diverse
1397
1398 Il tipo di carattere Feta fornisce simboli musicali in otto dimensioni
1399 diverse.  Ogni tipo di carattere è calibrato per una specifica dimensione
1400 del rigo: via via che la dimensione del rigo diventa più piccola, il corpo
1401 del carattere diventa più grosso, per abbinarsi alle linee del rigo più
1402 spesse.  Le dimensioni del carattere consigliate sono elencate nella
1403 seguente tabella:
1404
1405 @multitable @columnfractions .15 .2 .22 .2
1406 @item @b{nome del tipo di carattere} @tab @b{altezza del rigo (pt)} @tab @b{altezza del rigo (mm)} @tab @b{uso}
1407 @item feta11 @tab 11.22 @tab 3.9 @tab partiture tascabili
1408 @item feta13 @tab 12.60 @tab 4.4 @tab
1409 @item feta14 @tab 14.14 @tab 5.0 @tab
1410 @item feta16 @tab 15.87 @tab 5.6 @tab
1411 @item feta18 @tab 17.82 @tab 6.3 @tab canzonieri
1412 @item feta20 @tab 20    @tab 7.0 @tab parti standard
1413 @item feta23 @tab 22.45 @tab 7.9 @tab
1414 @item feta26 @tab 25.2  @tab 8.9 @tab @c modern rental material?
1415 @end multitable
1416
1417 @seealso
1418 Guida alla notazione:
1419 @ref{Selecting notation font size}.
1420
1421 Frammenti:
1422 @rlsr{Spacing}.
1423
1424 @knownissues
1425 @code{layout-set-staff-size} non modifica la distanza tra le linee del rigo.
1426
1427
1428 @node Interruzioni
1429 @section Interruzioni
1430 @translationof Breaks
1431
1432 @menu
1433 * Interruzioni di linea::
1434 * Interruzioni di pagina::
1435 @end menu
1436
1437
1438 @node Interruzioni di linea
1439 @subsection Interruzioni di linea
1440 @translationof Line breaking
1441
1442 @funindex \break
1443 @funindex \noBreak
1444 @funindex \autoBreaksOff
1445 @funindex \autoBreaksOn
1446 @funindex \autoLineBreaksOff
1447 @funindex \autoLineBreaksOn
1448 @cindex manual line breaks
1449 @cindex breaking lines
1450
1451 Le interruzioni di linea di solito sono determinate automaticamente.  Sono
1452 decise in modo che le linee non sembrino né fitte né troppo spaziate, e che
1453 le linee consecutive abbiano una densità simile.
1454
1455 Per forzare manualmente un'interruzione di linea dopo una stanghetta, usare
1456 il comando @code{\break}:
1457
1458 @lilypond[quote,ragged-right,verbatim]
1459 \relative c'' {
1460   c4 c c c | \break
1461   c4 c c c |
1462 }
1463 @end lilypond
1464
1465 Per impostazione predefinita, un comando @code{\break} nel mezzo di una
1466 misura viene ignorato e apparirà un avvertimento nella console.  Per forzare
1467 un'interruzione di linea nel mezzo di una misura, aggiungere una stanghetta
1468 invisibile con @w{@samp{\bar ""}}:
1469
1470 @lilypond[quote,ragged-right,verbatim]
1471 \relative c'' {
1472   c4 c c
1473   \bar "" \break
1474   c |
1475   c4 c c c |
1476 }
1477 @end lilypond
1478
1479 Un @code{\break} successivo a una stanghetta viene ignorato se la
1480 misura precedente termina nel mezzo di una nota, come quando un
1481 gruppo irregolare inizia e termina in misure diverse.  Per far sì
1482 che i comandi @code{\break} funzionino in queste situazioni, togliere
1483 l'incisore @code{Forbid_line_break_engraver} dal contesto @code{Voice}.
1484 @c TODO: frase originale non chiara - fb
1485 Nota che le interruzioni di linea forzate manualmente devono essere
1486 aggiunte in parallelo con la musica:
1487
1488 @lilypond[quote,ragged-right,verbatim]
1489 \new Voice \with {
1490   \remove "Forbid_line_break_engraver"
1491 } \relative {
1492   <<
1493     { c''2. \tuplet 3/2 { c4 c c } c2. | }
1494     { s1 | \break s1 | }
1495   >>
1496 }
1497 @end lilypond
1498
1499 Analogalmente, le interruzioni di linea sono normalmente proibite quando le
1500 travature oltrepassano una stanghetta.  Tale comportamento può essere
1501 modificato impostando @code{\override Beam.breakable = ##t}:
1502
1503 @lilypond[quote,ragged-right,verbatim]
1504 \relative c'' {
1505   \override Beam.breakable = ##t
1506   c2. c8[ c | \break
1507   c8 c] c2. |
1508 }
1509 @end lilypond
1510
1511 Il comando @code{\noBreak} vieta un'interruzione di linea sulla
1512 stanghetta in cui è inserito.
1513
1514 In una partitura, l'interruzione di linea automatica è vietata per
1515 la musica compresa tra i comandi @code{\autoLineBreaksOff} e
1516 @code{\autoLineBreaksOn}.  Per impedire anche le interruzioni di
1517 pagina, usare i comandi @code{\autoBreaksOff} e @code{\autoBreaksOn}.
1518 Le interruzioni manuali non sono interessate da questi comandi.
1519 Nota che bloccare le interruzioni di linea automatiche potrebbe
1520 far andare la musica oltre il margine destro se questa non può
1521 essere contenuta in una linea.
1522
1523 Le interruzioni di linea automatiche (ma non le interruzioni di pagina)
1524 possono essere abilitate per singole stanghette usando
1525 @code{\once \autoLineBreaksOn} all'inizio di una stanghetta.
1526 Ciò identifica un'interruzione di linea permessa, invece che forzata.
1527
1528 Le impostazioni fondamentali che influenzano la spaziatura della linea
1529 sono @code{indent} e @code{line-width}, impostate nel blocco
1530 @code{\layout}: regolano l'indentazione della prima linea e la
1531 lunghezza delle linee.
1532
1533 Se @code{ragged-right} è impostato su vero nel blocco @code{\layout}, allora
1534 i sistemi terminano alla loro naturale lunghezza orizzontale, invece di
1535 essere allungati orizzontalmente per riempire l'intera linea.  Ciò è
1536 utile per brevi frammenti e per verificare quanto è stretta la spaziatura
1537 naturale.
1538
1539 @c TODO Check and add para on default for ragged-right
1540
1541 L'opzione @code{ragged-last} è simile a @code{ragged-right}, ma agisce
1542 soltanto sull'ultima linea del brano.
1543
1544 @example
1545 \layout @{
1546   indent = 0\mm
1547   line-width = 150\mm
1548   ragged-last = ##t
1549 @}
1550 @end example
1551
1552 @cindex interruzioni di linea regolari
1553 @cindex musica a quattro battute
1554
1555 Per inserire interruzioni di linea a intervalli regolari usare @code{\break}
1556 separato da pause spaziatrici e ripetuto con @code{\repeat}.  Per esempio,
1557 per interrompere le seguenti 28 misure (considerando un tempo di 4/4) esattamente
1558 ogni 4 misure, usare:
1559
1560 @example
1561 <<
1562   \repeat unfold 7 @{
1563     s1 \noBreak s1 \noBreak
1564     s1 \noBreak s1 \break
1565   @}
1566   @{ @var{la vera musica@dots{}} @}
1567 >>
1568 @end example
1569
1570
1571 @predefined
1572 @code{\break},
1573 @code{\noBreak},
1574 @code{\autoBreaksOff},
1575 @code{\autoBreaksOn},
1576 @code{\autoLineBreaksOff},
1577 @code{\autoLineBreaksOn}.
1578 @endpredefined
1579
1580 @snippets
1581
1582 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
1583 {using-an-extra-voice-for-breaks.ly}
1584
1585 @seealso
1586 Guida alla notazione:
1587 @ref{paper variables for line breaking}
1588 @ref{The layout block}.
1589
1590 Frammenti:
1591 @rlsr{Spacing}.
1592
1593 Guida al funzionamento interno:
1594 @rinternals{LineBreakEvent}.
1595
1596 @knownissues
1597
1598 L'inserimento dei comandi @code{\autoLineBreaksOff} o @code{\autoBreaksOff}
1599 prima della musica produrrà dei messaggi di errore.  Inserire sempre questi
1600 comandi dopo la musica.
1601
1602
1603 @node Interruzioni di pagina
1604 @subsection Interruzioni di pagina
1605 @translationof Page breaking
1606
1607 Questa sezione descrive i diversi metodi di interruzione di pagina e
1608 spiega come modificarli.
1609
1610 @menu
1611 * Interruzione di pagina manuale::
1612 * Interruzione di pagina ottimale::
1613 * Interruzione di pagina minimale::
1614 * Interruzione di pagina su una linea::
1615 * Voltata di pagina ottimale::
1616 @end menu
1617
1618
1619 @node Interruzione di pagina manuale
1620 @unnumberedsubsubsec Interruzione di pagina manuale
1621 @translationof Manual page breaking
1622
1623 @funindex \pageBreak
1624 @funindex \noPageBreak
1625 @funindex \autoPageBreaksOn
1626 @funindex \autoPageBreaksOff
1627 @cindex page breaking, manual
1628
1629 L'interruzione di pagina predefinita può essere sovrascritta con i
1630 comandi @code{\pageBreak} o @code{\noPageBreak}.  Questi comandi,
1631 analoghi a @code{\break} e @code{\noBreak}, devono essere
1632 inseriti dopo una stanghetta e forzano o proibiscono l'interruzione
1633 di pagina in quel punto.  Ovviamente il comando @code{\pageBreak}
1634 forza anche un'interruzione di linea.
1635
1636 I comandi @code{\pageBreak} e @code{\noPageBreak} possono essere
1637 inseriti anche nel livello superiore, tra le partiture e i testi
1638 (nel blocco @code{markup}) di livello superiore.
1639
1640 In un brano, le interruzioni di pagina automatiche sono vietate per
1641 la musica compresa tra i comandi @code{\autoPageBreaksOff} e
1642 @code{\autoPageBreaksOn}.  Le interruzioni di pagina manuali non
1643 sono interessate da questi comandi.
1644
1645 Esistono impostazioni analoghe a @code{ragged-right} e
1646 @code{ragged-last} che hanno lo stesso effetto sulla spaziatura
1647 verticale.  Se @code{ragged-bottom} è impostato su @code{#t}, i
1648 sistemi non saranno giustificati verticalmente.  Quando
1649 @code{ragged-last-bottom} è impostato su @code{#t} (valore
1650 predefinito), è permesso dello spazio vuoto in fondo all'ultima
1651 pagina (o in fondo all'ultima pagina di ciascun
1652 @code{\bookpart}).  Vedi
1653 @ref{Fixed vertical spacing paper variables,,Variabili fisse della spaziatura verticale di @code{@bs{}paper}}.
1654
1655 Le interruzioni di pagina sono calcolate dalla funzione @code{page-breaking}.
1656 LilyPond fornisce tre algoritmi per calcolare le interruzioni di pagina:
1657 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} e
1658 @code{ly:minimal-breaking}.  Quello predefinito è
1659 @code{ly:optimal-breaking}, ma il valore può essere modificato nel
1660 blocco @code{\paper}:
1661
1662 @example
1663 \paper @{
1664   page-breaking = #ly:page-turn-breaking
1665 @}
1666 @end example
1667
1668 @funindex \bookpart
1669
1670 Quando un libro ha molte partiture e pagine, il problema delle interruzioni
1671 di pagina potrebbe essere difficile da risolvere e richiedere lunghi tempi
1672 di elaborazione e molta memoria.  Per semplificare il processo di interruzione
1673 delle pagine, si usano i blocchi @code{\bookpart} per dividere il libro in
1674 varie parti: in questo modo l'interruzione di pagina si verifica separatamente
1675 in ciascuna parte.  Si possono anche usare algoritmi di interruzione di
1676 pagina diversi per le diverse parti del libro.
1677
1678 @example
1679 \bookpart @{
1680   \header @{
1681     subtitle = "Prefazione"
1682   @}
1683   \paper @{
1684      %% In una parte contenente soprattutto testo,
1685      %% ly:minimal-breaking potrebbe essere preferibile
1686      page-breaking = #ly:minimal-breaking
1687   @}
1688   \markup @{ @dots{} @}
1689   @dots{}
1690 @}
1691 \bookpart @{
1692   %% In questa parte, contenente musica, si usa l'algoritmo di
1693   %% interruzione di pagina ottimale.
1694   \header @{
1695     subtitle = "Primo movimento"
1696   @}
1697   \score @{ @dots{} @}
1698   @dots{}
1699 @}
1700 @end example
1701
1702
1703 @predefined
1704 @code{\pageBreak},
1705 @code{\noPageBreak},
1706 @code{\autoPageBreaksOn},
1707 @code{\autoPageBreaksOff}.
1708 @endpredefined
1709
1710 @seealso
1711 Guida alla notazione:
1712 @ref{paper variables for page breaking}.
1713
1714 Frammenti:
1715 @rlsr{Spacing}.
1716
1717 @knownissues
1718
1719 Il prefisso @code{\once} non funziona con i comandi @code{\autoPageBreaksOn}
1720 e @code{\autoPageBreaksOff}.  Se l'interruzione di pagina automatica è
1721 disabilitata e poi viene abilitata per permettere un'interruzione di
1722 pagina, deve restare attiva per alcune battute (il numero preciso di
1723 battute dipende dalla partitura) prima di essere disattivata, altrimenti
1724 la possibilità di interrompere la pagina non verrà considerata.
1725
1726
1727 @node Interruzione di pagina ottimale
1728 @unnumberedsubsubsec Interruzione di pagina ottimale
1729 @translationof Optimal page breaking
1730
1731 @funindex ly:optimal-breaking
1732
1733 La funzione @code{ly:optimal-breaking} è il metodo predefinito di LilyPond
1734 per determinare le interruzioni di pagina.  Tenta di individuare un'interruzione
1735 di pagina che minimizzi la densità e l'allungamento, sia orizzontalmente che
1736 verticalmente.  Diversamente da @code{ly:page-turn-breaking}, non prende in
1737 considerazione le voltate di pagina.
1738
1739 @seealso
1740 Frammenti:
1741 @rlsr{Spacing}.
1742
1743
1744 @node Interruzione di pagina minimale
1745 @unnumberedsubsubsec Interruzione di pagina minimale
1746 @translationof Minimal page breaking
1747
1748 @funindex ly:minimal-breaking
1749
1750 La funzione @code{ly:minimal-breaking} fa dei calcoli minimi
1751 per valutare l'interruzione di pagina: riempie una pagina col
1752 maggior numero possibile di sistemi prima di passare a quella
1753 successiva.  Dunque potrebbe essere preferibile per le partiture
1754 con molte pagine, per le quali le altre funzioni di interruzione
1755 di pagina potrebbero essere troppo lente o richiedere troppa
1756 memoria, o con molto testo.  Si abilita con:
1757
1758 @example
1759 \paper @{
1760   page-breaking = #ly:minimal-breaking
1761 @}
1762 @end example
1763
1764 @seealso
1765 Frammenti:
1766 @rlsr{Spacing}.
1767
1768
1769 @node Interruzione di pagina su una linea
1770 @unnumberedsubsubsec Interruzione di pagina su una linea
1771 @translationof One-line page breaking
1772
1773 @funindex ly:one-line-breaking
1774
1775 La funzione @code{ly:one-line-breaking} è un algoritmo di interruzione
1776 di pagina per uso speciale in quanto pone ogni brano su una sola pagina e
1777 una singola linea.  Tale funzione non fa apparire titoli e margini,
1778 viene mostrato solo il brano musicale.
1779
1780 La larghezza della pagina sarà regolata in modo che il brano più
1781 lungo stia su una sola linea.  In particolare, le variabili @code{paper-width},
1782 @code{line-width} e @code{indent} del blocco @code{\paper} saranno
1783 ignorati, sebbene @code{left-margin} e @code{right-margin} saranno
1784 comunque considerati.  L'altezza della pagina resterà invariata.
1785
1786
1787 @node Voltata di pagina ottimale
1788 @unnumberedsubsubsec Voltata di pagina ottimale
1789 @translationof Optimal page turning
1790
1791 @funindex ly:page-turn-breaking
1792
1793 È spesso necessario trovare una configurazione delle interruzioni di
1794 pagina in cui ci sia una pausa al termine di ogni due pagine.
1795 In questo modo il musicista può voltare la pagina senza perdere
1796 le note.  La funzione @code{ly:page-turn-breaking} tenta di trovare
1797 un'interruzione di pagina che minimizzi densità e allungamento, ma
1798 con l'ulteriore restrizione che le voltate di pagina sono permesse
1799 solo in punti specifici.
1800
1801 Ci sono due passi da seguire per usare questa funzione.  Prima
1802 occorre abilitarla nel blocco @code{\paper}, come è spiegato in
1803 @ref{Page breaking}.  Poi bisogna indicare alla funzione dove
1804 sono permesse le interruzioni di pagina.
1805
1806 Ci sono due modi per fare il secondo passo.  Si può specificare
1807 manualmente ogni potenziale voltata di pagina, inserendo
1808 @code{\allowPageTurn} nei punti adatti del file di input.
1809
1810 Oppure, se ciò è troppo noioso, si può aggiungere l'incisore
1811 @code{Page_turn_engraver} a un contesto Staff o Voice.  L'incisore
1812 @code{Page_turn_engraver} analizzerà il contesto in cerca di sezioni
1813 senza note (non cerca pause, bensì l'assenza di note, in modo che
1814 la polifonia su un singolo rigo con pause in una delle parti non
1815 confonda @code{Page_turn_engraver}).  Quando trova una sezione
1816 senza note abbastanza lunga, @code{Page_turn_engraver} inserirà il
1817 comando @code{\allowPageTurn} nella stanghetta finale di quella
1818 sezione, a meno che non ci sia una stanghetta @q{speciale} (come
1819 una doppia stanghetta), nel qual caso il comando @code{\allowPageTurn}
1820 sarà inserito nella stanghetta finale @qq{speciale} della sezione.
1821
1822 @funindex minimumPageTurnLength
1823 L'incisore @code{Page_turn_engraver} legge la proprietà di contesto
1824 @code{minimumPageTurnLength} per determinare quanto deve essere lunga
1825 una sezione senza note prima che una voltata di pagina sia considerata.
1826 Il valore predefinito di @code{minimumPageTurnLength} è
1827 @code{(ly:make-moment 1/1)}.  Per disabilitare le voltate di pagina,
1828 impostarla su un valore @qq{molto grande}.
1829
1830 @example
1831 \new Staff \with @{ \consists "Page_turn_engraver" @}
1832 @{
1833   a4 b c d |
1834   R1 | % voltata di pagina permessa qui
1835   a4 b c d |
1836   \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
1837   R1 | % voltata di pagina non permessa qui
1838   a4 b r2 |
1839   R1*2 | % voltata di pagina permessa qui
1840   a1
1841 @}
1842 @end example
1843
1844 @funindex minimumRepeatLengthForPageTurn
1845 In caso di ripetizioni con finali alternativi, @code{Page_turn_engraver}
1846 permetterà una voltata di pagina durante la ripetizione soltanto se c'è
1847 abbastanza tempo all'inizio e alla fine della ripetizione per voltare
1848 indietro la pagina.  Se la ripetizione è molto breve, si può usare
1849 @code{Page_turn_engraver} anche per disabilitare le voltate impostando
1850 un valore per la proprietà di contesto @code{minimumRepeatLengthForPageTurn},
1851 dato che @code{Page_turn_engraver} consente le voltate soltanto nelle ripetizioni
1852 la cui durata sia maggiore di questo valore.
1853
1854 I comandi per le voltate di pagina (@code{\pageTurn}, @code{\noPageTurn}
1855 e @code{\allowPageTurn}), possono essere usati anche nel livello superiore,
1856 nei blocchi markup di livello superiore e tra una partitura e l'altra.
1857
1858 @predefined
1859 @funindex \pageTurn
1860 @code{\pageTurn},
1861 @funindex \noPageTurn
1862 @code{\noPageTurn},
1863 @funindex \allowPageTurn
1864 @code{\allowPageTurn}.
1865 @endpredefined
1866
1867 @seealso
1868 Guida alla notazione:
1869 @ref{paper variables for line breaking}.
1870
1871 Frammenti:
1872 @rlsr{Spacing}.
1873
1874 @knownissues
1875 Usare soltanto un incisore @code{Page_turn_engraver} per partitura.  Se ce
1876 n'è più d'uno, interferiranno uno con l'altro.
1877
1878
1879 @seealso
1880 Guida alla notazione:
1881 @ref{Vertical spacing}.
1882
1883 Frammenti:
1884 @rlsr{Spacing}.
1885
1886
1887 @node Spaziatura verticale
1888 @section Spaziatura verticale
1889 @translationof Vertical spacing
1890
1891 @cindex vertical spacing
1892 @cindex spacing, vertical
1893
1894 La spaziatura verticale è regolata da tre elementi: la quantità di
1895 spazio disponibile (ovvero il formato e i margini), la quantità di
1896 spazio tra i sistemi e la quantità di spazio tra i righi di un
1897 sistema.
1898
1899 @menu
1900 * Spaziatura verticale flessibile all'interno dei sistemi::
1901 * Posizionamento esplicito di righi e sistemi::
1902 * Elusione delle collisioni verticali::
1903 @end menu
1904
1905
1906 @node Spaziatura verticale flessibile all'interno dei sistemi
1907 @subsection Spaziatura verticale flessibile all'interno dei sistemi
1908 @translationof Flexible vertical spacing within systems
1909
1910 @cindex distanza tra i righi
1911 @cindex righi, distanza
1912 @cindex spazio tra i righi
1913 @cindex spazio dentro i sistemi
1914
1915 Tre meccanismi distinti regolano la spaziatura verticale flessibile
1916 all'interno dei sistemi, uno per ognuna delle seguenti categorie:
1917
1918 @itemize
1919
1920 @item
1921 @emph{righi non raggruppati},
1922
1923 @item
1924 @emph{righi raggruppati} (righi con un gruppo come
1925 @code{ChoirStaff}, etc.), e
1926
1927 @item
1928 @emph{linee che non sono righi} (come @code{Lyrics}, @code{ChordNames},
1929 etc.).
1930
1931 @end itemize
1932
1933 @c TODO: Clarify this.  This almost implies that non-staff lines
1934 @c       have NO effect on the spacing between staves.  -mp
1935
1936 L'altezza di ogni sistema è determinata in due fasi.  Prima vengono
1937 spaziati tutti i righi in base alla quantità di spazio disponibile.
1938 Poi le linee che non sono righi sono distribuite tra i righi.
1939
1940 Nota che i meccanismi di spaziatura trattati in questa sezione regolano
1941 soltanto la spaziatura verticale dei righi e delle linee (che non sono
1942 righi) all'interno di singoli sistemi.  La spaziatura verticale tra
1943 sistemi, partiture, testi e margini separati è regolata dalle variabili
1944 @code{\paper} trattate in
1945 @ref{Flexible vertical spacing paper variables,,Variabili @code{@bs{}paper} della spaziatura verticale flessibile}.
1946
1947 @menu
1948 * Proprietà della spaziatura dentro un sistema::
1949 * Spaziatura dei righi non raggruppati::
1950 * Spaziatura dei righi raggruppati::
1951 * Spaziatura delle linee che non sono righi::
1952 @end menu
1953
1954
1955 @node Proprietà della spaziatura dentro un sistema
1956 @unnumberedsubsubsec Proprietà della spaziatura dentro un sistema
1957 @translationof Within-system spacing properties
1958
1959 @funindex staff-affinity
1960 @funindex staffgroup-staff-spacing
1961 @funindex staff-staff-spacing
1962 @funindex nonstaff-unrelatedstaff-spacing
1963 @funindex nonstaff-relatedstaff-spacing
1964 @funindex nonstaff-nonstaff-spacing
1965 @funindex default-staff-staff-spacing
1966 @funindex minimum-Y-extent
1967 @funindex extra-offset
1968 @funindex self-alignment-X
1969 @funindex X-offset
1970 @funindex VerticalAxisGroup
1971
1972 I meccanismi di spaziatura verticale dentro un sistema sono regolati da
1973 due gruppi di proprietà dei grob.  Il primo gruppo è associato al grob
1974 @code{VerticalAxisGroup}, creato da tutti i righi e tutte le linee che
1975 non sono righi.  Il secondo gruppo è associato al grob
1976 @code{StaffGrouper}, che può essere creato da gruppi di righi, ma
1977 solo se richiamato esplicitamente.  Queste proprietà sono descritte
1978 una per una alla fine di questa sezione.
1979
1980 Il nome di queste proprietà (con l'eccezione di @code{staff-affinity})
1981 hanno il formato @code{@var{elemento1}-@var{elemento2}-spacing}, dove
1982 @code{@var{elemento1}} e @code{@var{elemento2}} sono gli elementi di
1983 cui determinare la distanza.  Nota che @code{@var{elemento2}} non è
1984 necessariamente sotto @code{@var{elemento1}}; per esempio,
1985 @code{nonstaff-relatedstaff-spacing} prenderà le misure verso l'alto a
1986 partire dalla linea che non è un rigo (nonstaff) se
1987 @code{staff-affinity} è impostato su @code{UP}.
1988
1989 Ogni distanza è calcolata tra i @emph{punti di riferimento} dei due
1990 elementi.  Il punto di riferimento di un rigo è il centro verticale
1991 del suo @code{StaffSymbol} (ovvero la linea centrale se
1992 @code{line-count} (il numero di linee) è dispari; lo spazio centrale
1993 se @code{line-count} è pari).  I punti di riferimento per ciascuna linea
1994 che non è un rigo sono elencati nella seguente tabella:
1995
1996 @multitable {Non-staff line} {Reference point}
1997 @headitem Linea non-rigo     @tab Punto di riferimento
1998 @item @code{ChordNames}      @tab linea di base
1999 @item @code{NoteNames}       @tab linea di base
2000 @item @code{Lyrics}          @tab linea di base
2001 @item @code{Dynamics}        @tab metà altezza di @q{m}
2002 @item @code{FiguredBass}     @tab punto più alto
2003 @item @code{FretBoards}      @tab linea più alta
2004 @end multitable
2005
2006 Nell'immagine seguente, le linee orizzontali indicano le posizioni di
2007 questi punti di riferimento:
2008
2009 @lilypond[quote,noragged-right,line-width=110\mm]
2010 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
2011
2012 alignToZero = \with {
2013   \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
2014   \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
2015   \override VerticalAxisGroup.staff-affinity = #DOWN
2016   \remove Text_engraver % impedisce di averne due
2017   \consists Text_engraver
2018 }
2019 lowerCaseChords = \with {
2020   chordNameLowercaseMinor = ##t
2021 }
2022 labelContext =
2023 #(define-music-function
2024      (context)
2025      (string?)
2026      #{ s1*0^\markup { \upright {\typewriter #context } } #})
2027
2028 \layout {
2029   \context { \Dynamics    \alignToZero }
2030   \context { \FiguredBass \alignToZero }
2031   \context { \Lyrics      \alignToZero }
2032   \context { \NoteNames   \alignToZero }
2033   \context { \ChordNames  \alignToZero \lowerCaseChords }
2034   \context { \FretBoards  \alignToZero }
2035   \context { \Score
2036     \omit BarLine
2037     \override DynamicText.self-alignment-X = #-1
2038     \override FretBoard.X-offset = #1.75
2039     \override InstrumentName.minimum-Y-extent = #'(-1 . 2)
2040     \textLengthOn
2041     \omit TimeSignature
2042   }
2043 }
2044
2045 %% Questi contesti hanno punti di riferimento nella linea di base:
2046 %%   ChordNames, NoteNames, and Lyrics
2047 <<
2048   \new ChordNames { \chords { \labelContext "ChordNames"  g1:m } }
2049   \new NoteNames { s1 |\labelContext "NoteNames"  g1 | }
2050   \new Lyrics { \lyrics { \skip 1*2 | \labelContext "Lyrics" ghijk1 | } }
2051   \new RhythmicStaff \with { instrumentName = #"linea di base " } s1*3
2052 >>
2053
2054 %% Il punto di riferimento per Dynamics è la linea centrale della 'm' nel tipo di carattere
2055 <<
2056   \new Dynamics { \labelContext "Dynamics" s1\mp s\fp }
2057   \new RhythmicStaff \with { instrumentName = #"metà altezza " } s1*3
2058 >>
2059
2060 %% Il punto di riferimento per FiguredBass è il suo punto più alto
2061 <<
2062   \new FiguredBass { \labelContext "FiguredBass" \figuremode { <6 5>1 } }
2063   \new RhythmicStaff \with { instrumentName = #"punto più alto " } s1
2064 >>
2065
2066 %% Il punto di riferimento per FretBoards è la linea più alta
2067 \include "predefined-guitar-fretboards.ly"
2068 <<
2069   \new FretBoards { \labelContext "FretBoards" \chordmode { e1 } }
2070   \new RhythmicStaff \with { instrumentName = #"linea più alta " } s1
2071 >>
2072 @end lilypond
2073
2074 Tutte le proprietà di spaziatura verticale del grob (eccetto
2075 @code{staff-affinity}) usano la stessa struttura della lista
2076 associativa usata dalle variabili di spaziatura di @code{\paper}
2077 trattate in
2078 @ref{Flexible vertical spacing paper variables,,Variabili @code{@bs{}paper} della spaziatura verticale flessibile}.
2079 Metodi specifici per modificare queste liste sono spiegati in
2080 @ref{Modifying alists}.  Le proprietà dei grob devono essere
2081 modificate con un comando @code{\override} dentro un blocco
2082 @code{\score} o @code{\layout} e non in un blocco
2083 @code{\paper}.
2084
2085 L'esempio seguente illustra i due modi con cui si possono modificare
2086 queste liste associative (alist).  La prima dichiarazione trasforma un
2087 elemento-valore singolarmente, mentre la seconda ridefinisce
2088 completamente la proprietà:
2089
2090 @example
2091 \new Staff \with @{
2092   \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2093 @} @{ @dots{} @}
2094
2095 \new Staff \with @{
2096   \override VerticalAxisGroup.default-staff-staff-spacing =
2097     #'((basic-distance . 10)
2098        (minimum-distance . 9)
2099        (padding . 1)
2100        (stretchability . 10))
2101 @} @{ @dots{} @}
2102 @end example
2103
2104 Per cambiare le impostazioni di spaziatura globalmente, inserirle in
2105 un blocco @code{\layout}:
2106
2107 @example
2108 \layout @{
2109   \context @{
2110     \Staff
2111     \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2112   @}
2113 @}
2114 @end example
2115
2116 Le impostazioni predefinite delle proprietà di spaziatura verticale dei
2117 grob sono elencate in @rinternals{VerticalAxisGroup} e
2118 @rinternals{StaffGrouper}.  Le modifiche predefinite con @code{\override}
2119 per tipologie specifiche di linee che non sono righi sono elencate
2120 nelle descrizioni del relativo contesto in @rinternals{Contexts}.
2121
2122
2123 @subsubheading Proprietà del grob @code{VerticalAxisGroup}
2124
2125 Le proprietà di @code{VerticalAxisGroup} sono solitamente modificate
2126 con un @code{\override} nel livello @code{Staff} (o equivalente).
2127
2128 @table @code
2129 @item staff-staff-spacing
2130
2131 Usata per determinare la distanza tra il rigo corrente e il rigo
2132 inferiore nello stesso sistema, anche se tra i due si trovano una o
2133 più linee che non sono righi (come @code{Lyrics}).
2134 Non è applicata all'ultimo rigo di un sistema.
2135
2136 Inizialmente, la proprietà @code{staff-staff-spacing} di un
2137 @code{VerticalAxisGroup} è una funzione Scheme che applica le
2138 proprietà di @code{StaffGrouper} se il rigo fa parte di un
2139 gruppo, o la proprietà @code{default-staff-staff-spacing} del rigo
2140 altrimenti.  Questo permette ai righi di essere spaziati diversamente
2141 quando sono raggruppati.  Per ottenere una spaziatura uniforme
2142 indipendentemente dal raggruppamento, questa funzione può essere
2143 sostituita da un alist di spaziatura flessibile, usando la forma
2144 di override che ridefinisce completamente la variabile, come mostrato
2145 prima.
2146
2147 @item default-staff-staff-spacing
2148 Un alist di spaziatura flessibile che definisce la proprietà
2149 @code{staff-staff-spacing} usata per i righi isolati, a meno che
2150 @code{staff-staff-spacing} non sia stata impostata esplicitamente
2151 con un @code{\override}.
2152
2153 @item staff-affinity
2154 La direzione del rigo da usare per spaziare la linea che non è un rigo.
2155 Le opzioni sono @code{UP} (su), @code{DOWN} (giù) e
2156 @code{CENTER} (centro).  Se impostata su @code{CENTER}, la linea
2157 fuori dal rigo si troverà in un punto equidistante tra i due righi
2158 più vicini su qualunque lato, a meno che delle collisioni o altre
2159 costrizioni di spazio non lo impediscano.  Linee (che non sono righi)
2160 adiacenti dovrebbero avere un valore di @code{staff-affinity} che
2161 non cresce: per esempio, una linea che non è un rigo impostata su
2162 @code{UP} non deve seguire immediatamente una linea impostata su
2163 @code{DOWN}.  Linee che non sono righi in cima a un sistema devono usare
2164 @code{DOWN}; quelle in fondo @code{UP}.  Impostando
2165 @code{staff-affinity} per un rigo, questo sarà trattato come
2166 una linea che non è un rigo.  Impostando @code{staff-affinity} su @code{#f},
2167 una linea che non è un rigo sarà trattata come un rigo.  Impostando
2168 @code{staff-affinity} su @code{UP}, @code{CENTER} o @code{DOWN},
2169 un rigo verrà spaziato come se fosse una linea che non è un rigo.
2170
2171 @item nonstaff-relatedstaff-spacing
2172 La distanza fra la linea (che non è un rigo) corrente e il rigo più
2173 vicino nella direzione di @code{staff-affinity}, se non ci sono
2174 linee che non sono righi tra le due e @code{staff-affinity} è
2175 impostato su @code{UP} o @code{DOWN}.  Se @code{staff-affinity} è
2176 impostato su @code{CENTER}, viene usato @code{nonstaff-relatedstaff-spacing}
2177 per i righi più vicini su @emph{entrambi} i lati, anche se appaiono
2178 altre linee tra quella corrente e uno qualsiasi dei righi.  Ciò
2179 significa che il posizionamento di una linea dipende sia dai righi
2180 che dalle linee circostanti.  Impostando la proprietà @code{stretchability}
2181 di uno di questi tipi di spaziatura su un piccolo valore, quella spaziatura
2182 sarà dominante.  Impostando @code{stretchability} su un grande valore, quella
2183 spaziatura avrà poco effetto.
2184
2185 @item nonstaff-nonstaff-spacing
2186 La distanza fra la linea (che non è un rigo) corrente e quella successiva
2187 nella direzione di @code{staff-affinity}, se entrambe sono sullo stesso
2188 lato del rigo in questione e se @code{staff-affinity} è impostata su
2189 @code{UP} o @code{DOWN}.
2190
2191 @item nonstaff-unrelatedstaff-spacing
2192 La distanza fra la linea (che non è un rigo) corrente e il rigo nella
2193 direzione opposta rispetto a @code{staff-affinity}, se non ci sono
2194 altre linee tra i due e se @code{staff-affinity} è impostato su
2195 @code{UP} o @code{DOWN}.  Ciò può servire, per esempio, a imporre
2196 un padding minimo tra una linea @code{Lyrics} e il rigo al quale non
2197 appartiene.
2198 @end table
2199
2200
2201 @subsubheading Proprietà del grob @code{StaffGrouper}
2202
2203 Le proprietà di @code{StaffGrouper} sono solitamente modificate con un
2204 @code{\override} nel livello @code{StaffGroup} (o livello equivalente).
2205
2206 @table @code
2207 @item staff-staff-spacing
2208 La distanza tra righi consecutivi del gruppo di righi
2209 corrente.  La proprietà @code{staff-staff-spacing} del grob
2210 @code{VerticalAxisGroup} di un singolo rigo può essere
2211 sovrascritta con varie impostazioni di spaziatura per quel rigo.
2212
2213 @item staffgroup-staff-spacing
2214 La distanza tra l'ultimo rigo del gruppo di righi corrente e
2215 il rigo immediatamente successivo nello stesso sistema, anche se
2216 tra i due righi ci sono una o più linee che non sono righi (come
2217 @code{Lyrics}).  Non è applicata al rigo inferiore di un sistema.  La
2218 proprietà @code{staff-staff-spacing} del grob @code{VerticalAxisGroup}
2219 di un singolo rigo può essere sovrascritta con varie impostazioni di
2220 spaziatura per quel rigo.
2221 @end table
2222
2223 @seealso
2224 Guida alla notazione:
2225 @ref{Flexible vertical spacing paper variables,,Variabili @code{@bs{}paper} della spaziatura verticale flessibile},
2226 @ref{Modifying alists}.
2227
2228 File installati:
2229 @file{ly/engraver-init.ly},
2230 @file{scm/define-grobs.scm}.
2231
2232 Guida al funzionamento interno:
2233 @rinternals{Contexts},
2234 @rinternals{VerticalAxisGroup},
2235 @rinternals{StaffGrouper}.
2236
2237
2238 @node Spaziatura dei righi non raggruppati
2239 @unnumberedsubsubsec Spaziatura dei righi non raggruppati
2240 @translationof Spacing of ungrouped staves
2241
2242 I @emph{righi} (come @code{Staff}, @code{DrumStaff},
2243 @code{TabStaff}, etc.) sono contesti che possono contenere uno o
2244 più contesti voce, ma non possono contenere altri righi.
2245
2246 Le seguenti proprietà influenzano la spaziatura di righi @emph{non raggruppati}:
2247
2248 @itemize
2249 @item Proprietà di @code{VerticalAxisGroup}:
2250 @itemize
2251 @item @code{default-staff-staff-spacing}
2252 @item @code{staff-staff-spacing}
2253 @end itemize
2254 @end itemize
2255
2256 Queste proprietà del grob sono state descritte una a una in precedenza; vedi
2257 @ref{Within-system spacing properties}.
2258
2259 Altre proprietà entrano in gioco per i righi che sono parte di un gruppo;
2260 vedi @ref{Spacing of grouped staves}.
2261
2262 L'esempio seguente mostra come la proprietà @code{default-staff-staff-spacing}
2263 possa influenzare la spaziatura di righi non raggruppati.  Le stesse
2264 modifiche applicate a @code{staff-staff-spacing} avrebbero lo stesso
2265 effetto, ma verrebbero applicate anche nel caso in cui i righi siano
2266 combinati in uno o più gruppi.
2267
2268 @lilypond[verbatim,quote,staffsize=16]
2269 \layout {
2270   \context {
2271     \Staff
2272     \override VerticalAxisGroup.default-staff-staff-spacing =
2273       #'((basic-distance . 8)
2274          (minimum-distance . 7)
2275          (padding . 1))
2276   }
2277 }
2278
2279 <<
2280   % Questa nota molto bassa ha bisogno di più spazio di quanto 'basic-distance
2281   % possa fornirne, dunque la distanza tra questo rigo e quello successivo
2282   % è determinato da 'padding.
2283   \new Staff { b,2 r | }
2284
2285   % Qui 'basic-distance fornisce abbastanza spazio, e non c'è bisogno
2286   % di comprimere lo spazio (verso 'minimum-distance) per far spazio
2287   % per qualcos'altro sulla pagina, dunque la distanza tra questo
2288   % rigo e quello successivo è determinato da 'basic-distance.
2289   \new Staff { \clef bass g2 r | }
2290
2291   % Impostando 'padding su un valore negativo, è possibile far sì che
2292   % i righi entrino in collisione.  Il più basso valore accettabile per
2293   % 'basic-distance è 0.
2294   \new Staff \with {
2295     \override VerticalAxisGroup.default-staff-staff-spacing =
2296       #'((basic-distance . 3.5)
2297          (padding . -10))
2298   } { \clef bass g2 r | }
2299   \new Staff { \clef bass g2 r | }
2300 >>
2301 @end lilypond
2302
2303 @seealso
2304 File installati:
2305 @file{scm/define-grobs.scm}.
2306
2307 Frammenti:
2308 @rlsr{Spacing}.
2309
2310 Guida al funzionamento interno:
2311 @rinternals{VerticalAxisGroup}.
2312
2313
2314 @node Spaziatura dei righi raggruppati
2315 @unnumberedsubsubsec Spaziatura dei righi raggruppati
2316 @translationof Spacing of grouped staves
2317
2318 Nelle partiture orchestrali e in alte grosse partiture, di norma i righi
2319 vengono raggruppati.  Lo spazio tra i gruppi è più ampio dello spazio
2320 tra i righi dello stesso gruppo.
2321
2322 I @emph{gruppi di righi} (come @code{StaffGroup}, @code{ChoirStaff},
2323 etc.) sono contesti che possono contenere uno o più righi
2324 simultaneamente.
2325
2326 Le seguenti proprietà influenzano la spaziatura dei righi nei gruppi:
2327
2328 @itemize
2329 @item Proprietà di @code{VerticalAxisGroup}:
2330 @itemize
2331 @item @code{staff-staff-spacing}
2332 @end itemize
2333 @item Proprietà di @code{StaffGrouper}:
2334 @itemize
2335 @item @code{staff-staff-spacing}
2336 @item @code{staffgroup-staff-spacing}
2337 @end itemize
2338 @end itemize
2339
2340 Queste proprietà dei grob sono descritte una a una in una sezione precedente; vedi
2341 @ref{Within-system spacing properties}.
2342
2343 L'esempio seguente mostra come le proprietà del grob
2344 @code{StaffGrouper} possano influenzare la spaziatura dei righi raggruppati:
2345
2346 @lilypond[verbatim,quote,staffsize=16]
2347 \layout {
2348   \context {
2349     \Score
2350     \override StaffGrouper.staff-staff-spacing.padding = #0
2351     \override StaffGrouper.staff-staff-spacing.basic-distance = #1
2352   }
2353 }
2354
2355 <<
2356   \new PianoStaff \with {
2357     \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
2358   } <<
2359     \new Staff { c'1 }
2360     \new Staff { c'1 }
2361   >>
2362
2363   \new StaffGroup <<
2364     \new Staff { c'1 }
2365     \new Staff { c'1 }
2366   >>
2367 >>
2368 @end lilypond
2369
2370 @seealso
2371 File installati:
2372 @file{scm/define-grobs.scm}.
2373
2374 Frammenti:
2375 @rlsr{Spacing}.
2376
2377 Guida al funzionamento interno:
2378 @rinternals{VerticalAxisGroup},
2379 @rinternals{StaffGrouper}.
2380
2381
2382 @node Spaziatura delle linee che non sono righi
2383 @unnumberedsubsubsec Spaziatura delle linee che non sono righi
2384 @translationof Spacing of non-staff lines
2385
2386 Le @emph{linee che non sono righi} (come @code{Lyrics}, @code{ChordNames},
2387 etc.) sono contesti i cui oggetti della formattazione sono disposti come se
2388 fossero su dei righi (ovvero su linee orizzontali all'interno dei sistemi).
2389 Precisamente, le linee che non sono righi sono contesti non-rigo che contengono
2390 l'incisore @rinternals{Axis_group_engraver}.
2391
2392 Le seguenti proprietà influenzano la spaziatura delle linee che non sono righi:
2393
2394 @itemize
2395 @item Proprietà di @code{VerticalAxisGroup}:
2396 @itemize
2397 @item @code{staff-affinity}
2398 @item @code{nonstaff-relatedstaff-spacing}
2399 @item @code{nonstaff-nonstaff-spacing}
2400 @item @code{nonstaff-unrelatedstaff-spacing}
2401 @end itemize
2402 @end itemize
2403
2404 Queste proprietà del grob sono descritte una a una in una sezione
2405 precedente, vedi @ref{Within-system spacing properties}.
2406
2407 L'esempio seguente mostra come la proprietà
2408 @code{nonstaff-nonstaff-spacing} influenza la spaziatura di linee
2409 che non sono un rigo consecutive.  Impostando l'elemento
2410 @code{stretchability} su un valore molto alto, il testo vocale
2411 riesce a allungarsi molto più del solito:
2412
2413 @lilypond[verbatim,quote,staffsize=16]
2414 \layout {
2415   \context {
2416     \Lyrics
2417     \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
2418   }
2419 }
2420
2421 \new StaffGroup
2422 <<
2423   \new Staff \with {
2424     \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
2425   } { c'1 }
2426   \new Lyrics \with {
2427     \override VerticalAxisGroup.staff-affinity = #UP
2428   } \lyricmode { up }
2429   \new Lyrics \with {
2430     \override VerticalAxisGroup.staff-affinity = #CENTER
2431   } \lyricmode { center }
2432   \new Lyrics \with {
2433     \override VerticalAxisGroup.staff-affinity = #DOWN
2434   } \lyricmode { down }
2435   \new Staff { c'1 }
2436 >>
2437 @end lilypond
2438
2439 @seealso
2440 File installati:
2441 @file{ly/engraver-init.ly},
2442 @file{scm/define-grobs.scm}.
2443
2444 Frammenti:
2445 @rlsr{Spacing}.
2446
2447 @c @lsr{spacing,page-spacing.ly},
2448 @c @lsr{spacing,alignment-vertical-spacing.ly}.
2449
2450 Guida al funzionamento interno:
2451 @rinternals{Contexts},
2452 @rinternals{VerticalAxisGroup}.
2453
2454
2455 @node Posizionamento esplicito di righi e sistemi
2456 @subsection Posizionamento esplicito di righi e sistemi
2457 @translationof Explicit staff and system positioning
2458
2459 Un modo per comprendere i meccanismi di spaziatura verticale
2460 appena spiegati è di considerarli come un insieme di impostazioni
2461 che regolano la quantità di @emph{padding} verticale tra righi
2462 e tra sistemi.
2463
2464 È possibile gestire la spaziatura verticale in un modo diverso
2465 usando @code{NonMusicalPaperColumn.line-break-system-details}.
2466 Mentre i meccanismi di spaziatura verticale flessibile specificano
2467 il padding verticale, @code{NonMusicalPaperColumn.line-break-system-details}
2468 indica precisamente le posizioni verticali esatte sulla pagina.
2469
2470 @code{NonMusicalPaperColumn.line-break-system-details} accetta una
2471 lista associativa di tre diverse impostazioni:
2472
2473 @itemize
2474 @item @code{X-offset}
2475 @item @code{Y-offset}
2476 @item @code{alignment-distances}
2477 @end itemize
2478
2479 Le modifiche del grob con @code{\override}, incluse quelle per @code{NonMusicalPaperColumn}
2480 come nell'esempio successivo, possono trovarsi in uno di questi tre diversi
2481 punti del file di input:
2482
2483 @itemize
2484 @item direttamente in mezzo alle note
2485 @item in un blocco @code{\context}
2486 @item nel blocco @code{\with}
2487 @end itemize
2488
2489 Quando si modifica @code{NonMusicalPaperColumn}, si usa il solito
2490 comando @code{\override} nei blocchi @code{\context} e nel blocco
2491 @code{\with}.  Invece quando si modifica
2492 @code{NonMusicalPaperColumn} in mezzo alle note,
2493 si usa il comando speciale @code{\overrideProperty}.  Ecco alcuni
2494 esempi di modifiche di @code{NonMusicalPaperColumn} col comando
2495 speciale @code{\overrideProperty}:
2496
2497 @example
2498 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2499   #'((X-offset . 20))
2500
2501 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2502   #'((Y-offset . 40))
2503
2504 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2505   #'((X-offset . 20)
2506      (Y-offset . 40))
2507
2508 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2509   #'((alignment-distances . (15)))
2510
2511 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2512   #'((X-offset . 20)
2513      (Y-offset . 40)
2514      (alignment-distances . (15)))
2515 @end example
2516
2517 Per comprendere come funziona ognuna di queste impostazioni, iniziamo
2518 vedendo un esempio che non contiene alcuna modifica.
2519
2520 @c \book { } is required in these examples to ensure the spacing
2521 @c overrides can be seen between systems. -np
2522
2523 @lilypond[verbatim,quote,staffsize=16]
2524 \header { tagline = ##f }
2525 \paper { left-margin = 0\mm }
2526 \book {
2527   \score {
2528     <<
2529       \new Staff <<
2530         \new Voice {
2531           s1*5 \break
2532           s1*5 \break
2533           s1*5 \break
2534         }
2535         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2536       >>
2537       \new Staff {
2538         \repeat unfold 15 { d'4 d' d' d' }
2539       }
2540     >>
2541   }
2542 }
2543 @end lilypond
2544
2545 Questa partitura isola l'informazione sulle interruzioni di linea e di pagina
2546 in una voce apposita.  Questa tecnica di creare una voce per le interruzioni
2547 permette di tenere la formattazione separata dalla musica via via che il
2548 nostro esempio diventa più complicato.  Vedi @ref{Breaks}.
2549
2550 I @code{\break} espliciti dividono proporzionalmente la musica in cinque
2551 misure per linea.  La spaziatura verticale è quella predefinita di
2552 LilyPond.  Per impostare esplicitamente il punto di inizio verticale di
2553 ogni sistema, possiamo impostare la coppia @code{Y-offset} dell'attributo
2554 @code{line-break-system-details} del grob @code{NonMusicalPaperColumn}:
2555
2556 @lilypond[verbatim,quote,staffsize=16]
2557 \header { tagline = ##f }
2558 \paper { left-margin = 0\mm }
2559 \book {
2560   \score {
2561     <<
2562       \new Staff <<
2563         \new Voice {
2564           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2565             #'((Y-offset . 0))
2566           s1*5 \break
2567           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2568             #'((Y-offset . 40))
2569           s1*5 \break
2570           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2571             #'((Y-offset . 60))
2572           s1*5 \break
2573         }
2574         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2575       >>
2576       \new Staff {
2577         \repeat unfold 15 { d'4 d' d' d' }
2578       }
2579     >>
2580   }
2581 }
2582 @end lilypond
2583
2584 Nota che @code{line-break-system-details} accetta una lista associativa di
2585 molti valori, ma ne abbiamo impostato solo uno in questo esempio.  Nota
2586 anche che la proprietà @code{Y-offset} qui determina la posizione verticale
2587 esatta sulla pagina in cui ogni nuovo sistema verrà visualizzato.
2588
2589 Ora che abbiamo impostato esplicitamente il punto di inizio verticale di
2590 ogni sistema, possiamo impostare manualmente anche le distanze verticali
2591 tra i righi.  Per farlo usiamo la sottoproprietà @code{alignment-distances}
2592 di @code{line-break-system-details}.
2593
2594 @lilypond[verbatim,quote,staffsize=16]
2595 \header { tagline = ##f }
2596 \paper { left-margin = 0\mm }
2597 \book {
2598   \score {
2599     <<
2600       \new Staff <<
2601         \new Voice {
2602           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2603             #'((Y-offset . 20)
2604                (alignment-distances . (10)))
2605           s1*5 \break
2606           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2607             #'((Y-offset . 60)
2608                (alignment-distances . (15)))
2609           s1*5 \break
2610           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2611           #'((Y-offset . 85)
2612              (alignment-distances . (20)))
2613           s1*5 \break
2614         }
2615         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2616       >>
2617       \new Staff {
2618         \repeat unfold 15 { d'4 d' d' d' }
2619       }
2620     >>
2621   }
2622 }
2623 @end lilypond
2624
2625 Nota che qui assegnamo due valori diversi all'attributo
2626 @code{line-break-system-details} del grob
2627 @code{NonMusicalPaperColumn}.  Sebbene l'attributo alist
2628 @code{line-break-system-details} accetti molti altri parametri di
2629 spaziatura (inclusa, per esempio, una coppia corrispondente
2630 di @code{X-offset}), è sufficiente impostare soltanto le coppie @code{Y-offset}
2631 e @code{alignment-distances} per regolare il punto di inizio verticale di
2632 ogni sistema e ogni rigo.  Infine nota che @code{alignment-distances}
2633 specifica il posizionamento verticale dei righi ma non dei gruppi di righi.
2634
2635 @lilypond[verbatim,quote,staffsize=16]
2636 \header { tagline = ##f }
2637 \paper { left-margin = 0\mm }
2638 \book {
2639   \score {
2640     <<
2641       \new Staff <<
2642         \new Voice {
2643           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2644             #'((Y-offset . 0)
2645                (alignment-distances . (30 10)))
2646           s1*5 \break
2647           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2648             #'((Y-offset . 60)
2649                (alignment-distances . (10 10)))
2650           s1*5 \break
2651           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2652             #'((Y-offset . 100)
2653                (alignment-distances . (10 30)))
2654           s1*5 \break
2655         }
2656         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2657       >>
2658       \new StaffGroup <<
2659         \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2660         \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2661       >>
2662     >>
2663   }
2664 }
2665 @end lilypond
2666
2667 Alcuni punti da considerare:
2668
2669 @itemize
2670 @item Quando si usa @code{alignment-distances}, il testo vocale e altre linee
2671 che non sono righi non contano come rigo.
2672
2673 @item Le unità dei numeri assegnati a @code{X-offset},
2674 @code{Y-offset} e @code{alignment-distances} sono interpretati come
2675 multipli della distanza tra linee del rigo adiacenti.  Valori positivi
2676 spostano in su righi e testo, valori negativi li spostano in giù.
2677
2678 @item Dato che le impostazioni di @code{NonMusicalPaperColumn.line-break-system-details}
2679 illustrate qui permettono il posizionamento di righi e sistemi ovunque
2680 sulla pagina, è possibile violare i confini del foglio o dei margini o
2681 perfino sovrapporre righi e sistemi uno sopra l'altro.  Ciò può essere
2682 evitato assegnando valori ragionevoli a queste diverse impostazioni.
2683 @end itemize
2684
2685 @seealso
2686 Frammenti:
2687 @rlsr{Spacing}.
2688
2689
2690 @node Elusione delle collisioni verticali
2691 @subsection Elusione delle collisioni verticali
2692 @translationof Vertical collision avoidance
2693
2694 @funindex outside-staff-priority
2695 @funindex outside-staff-padding
2696 @funindex outside-staff-horizontal-padding
2697
2698 Intuitivamente, ci sono alcuni oggetti della notazione musicale che
2699 appartengono al rigo e altri che devono essere disposti fuori dal
2700 rigo.  Gli oggetti esterni al rigo comprendono i numeri di chiamata,
2701 il testo e le dinamiche (d'ora in avanti tutti questi elementi saranno
2702 chiamati oggetti esterni al rigo).  La regola di LilyPond per il
2703 posizionamento verticale degli oggetti esterni al rigo è di disporli
2704 il più vicino possibile al rigo ma non così vicino da farli collidere
2705 con un altro oggetto.
2706
2707 LilyPond usa la proprietà @code{outside-staff-priority} per determinare
2708 se un grob è un oggetto fuori dal rigo: se @code{outside-staff-priority}
2709 è un numero, il grob è un oggetto esterno al rigo.  @code{outside-staff-priority}
2710 indica a LilyPond anche in quale ordine disporre gli oggetti.
2711
2712 LilyPond posiziona prima tutti gli oggetti che non sono esterni al
2713 rigo.  Quindi ordina gli oggetti esterni al rigo in base al loro valore
2714 di @code{outside-staff-priority} (in ordine crescente).  Uno per volta, LilyPond
2715 prende gli oggetti esterni al rigo e li dispone in modo che non entrino in
2716 collisione con alcun oggetto che sia già stato disposto.  Ovvero, se due
2717 grob esterni al rigo si contendono lo stesso spazio, quello col valore
2718 di @code{outside-staff-priority} più basso sarà posto più vicino al rigo.
2719
2720 @lilypond[quote,ragged-right,verbatim]
2721 \relative c'' {
2722   c4_"Testo"\pp
2723   r2.
2724   \once \override TextScript.outside-staff-priority = #1
2725   c4_"Testo"\pp % stavolta il testo sarà più vicino al rigo
2726   r2.
2727   % impostando outside-staff-priority su un non-numero,
2728   % disabilitiamo l'elusione automatica delle collisioni
2729   \once \override TextScript.outside-staff-priority = ##f
2730   \once \override DynamicLineSpanner.outside-staff-priority = ##f
2731   c4_"Testo"\pp % qui entrano in collisione
2732 }
2733 @end lilypond
2734
2735 Il padding verticale intorno agli oggetti esterni al rigo
2736 può essere regolato con @code{outside-staff-padding}.
2737
2738 @lilypond[quote,ragged-right,verbatim,staffsize=18]
2739 \relative {
2740   \once \override TextScript.outside-staff-padding = #0
2741   a'4-"outside-staff-padding = #0"
2742   \once \override TextScript.outside-staff-padding = #3
2743   d-"outside-staff-padding = #3"
2744   c-"outside-staff-padding predefinito"
2745   b-"outside-staff-padding predefinito"
2746   R1
2747 }
2748 @end lilypond
2749
2750
2751 Per impostazione predefinita, gli oggetti esterni al rigo sono disposti
2752 in modo da evitare la collisione orizzontale con grob posizionati
2753 precedentemente.  Ciò può portare a situazioni in cui gli oggetti
2754 sono posizionati uno vicino all'altro orizzontalmente.
2755 Come è dimostrato nell'esempio successivo, impostando @code{outside-staff-horizontal-padding}
2756 si aumenta la spaziatura orizzontale richiesta e in questo caso si sposta
2757 in su il testo per impedire che si avvicini troppo ai tagli addizionali.
2758
2759 @lilypond[quote,ragged-right,verbatim]
2760 \relative {
2761   c''4^"Parola" c c''2
2762   R1
2763   \once \override TextScript.outside-staff-horizontal-padding = #1
2764   c,,4^"Parola" c c''2
2765 }
2766 @end lilypond
2767
2768 @seealso
2769 Frammenti:
2770 @rlsr{Spacing}.
2771
2772
2773 @node Spaziatura orizzontale
2774 @section Spaziatura orizzontale
2775 @translationof Horizontal spacing
2776
2777 @cindex spaziatura orizzontale
2778 @cindex orizzontale, spaziatura
2779
2780 @menu
2781 * Panoramica sulla spaziatura orizzontale::
2782 * Nuova spaziatura nel corso di un brano::
2783 * Modifica della spaziatura orizzontale::
2784 * Larghezza della linea::
2785 * Notazione proporzionale::
2786 @end menu
2787
2788
2789 @node Panoramica sulla spaziatura orizzontale
2790 @subsection Panoramica sulla spaziatura orizzontale
2791 @translationof Horizontal spacing overview
2792
2793 Il motore della spaziatura traduce le differenze delle durate delle
2794 note in distanze allungabili (@q{springs}) di diversa lunghezza.  Durate
2795 più lunghe occupano più spazio, quelle più brevi ne occupano meno.
2796 Le durate più brevi occupano una quantità fissa di spazio (regolata da
2797 @code{shortest-duration-space} nell'oggetto @rinternals{SpacingSpanner}).
2798 Più lunga è la durata, più spazio occupa: raddoppiando una durata
2799 si aggiunge spazio alla nota di una quantità pari al valore di
2800 @code{spacing-increment}.
2801
2802 Per esempio, il brano seguente contiene molte minime, semiminime e
2803 crome; la croma (1/8) è seguita da 1 Larghezza della Testa di Nota (LTN).
2804 La semiminima (1/4) è seguita da 2 LTN, la minima (1/2) da 3 LTN, etc.
2805
2806 @lilypond[quote,verbatim]
2807 \relative c' {
2808   c2 c4. c8
2809   c4. c8 c4. c8
2810   c8 c c4 c c
2811 }
2812 @end lilypond
2813
2814 Solitamente, @code{spacing-increment} è impostato su 1.2 di spazio rigo, che
2815 equivale all'incirca alla larghezza della testa di nota, e
2816 @code{shortest-duration-space} è impostato su 2.0, che significa che
2817 la nota più breve occupa 2.4 di spazio rigo (2 volte @code{spacing-increment})
2818 di spazio orizzontale.  Questo spazio è calcolato dal margine sinistro
2819 del simbolo, dunque le note più brevi sono generalmente seguite da
2820 un LTN di spazio.
2821
2822 Se si seguisse esattamente la procedura descritta, aggiungendo una
2823 sola biscroma (1/32) a un brano che usa solo crome e semicrome, la
2824 spaziatura orizzontale dell'intero brano sarebbe troppo larga.  Infatti
2825 la nota più breve non è più una semicroma ma una biscroma, aggiungendo
2826 quindi 1 LTN a ogni nota.  Per impedire ciò, la durata più breve per
2827 la spaziatura non è la nota più breve, bensì la che ricorre più
2828 frequentemente nel brano.
2829
2830 La durata più breve più comune viene individuata nel modo seguente.  In ogni
2831 misura viene determinata la durata più breve e quella più frequente viene
2832 scelta come base per la spaziatura, con la condizione che tale durata debba
2833 essere sempre uguale o inferiore a una nota di un ottavo.
2834
2835 Tali durate possono anche essere personalizzate.  Impostando
2836 @code{common-shortest-duration} in @rinternals{SpacingSpanner}, si
2837 imposta la durata di base per la spaziatura.  La durata massima per
2838 essa (solitamente un ottavo), si imposta con @code{base-shortest-duration}.
2839
2840 @funindex common-shortest-duration
2841 @funindex base-shortest-duration
2842 @funindex stem-spacing-correction
2843 @funindex spacing
2844
2845 Note ancora più brevi della nota più breve più comune sono seguite
2846 da uno spazio proporzionale alla loro durata rispetto a essa.  Dunque
2847 se aggiungessimo solo alcuni sedicesimi all'esempio precedente, sarebbero
2848 seguiti dalla metà di LTN:
2849
2850 @lilypond[quote,verbatim]
2851 \relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
2852 @end lilypond
2853
2854
2855 Nel saggio @emph{Essay on automated music engraving}, è spiegato che
2856 le direzioni del gambo influenzano la spaziatura (vedi
2857 @ressay{Optical spacing}).  Ciò è regolato dalla proprietà
2858 @code{stem-spacing-correction} nell'oggetto
2859 @rinternals{NoteSpacing}.  Questi oggetti sono generati per ogni
2860 contesto @rinternals{Voice}.  L'oggetto @code{StaffSpacing}
2861 (generato nel contesto @rinternals{Staff}) contiene la stessa
2862 propreità per regolare la spaziatura tra gambo e stanghetta.  L'esempio
2863 seguente mostra queste correzioni, una volta con le impostazioni predefinite
2864 e una volta con correzioni esagerate:
2865
2866 @lilypond[quote,ragged-right]
2867 \fixed c' {
2868   c4 e'4 e4 b4 |
2869   b4 e'4 b4 e'4 |
2870   \override Staff.NoteSpacing.stem-spacing-correction = #1.5
2871   \override Staff.StaffSpacing.stem-spacing-correction = #1.5
2872   c4 e'4 e4 b4 |
2873   b4 e'4 b4 e'4 |
2874 }
2875 @end lilypond
2876
2877 LilyPond supporta la notazione proporzionale, vedi @ref{Proportional notation}.
2878
2879 @seealso
2880 Essay on automated music engraving:
2881 @ressay{Optical spacing}.
2882
2883 Frammenti:
2884 @rlsr{Spacing}.
2885
2886 Guida al funzionamento interno:
2887 @rinternals{SpacingSpanner},
2888 @rinternals{NoteSpacing},
2889 @rinternals{StaffSpacing},
2890 @rinternals{NonMusicalPaperColumn}.
2891
2892 @knownissues
2893 Non esiste un modo semplice per modificare manualmente la spaziatura.  Per
2894 aggirare il problema si può inserire dell'ulteriore spazio in una partitura,
2895 regolando il valore di padding di quanto è necessario:
2896
2897 @example
2898  \override Score.NonMusicalPaperColumn.padding = #10
2899 @end example
2900
2901 Non esiste alcun trucco per diminuire la quantità di spazio.
2902
2903
2904 @c traduzione del titolo non letterale ma più chiara
2905 @node Nuova spaziatura nel corso di un brano
2906 @subsection Nuova spaziatura nel corso di un brano
2907 @translationof New spacing section
2908
2909 @funindex \newSpacingSection
2910 @cindex nuova spaziatura nel corso di un brano
2911 @cindex spaziatura nuova nel corso di un brano
2912 @cindex note, spaziatura orizzontale
2913
2914 Nuove sezioni con parametri di spaziatura diversi possono essere iniziati
2915 con @code{newSpacingSection}.  Ciò può essere utile quando ci sono sezioni
2916 con nozioni diverse di note lunghe e brevi.
2917
2918 Nell'esempio seguente, il cambio di indicazione di tempo introduce una
2919 nuova sezione, quindi i sedicesimi hanno automaticamente una spaziatura
2920 un po' più larga.
2921
2922 @lilypond[verbatim,quote]
2923 \relative c' {
2924   \time 2/4
2925   c4 c8 c
2926   c8 c c4 c16[ c c8] c4
2927   \newSpacingSection
2928   \time 4/16
2929   c16[ c c8]
2930 }
2931 @end lilypond
2932
2933 Il comando @code{\newSpacingSection} crea un nuovo oggetto
2934 @code{SpacingSpanner} in quel momento musicale.
2935 Se gli aggiustamenti automatici della spaziatura non producono la
2936 spaziatura richiesta, si possono applicare degli @code{\override}
2937 manuali alle sue proprietà.  Questi devono essere applicati nello
2938 stesso momento musicale del comando @code{\newSpacingSection} stesso.
2939 Avranno effetto sulla spaziatura di tutta la musica seguente finché
2940 le proprietà non vengono cambiate in una nuova sezione.  Per esempio:
2941
2942 @lilypond[verbatim,quote]
2943 \relative c' {
2944   \time 4/16
2945   c16[ c c8]
2946   \newSpacingSection
2947   \override Score.SpacingSpanner.spacing-increment = #2
2948   c16[ c c8]
2949   \newSpacingSection
2950   \revert Score.SpacingSpanner.spacing-increment
2951   c16[ c c8]
2952 }
2953 @end lilypond
2954
2955
2956 @seealso
2957 Frammenti:
2958 @rlsr{Spacing}.
2959
2960 Guida al funzionamento interno:
2961 @rinternals{SpacingSpanner}.
2962
2963
2964 @node Modifica della spaziatura orizzontale
2965 @subsection Modifica della spaziatura orizzontale
2966 @translationof Changing horizontal spacing
2967
2968 La spaziatura orizzontale può essere modificata tramite la proprietà
2969 @code{base-shortest-duration}.  Nel prossimo esempio confrontiamo
2970 la stessa musica, prima senza cambiare la proprietà e poi cambiandola.
2971 Valori più grandi di @code{ly:make-moment} produrranno musica più densa.
2972 Nota che @code{ly:make-moment} constituisce una durata, dunque
2973 @code{1 4} è una durata più lunga di @code{1 16}.
2974
2975 @lilypond[verbatim,line-width=12\cm]
2976 \score {
2977   \relative {
2978     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2979     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2980     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2981     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2982   }
2983 }
2984 @end lilypond
2985
2986 @lilypond[verbatim,line-width=12\cm]
2987 \score {
2988   \relative {
2989     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2990     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2991     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2992     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2993   }
2994   \layout {
2995     \context {
2996       \Score
2997       \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
2998     }
2999   }
3000 }
3001 @end lilypond
3002
3003
3004 @snippets
3005
3006 L'impostazione predefinita prevede che la spaziatura nei gruppi irregolari
3007 dipenda da vari fattori diversi dalla durata (come alterazioni, cambi di
3008 chiave, etc).  Per ignorare tali simboli e forzare la spaziatura perché
3009 sia uniforme, usare @code{Score.SpacingSpanner.uniform-stretching}.  Questa
3010 proprietà può essere modificata soltanto all'inizio di una partitura:
3011
3012 @lilypond[quote,ragged-right,verbatim]
3013 \score {
3014   <<
3015     \new Staff {
3016       \tuplet 5/4 { c8 c c c c } c8 c c c
3017     }
3018     \new Staff {
3019       c8 c c c \tuplet 5/4 { c8 c c c c }
3020     }
3021   >>
3022   \layout {
3023     \context {
3024       \Score
3025       \override SpacingSpanner.uniform-stretching = ##t
3026     }
3027   }
3028 }
3029 @end lilypond
3030
3031 Se si imposta @code{strict-note-spacing}, la spaziatura tra le note non tiene
3032 conto di chiavi, stanghette e abbellimenti:
3033
3034 @lilypond[quote,ragged-right,fragment,verbatim]
3035 \override Score.SpacingSpanner.strict-note-spacing = ##t
3036 \new Staff \relative {
3037   c''8[ c \clef alto c \grace { c16 c } c8 c c]  c32[ c] }
3038 @end lilypond
3039
3040 @seealso
3041 Frammenti:
3042 @rlsr{Spacing}.
3043
3044
3045 @node Larghezza della linea
3046 @subsection Larghezza della linea
3047 @translationof Line width
3048
3049 @cindex interruzioni di pagina
3050 @cindex pagina, interruzioni
3051
3052 @funindex indent
3053 @funindex line-width
3054 @funindex ragged-right
3055 @funindex ragged-last
3056
3057 @c Although line-width can be set in \layout, it should be set in paper
3058 @c block, to get page layout right.
3059 @c Setting indent in \paper block makes not much sense, but it works.
3060
3061 @c Bit verbose and vague, use examples?
3062 Le impostazioni fondamentali che influenzano la spaziatura sono @code{indent} e
3063 @code{line-width}, impostate nel blocco @code{\layout}.  Regolano l'indentazione
3064 della prima linea musicale e la lunghezza delle linee.
3065
3066 Se @code{ragged-right} è impostato su vero nel blocco @code{\layout}, i sistemi
3067 terminano alla loro naturale lunghezza orizzontale, invece di essere espansi
3068 orizzontalmente per riempire tutta la linea.  Ciò è utile in caso di brevi
3069 frammenti e per verificare quanto è compatta la spaziatura naturale.  L'impostazione
3070 predefinita è solitamente falso, ma se la partitura ha un solo sistema il
3071 valore predefinito è vero.
3072
3073 @cindex formattazione della pagina
3074 @cindex spaziatura verticale
3075 @cindex verticale, spaziatura
3076
3077 L'opzione @code{ragged-last} è simile a @code{ragged-right}, ma ha effetto
3078 soltanto sull'ultima linea del brano.  Nessune restrizioni vengono poste su
3079 quella linea.  Il risultato è simile alla formattazione dei paragrafi di testo.
3080 In un paragrafo l'ultima linea occupa la sua naturale lunghezza orizzontale.
3081 @c Note that for text there are several options for the last line.
3082 @c While Knuth TeX uses natural length, lead typesetters use the same
3083 @c stretch as the previous line.  eTeX uses \lastlinefit to
3084 @c interpolate between both these solutions.
3085
3086 @example
3087 \layout @{
3088   indent = #0
3089   line-width = #150
3090   ragged-last = ##t
3091 @}
3092 @end example
3093
3094 @seealso
3095 Frammenti:
3096 @rlsr{Spacing}.
3097
3098
3099 @node Notazione proporzionale
3100 @subsection Notazione proporzionale
3101 @translationof Proportional notation
3102
3103 LilyPond supporta la notazione proporzionale, un tipo di spaziatura orizzontale
3104 in cui ogni nota occupa una quantità di spazio orizzontale esattamente
3105 equivalente alla sua durata musicale.  Questo tipo di spaziatura proporzionale
3106 può essere paragonata alla spaziatura orizzontale su carta quadrettata.  Alcune
3107 partiture della fine del ventesimo secolo e dell'inizio del ventunesimo usano
3108 la notazione proporzionale per chiarire relazioni ritmiche complesse o per
3109 agevolare il posizionamento della linea del tempo o di altri elementi
3110 grafici direttamente nella partitura.
3111
3112 LilyPond supporta cinque diverse impostazioni per la notazione proporzionale,
3113 che possono essere usate insieme o da sole:
3114
3115 @itemize
3116 @item @code{proportionalNotationDuration}
3117 @item @code{uniform-stretching}
3118 @item @code{strict-note-spacing}
3119 @item @code{\remove "Separating_line_group_engraver"}
3120 @item @code{\override PaperColumn.used = ##t}
3121 @end itemize
3122
3123 Nell'esempio seguente analizziamo queste cinque diverse impostazioni di
3124 notazione proporzionale e valutiamo come esse interagiscono tra loro.
3125
3126 Iniziamo con l'esempio seguente di una misura, che usa la spaziatura
3127 classica con la giustificazione del rigo disattivata.
3128
3129 @c The initial pitch is not necessary as long as RhythmicStaff is
3130 @c not preceded by other material in the score, but we don't want
3131 @c to explain that.
3132 @lilypond[quote,verbatim,ragged-right]
3133 \score {
3134   <<
3135     \new RhythmicStaff {
3136       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3137     }
3138   >>
3139 }
3140 @end lilypond
3141
3142 La minima all'inizio della misura occupa uno spazio molto inferiore alla metà
3143 dello spazio orizzontale della misura.  Ugualmente, i sedicesimi e le quintine
3144 di sedicesimi alla fine della battuta insieme occupano molto più spazio della
3145 metà dello spazio orizzontale della misura.
3146
3147 Nell'incisione tipografica classica, questa spaziatura è solitamente proprio
3148 ciò che si desidera, perché è possibile prendere in prestito dello spazio
3149 orizzontale dalla minima e economizzare lo spazio orizzontale complessivo
3150 della misura.
3151
3152 D'altra parte, se vogliamo inserire una linea del tempo con tacche o altri
3153 elementi grafici sopra o sotto la partitura, abbiamo bisogno della notazione
3154 proporzionale.  Per attivarla si usa l'impostazione proportionalNotationDuration.
3155
3156 @lilypond[quote,verbatim,ragged-right]
3157 \score {
3158   <<
3159     \new RhythmicStaff {
3160       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3161     }
3162   >>
3163  \layout {
3164     \context {
3165       \Score
3166       proportionalNotationDuration = #(ly:make-moment 1/20)
3167     }
3168   }
3169 }
3170 @end lilypond
3171
3172 La minima all'inizio della misura e le note più veloci nella seconda
3173 metà della misura ora occupano la stessa quantità di spazio orizzontale.
3174 Potremmo inserire una linea del tempo con tacche o un'immagine
3175 grafica sopra o sotto questo esempio.
3176
3177 L'impostazione @code{proportionalNotationDuration} è un'impostazione di
3178 contesto che si trova in @code{Score}.  Ricordiamo che le impostazioni di
3179 contesto possono apparire in tre luoghi del file di input: in un blocco
3180 @code{\with}, in un blocco @code{\context} o direttamente in mezzo alle
3181 note preceduta dal comando @code{\set}.  Come per tutte le impostazioni di
3182 contesto, l'utente può scegliere in quale di questi tre luoghi impostare
3183 @code{proportionalNotationDuration}.
3184
3185 L'impostazione @code{proportionalNotationDuration} prende un solo argomento,
3186 che è la durata di riferimento in base alla quale tutta la musica verrà
3187 spaziata.  La funzione Scheme di LilyPond @code{make-moment} prende due
3188 argomenti: un numeratore e un denominatore che insieme esprimono una qualche
3189 frazione di una nota intera.  La funzione di chiamata @code{(ly:make-moment 1/20)}
3190 produce quindi una durata di riferimento di un ventesimo di nota.  Sono ammessi
3191 anche valori come @code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)} e
3192 @code{(ly:make-moment 3/97)}.
3193
3194 Come scegliamo la durata di riferimento corretta da passare a
3195 @code{proportionalNotationDuration}?  Solitamente attraverso un processo di
3196 prova e errore, iniziando con una durata vicina alla più veloce (o piccola)
3197 durata del brano.  Durate di riferimento più piccole determinano una spaziatura
3198 della musica più larga; quelle più grandi causano una spaziatura più stretta.
3199
3200 @lilypond[quote,verbatim,ragged-right]
3201 \score {
3202   <<
3203     \new RhythmicStaff {
3204       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3205     }
3206   >>
3207   \layout {
3208     \context {
3209       \Score
3210       proportionalNotationDuration = #(ly:make-moment 1/8)
3211     }
3212   }
3213 }
3214
3215 \score {
3216   <<
3217     \new RhythmicStaff {
3218       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3219     }
3220   >>
3221   \layout {
3222     \context {
3223       \Score
3224       proportionalNotationDuration = #(ly:make-moment 1/16)
3225     }
3226   }
3227 }
3228
3229 \score {
3230   <<
3231     \new RhythmicStaff {
3232       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3233     }
3234   >>
3235   \layout {
3236     \context {
3237       \Score
3238       proportionalNotationDuration = #(ly:make-moment 1/32)
3239     }
3240   }
3241 }
3242 @end lilypond
3243
3244 Nota che una durata di riferimento troppo grande -- come la nota di
3245 un ottavo, sopra -- determina una spaziatura della musica troppo stretta
3246 e può causare collisioni tra le teste di nota.  Fare attenzione anche al
3247 fatto che la notazione proporzionale in generale occupa più spazio orizzontale
3248 della spaziatura classica.  Insomma, la spaziatura proporzionale fornisce
3249 chiarezza ritmica al costo dello spazio orizzontale.
3250
3251 Ora vediamo come spaziare in modo ottimale i gruppi irregolari sovrapposti.
3252
3253 Iniziamo esaminando cosa succede al nostro esempio di partenza, con la
3254 spaziatura classica, quando aggiungiamo un secondo rigo con un diverso
3255 tipo di gruppo irregolare.
3256
3257 @lilypond[quote,verbatim,ragged-right]
3258 \score {
3259   <<
3260     \new RhythmicStaff {
3261       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3262     }
3263     \new RhythmicStaff {
3264       \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
3265     }
3266   >>
3267 }
3268 @end lilypond
3269
3270 La spaziatura è pessima perché le note del rigo inferiore spaziate a distanze
3271 uguali non si allungano in modo uniforme.  Le incisioni classiche contengono
3272 pochissime terzine complesse e quindi le regole di incisione classica possono
3273 generare questo tipo di risultato.  Impostando @code{proportionalNotationDuration}
3274 ciò viene corretto.
3275
3276 @lilypond[quote,verbatim,ragged-right]
3277 \score {
3278   <<
3279     \new RhythmicStaff {
3280       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3281     }
3282     \new RhythmicStaff {
3283       \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
3284     }
3285   >>
3286   \layout {
3287     \context {
3288       \Score
3289       proportionalNotationDuration = #(ly:make-moment 1/20)
3290     }
3291   }
3292 }
3293 @end lilypond
3294
3295 Ma se osserviamo con attenzione possiamo vedere che le note della seconda
3296 metà della nonina hanno una spaziatura leggermente più larga delle note
3297 della prima parte della nonina.  Per assicurare un allungamento uniforme,
3298 attiviamo @code{uniform-stretching}, una proprietà di
3299 @code{SpacingSpanner}.
3300
3301 @lilypond[quote,verbatim,ragged-right]
3302 \score {
3303   <<
3304     \new RhythmicStaff {
3305       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3306     }
3307     \new RhythmicStaff {
3308       \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
3309     }
3310   >>
3311   \layout {
3312     \context {
3313       \Score
3314       proportionalNotationDuration = #(ly:make-moment 1/20)
3315       \override SpacingSpanner.uniform-stretching = ##t
3316     }
3317   }
3318 }
3319 @end lilypond
3320
3321 Il nostro esempio di due righi ora ha una spaziatura esatta, le relazioni
3322 ritmiche sono visivamente chiare e possiamo includere una linea del tempo
3323 con tacche o altro elemento grafico, se lo vogliamo.
3324
3325 Nota che la notazione proporzionale di LilyPond si aspetta che tutte le
3326 partiture proporzionali impostino l'attributo 'uniform-stretching di
3327 SpacingSpanner su @code{##t}.  Impostare proportionalNotationDuration senza
3328 impostare anche l'attributo 'uniform-stretching di SpacingSpanner su
3329 @code{##t} farà sì, per esempio, che le pause invisibili occupino una quantità
3330 scorretta di spazio orizzontale.
3331
3332 SpacingSpanner è un grob astratto che si trova nel contesto Score.
3333 Come per le impostazioni di proportionalNotationDuration, le modifiche
3334 @code{\override} a SpacingSpanner si possono trovare in uno dei tre diversi
3335 punti del file di input – nel blocco \with del brano, nel blocco \context
3336 del brano o direttamente in mezzo alle note.
3337
3338 Per impostazione predefinita, esiste un solo @code{SpacingSpanner} per
3339 @code{Score}.  Ciò significa che @code{uniform-stretching} è attivato o
3340 disattivato per l'intera partitura.  Possiamo tuttavia modificare tale
3341 comportamento e attivare diverse funzionalità di spaziatura in punti
3342 diversi del brano.  Per farlo si usa il comando @code{\newSpacingSection}.
3343 Maggiori informazioni in @ref{New spacing section}.
3344
3345 Ora esaminiamo gli effetti dell'incisore @code{Separating_line_group_engraver} e
3346 vediamo perché le partiture proporzionali solitamente tolgano questo incisore.
3347 L'esempio seguente mostra che c'è un piccolo spazio @qq{introduttivo} proprio
3348 prima della prima nota di ogni sistema.
3349
3350 @lilypond[quote,verbatim,ragged-right]
3351 \paper {
3352   indent = #0
3353 }
3354
3355 \new Staff {
3356   c'1
3357   \break
3358   c'1
3359 }
3360 @end lilypond
3361
3362
3363 L'ampiezza di questo spazio introduttivo è la stessa sia dopo un'indicazione di
3364 tempo che dopo un'armatura di chiave o una chiave.
3365 È l'incisore @code{Separating_line_group_engraver} a causare questo spazio.
3366 Togliendolo lo spazio diventa zero.
3367
3368 @lilypond[quote,verbatim,ragged-right]
3369 \paper {
3370   indent = #0
3371 }
3372
3373 \new Staff \with {
3374   \remove "Separating_line_group_engraver"
3375 } {
3376   c'1
3377   \break
3378   c'1
3379 }
3380 @end lilypond
3381
3382 Nella notazione proporzionale gli elementi non musicali come le indicazioni di
3383 tempo, le armature di chiave, le chiavi e le alterazioni sono problematiche.
3384 Nessuna di queste infatti ha una durata ritmica, ma tutte occupano spazio
3385 orizzontale.  Questi problemi sono affrontati diversamente dalle varie
3386 partiture proporzionali.
3387
3388 È possibile evitare i problemi di spaziatura dovuti alle armature di
3389 chiave semplicemente omettendole.  Questa è un'opzione valida dato che
3390 la maggior parte delle partiture proporzionali sono di musica contemporanea.
3391 Lo stesso potrebbe valere per le indicazioni di tempo, specialmente per quelle
3392 partiture che includono una linea del tempo o altri elementi grafici.  Ma queste
3393 partiture sono un'eccezione e la maggior parte delle partiture proporzionali
3394 hanno almeno qualche indicazione di tempo.  Le chiavi e le alterazioni sono
3395 ancora più fondamentali.
3396
3397 Dunque quali strategie adottare per spaziare elementi non musicali nel contesto
3398 di musica proporzionale?  Una valida opzione è la proprietà @code{strict-note-spacing}
3399 di @code{SpacingSpanner}.  Confrontiamo i seguenti due righi:
3400
3401 @lilypond[quote,verbatim,ragged-right]
3402 \new Staff {
3403   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3404   c''8 8 8 \clef alto d'2 2
3405 }
3406
3407 \new Staff {
3408   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3409   \override Score.SpacingSpanner.strict-note-spacing = ##t
3410   c''8 8 8 \clef alto d'2 2
3411 }
3412 @end lilypond
3413
3414 Entrambi sono proporzionali, ma la spaziatura del primo è troppo
3415 larga a causa del cambio di chiave.  La spaziatura del secondo
3416 resta invece stretta, perché è attivato strict-note-spacing.
3417 Attivando strict-note-spacing, la larghezza di indicazioni di tempo,
3418 armature di chiave, chiavi e alterazioni non ha alcun ruolo
3419 nell'algoritmo di spaziatura.
3420
3421 Oltre alle impostazioni che abbiamo visto, ce ne sono altre che appaiono
3422 frequentemente nelle partiture proporzionali, tra cui:
3423
3424 @itemize
3425 @item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
3426 @item @code{\set tupletFullLength = ##t}
3427 @item @code{\override Beam.breakable = ##t}
3428 @item @code{\override Glissando.breakable = ##t}
3429 @item @code{\override TextSpanner.breakable = ##t}
3430 @item @code{\remove "Forbid_line_break_engraver" nel contesto Voice}
3431 @end itemize
3432
3433 Queste impostazioni spaziano in modo conciso gli abbellimenti, estendono le
3434 parentesi dei gruppi irregolari per contrassegnare i punti di inizio e di
3435 fine del ritmo, e permettono agli elementi che si estendono orizzontalmente
3436 di andare oltre i sistemi e le pagine.  Consultare le sezioni del manuale
3437 per queste impostazioni.
3438
3439 @seealso
3440 Guida alla notazione:
3441 @ref{New spacing section}.
3442
3443 Frammenti:
3444 @rlsr{Spacing}.
3445
3446
3447 @node Riduzione del numero di pagine di una partitura
3448 @section Riduzione del numero di pagine di una partitura
3449 @translationof Fitting music onto fewer pages
3450
3451 Talvolta può capitare di avere uno o due righi su una seconda
3452 (o terza, o quarta@dots{}) pagina.  Ciò è fastidioso, specialmente
3453 se c'è molto spazio nelle pagine precedenti.
3454
3455 Quando si studiano i problemi di formattazione, uno strumento irrinunciabile
3456 è @code{annotate-spacing}, un comando che mostra i valori delle diverse
3457 variabili di spaziatura.  Maggiori dettagli nella prossima sezione,
3458 @ref{Displaying spacing}.
3459
3460 @menu
3461 * Visualizzare la spaziatura::
3462 * Modificare la spaziatura::
3463 @end menu
3464
3465
3466 @node Visualizzare la spaziatura
3467 @subsection Visualizzare la spaziatura
3468 @translationof Displaying spacing
3469
3470 @funindex annotate-spacing
3471 @cindex spaziatura, visualizzazione della formattazione
3472
3473 Per visualizzare graficamente le dimensioni delle varibili della formattazione
3474 verticale che possono essere modificate per formattare la pagina, impostare
3475 @code{annotate-spacing} nel blocco @code{\paper}:
3476
3477 @lilypond[verbatim,quote,papersize=a6landscape]
3478 \book {
3479   \score { { c4 } }
3480   \paper { annotate-spacing = ##t }
3481 }
3482 @end lilypond
3483
3484
3485 @noindent
3486 Tutte le dimensioni della formattazione sono visualizzate in spazi rigo,
3487 indipendentemente dalle unità di misura specificate nei blocchi
3488 @code{\paper} o @code{\layout}.  Nell'esempio qui sopra, l'altezza
3489 del foglio (@code{paper-height}) ha un valore di 59.75 spazi
3490 rigo (@code{staff-space}), e la dimensione del rigo (@code{staff-size}) è
3491 pari a 20 punti (il valore predefinito).  Nota che:
3492
3493 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
3494
3495 @item 1 punto
3496 @tab = (25.4/72.27) mm
3497
3498 @item 1 staff-space
3499 @tab = (@code{staff-size})/4 pts
3500 @item
3501 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3502
3503 @end multitable
3504
3505 @noindent
3506 In questo caso, uno @code{staff-space} è uguale all'incirca a
3507 1.757mm.  Dunque i 59.75 @code{staff-space} di @code{paper-height}
3508 corrispondono a 105 millimetri, pari all'altezza del formato @code{a6}
3509 in orientamento orizzontale.  Le coppie (@var{a},@var{b}) sono
3510 intervalli, dove @var{a} è l'estremo inferiore e @var{b} l'estremo
3511 superiore dell'intervallo.
3512
3513 @seealso
3514 Guida alla notazione:
3515 @ref{Setting the staff size}.
3516
3517 Frammenti:
3518 @rlsr{Spacing}.
3519
3520
3521 @node Modificare la spaziatura
3522 @subsection Modificare la spaziatura
3523 @translationof Changing spacing
3524
3525 L'output di @code{annotate-spacing} svela le dimensioni verticali molto
3526 dettagliatamente.  Maggiori informazioni su come modificare i margini e
3527 altre variabili di formattazione si trovano in @ref{Page layout}.
3528
3529 Oltre ai margini, ci sono altre opzioni utili per salvare spazio:
3530
3531 @itemize
3532 @item
3533 Forzare i sistemi perché si avvicinino il più possibile (per far
3534 entrare più sistemi possibile in una pagina) mentre sono spaziati in
3535 modo da non lasciare spazio bianco in fondo alla pagina.
3536
3537 @example
3538 \paper @{
3539   system-system-spacing = #'((basic-distance . 0.1) (padding . 0))
3540   ragged-last-bottom = ##f
3541   ragged-bottom = ##f
3542 @}
3543 @end example
3544
3545 @item
3546 Forzare il numero dei sistemi.  Ciò può essere utile in due modi.  Il
3547 semplice impostare un valore, persino lo stesso valore del numero di
3548 sistemi disposti senza modificare la variabile, può far sì che più
3549 sistemi riescano a entrare in ogni pagina, perché viene saltato il
3550 passaggio di valutazione, dando un valore più adatto per ogni pagina.
3551 Inoltre, forzare davvero una riduzione nel numero di sistemi può far
3552 risparmiare un'ulteriore pagina.  Per esempio, se la formattazione
3553 predefinita ha 11 sistemi, la seguente impostazione forzerà la
3554 formattazione con 10 sistemi.
3555
3556 @example
3557 \paper @{
3558   system-count = #10
3559 @}
3560 @end example
3561
3562 @item
3563 Forzare il numero delle pagine.  Per esempio, la seguente impostazione
3564 forzerà la formattazione in due pagine.
3565
3566 @example
3567 \paper @{
3568   page-count = #2
3569 @}
3570 @end example
3571
3572 @item
3573 Evitare (o ridurre) gli oggetti che aumentano la dimensione verticale di
3574 un sistema.  Per esempio, le parentesi delle volte per i finali alternativi
3575 richiedono ulteriore spazio.  Se questi finali si estendono per due sistemi,
3576 occupano più spazio che se fossero sullo stesso sistema.  Altro esempio: le
3577 dinamiche che @qq{spuntano fuori} da un sistema possono essere avvicinate al
3578 rigo:
3579
3580 @lilypond[verbatim,quote]
3581 \relative e' {
3582   e4 c g\f c
3583   e4 c g-\tweak X-offset #-2.7 \f c
3584 }
3585 @end lilypond
3586
3587 @item
3588 Modificare la spaziatura orizzontale tramite @code{SpacingSpanner}.  Maggiori
3589 informazioni in @ref{Changing horizontal spacing}.  L'esempio seguente mostra
3590 la spaziatura predefinita:
3591
3592 @lilypond[verbatim,quote]
3593 \score {
3594   \relative {
3595     g'4 e e2 |
3596     f4 d d2 |
3597     c4 d e f |
3598     g4 g g2 |
3599     g4 e e2 |
3600   }
3601 }
3602 @end lilypond
3603
3604 @noindent
3605 L'esempio successivo modifica @code{common-shortest-duration} da un
3606 valore di @code{1/4} a uno di @code{1/2}.  La nota di un quarto è la
3607 durata più comune e più breve in questo esempio, dunque rendendola più
3608 lunga si verifica un effetto @qq{compressione}:
3609
3610 @lilypond[verbatim,quote]
3611 \score {
3612   \relative {
3613     g'4 e e2 |
3614     f4 d d2 |
3615     c4 d e f |
3616     g4 g g2 |
3617     g4 e e2 |
3618   }
3619   \layout {
3620     \context {
3621       \Score
3622       \override SpacingSpanner.common-shortest-duration =
3623         #(ly:make-moment 1/2)
3624     }
3625   }
3626 }
3627 @end lilypond
3628
3629 @noindent
3630 La proprietà @code{common-shortest-duration} non può essere modificata in
3631 modo dinamico, quindi deve essere sempre posta in un blocco @code{\context}
3632 così che sia applicata all'intera partitura.
3633
3634 @end itemize
3635
3636 @seealso
3637 Guida alla notazione:
3638 @ref{Page layout},
3639 @ref{Changing horizontal spacing}.
3640
3641 Frammenti:
3642 @rlsr{Spacing}.
3643