]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/notation/spacing.itely
Merge branch 'translation' into staging
[lilypond.git] / Documentation / it / notation / spacing.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: 24dd6365d3d05f13b9259f547be9b2517851a5d1
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{Titoli intestazioni e piè di pagina personalizzati}.
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{Titoli intestazioni e piè di pagina personalizzati},
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{Ridimensionamento automatico al formato carta}.
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{Ridimensionamento automatico al formato carta},
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{Ridimensionamento automatico al formato carta}.}
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{Ridimensionamento automatico al formato carta}.
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{Ridimensionamento automatico al formato carta}.}
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{Ridimensionamento automatico al formato carta}.
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{Ridimensionamento automatico al formato carta}.
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{Ridimensionamento automatico al formato carta}.
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-page-breaking}, @code{ly:one-line-breaking},
930 @code{ly:one-line-auto-height-breaking} e
931 @code{ly:optimal-breaking} (predefinito).
932
933 @item page-breaking-system-system-spacing
934 @funindex page-breaking-system-system-spacing
935
936 Induce il sistema di interruzione di pagina a credere che
937 @code{system-system-spacing} sia impostato in modo diverso dal
938 modo in cui è impostato realmente.  Per esempio, se
939 @code{page-breaking-system-system-spacing #'padding} è impostato su un
940 valore molto più grande di @code{system-system-spacing #'padding}, il
941 sistema di interruzione di pagina disporrà meno sistemi su ciascuna
942 pagina.  Valore predefinito: non impostato.
943
944 @item page-count
945 @funindex page-count
946
947 Il numero di pagine da usare per un brano, non impostato.
948
949 @end table
950
951 Le variabili seguenti sono attive soltanto quando @code{page-breaking}
952 è impostato su @code{ly:page-turn-breaking}.  Le interruzioni di pagina
953 vengono quindi scelte per minimizzare il numero di voltate di pagina.
954 Dato che le voltate di pagina si rendono necessarie quando si passa da
955 una pagina con numero dispari a una con numero pari, verrà solitamente
956 favorita una formattazione in cui l'ultima pagina abbia un numero dispari.
957 I punti preferiti per le voltate di pagina possono essere indicati
958 manualmente col comando @code{\allowPageTurn} o automaticamente
959 includendo l'incisore @code{Page_turn_engraver} (vedi @ref{Optimal page turning}).
960
961 Se le scelte disponibili per avere voltate di pagina adeguate sono
962 insufficienti, LilyPond potrebbe inserire una pagina vuota all'interno
963 di un brano o tra i brani (se ce ne sono almeno due), oppure potrebbe
964 terminare un brano su una pagina pari.  Aumentando i valori delle
965 seguenti tre variabili diminuisce la probabilità che queste entrino
966 in azione.
967
968 I valori sono penalità: maggiore il valore, minore la probabilità
969 che si verifichi l'azione associata rispetto alle altre scelte.
970
971 @table @code
972
973 @item blank-page-penalty
974 @funindex blank-page-penalty
975
976 La penalità per avere una pagina vuota nel mezzo di un brano.  Se il
977 valore di @code{blank-page-penalty} è grande ed è selezionato
978 @code{ly:page-turn-breaking}, sarà meno probabile che LilyPond
979 insersica una pagina nel mezzo del brano.  Aggiungerà invece
980 maggior spazio tra i sistemi per occupare la pagina vuota e
981 quella successiva.  Valore predefinito: 5.
982
983 @item blank-last-page-penalty
984 @funindex blank-last-page-penalty
985
986 La penalità per terminare il brano su una pagina pari.  Se il
987 valore di @code{blank-last-page-penalty} è grande ed è selezionato
988 @code{ly:page-turn-breaking}, sarà meno probabile che LilyPond
989 produca una partitura in cui l'ultima pagina sia pari.  Regolerà
990 invece la spaziatura in modo da usare una pagina in più o in meno.
991 Valore predefinito: 0.
992
993 @item blank-after-score-page-penalty
994 @funindex blank-after-score-page-penalty
995
996 La penalità per avere una pagina vuota dopo la fine di un brano e
997 prima di quello successivo.  Il valore predefinito è inferiore a
998 @code{blank-page-penalty}, in modo che siano inserite preferibilmente
999 pagine vuote al termine di un brano piuttosto che nel mezzo di un brano.
1000 Valore predefinito: 2.
1001
1002 @end table
1003
1004
1005 @seealso
1006 Guida alla notazione:
1007 @ref{Page breaking},
1008 @ref{Optimal page breaking},
1009 @ref{Optimal page turning},
1010 @ref{Minimal page breaking},
1011 @ref{One-page page breaking},
1012 @ref{One-line page breaking},
1013 @ref{One-line-auto-height page breaking}.
1014
1015 File installati:
1016 @file{ly/paper-defaults-init.ly}.
1017
1018
1019 @node Variabili di paper per la numerazione delle pagine
1020 @unnumberedsubsubsec Variabili di @code{@bs{}paper} per la numerazione delle pagine
1021 @translationof paper variables for page numbering
1022
1023 I valori predefiniti non elencati qui sono visibili in
1024 @file{ly/paper-defaults-init.ly}
1025
1026 @table @code
1027
1028 @cindex numeri di pagina, numerazione automatica
1029 @item auto-first-page-number
1030 @funindex auto-first-page-number
1031
1032 L'algoritmo di interruzione di pagina si comporta diversamente a seconda
1033 che il numero della prima pagina sia dispari o pari.  Se questa variabile
1034 è impostata su vero, l'algoritmo di interruzione di pagina
1035 deciderà se iniziare con un numero dispari o un numero pari.  Quindi il
1036 numero della prima pagina resterà lo stesso o aumenterà di uno.
1037 Valore predefinito: @code{#f} (falso).
1038
1039 @cindex numeri di pagina, indicare il primo
1040 @item first-page-number
1041 @funindex first-page-number
1042
1043 Il valore del numero di pagina della prima pagina.
1044
1045 @item print-first-page-number
1046 @funindex print-first-page-number
1047
1048 Se impostato su vero, appare il numero di pagina sulla prima pagina.
1049
1050 @cindex numeri di pagina, sopprimere
1051 @item print-page-number
1052 @funindex print-page-number
1053
1054 Se impostato su falso, non apparirano i numeri di pagina.
1055
1056 @cindex numeri di pagina in numeri romani
1057 @item page-number-type
1058 @funindex page-number-type
1059
1060 Il tipo di numero usato per numerare le pagine.  Le opzioni possibili
1061 sono @code{roman-lower}, @code{roman-upper} e @code{arabic}.
1062 Valore predefinito: @code{'arabic}.
1063
1064 @end table
1065
1066 @seealso
1067 File installati:
1068 @file{ly/paper-defaults-init.ly}.
1069
1070 @knownissues
1071 I numeri di pagina dispari sono sempre sulla destra.  Se la musica
1072 deve iniziare a pagina 1, ci deve essere una pagina vuota sulla
1073 seconda di copertina in modo che pagina 1 sia sul lato destro.
1074
1075
1076 @node Svariate variabili di paper
1077 @unnumberedsubsubsec Svariate variabili di @code{@bs{}paper}
1078 @translationof Miscellaneous paper variables
1079
1080 @table @code
1081
1082 @item page-spacing-weight
1083 @funindex page-spacing-weight
1084
1085 L'importanza della spaziatura (verticale) e della linea (orizzontale)
1086 della pagina.  Valori più grandi renderanno la spaziatura della pagina
1087 più importante.  Valore predefinito: @code{10}.
1088
1089 @item print-all-headers
1090 @funindex print-all-headers
1091
1092 Se impostato su vero, appariranno nell'output tutte le intestazioni di
1093 ciascun blocco @code{\score}.  Di norma appaiono soltanto le variabili
1094 @code{piece} e @code{opus}.  Valore predefinito: @code{#f}.
1095
1096 @item system-separator-markup
1097 @funindex system-separator-markup
1098
1099 Un oggetto markup inserito tra i sistemi, spesso usato per le
1100 partiture orchestrali.  Valore predefinito: non impostato.  È
1101 disponibile il comando markup @code{\slashSeparator}, definito
1102 in @file{ly/titling-init.ly}, che fornisce un ragionevole valore
1103 predefinito, per esempio:
1104
1105 @lilypond[quote,verbatim,noragged-right,line-width=30\mm]
1106 #(set-default-paper-size "a8")
1107
1108 \book {
1109   \paper {
1110     system-separator-markup = \slashSeparator
1111   }
1112   \header {
1113     tagline = ##f
1114   }
1115   \score {
1116     \relative { c''1 \break c1 \break c1 }
1117   }
1118 }
1119 @end lilypond
1120
1121 @end table
1122
1123 @seealso
1124 File installati:
1125 @file{ly/titling-init.ly}.
1126
1127 Frammenti:
1128 @rlsr{Spacing}.
1129
1130 @knownissues
1131 L'intestazione di pagina predefinita pone sulla stessa linea il numero di
1132 pagina e il campo @code{instrument} del blocco @code{\header}.
1133
1134
1135 @node Formattazione della partitura
1136 @section Formattazione della partitura
1137 @translationof Score layout
1138
1139 Questa sezione tratta le opzioni di formattazione della partitura disponibili
1140 nel blocco @code{\layout}.
1141
1142 @menu
1143 * Il blocco layout::
1144 * Impostare la dimensione del rigo::
1145 @end menu
1146
1147
1148 @node Il blocco layout
1149 @subsection Il blocco @code{@bs{}layout}
1150 @translationof The layout block
1151
1152 @funindex \layout
1153
1154 Mentre il blocco @code{\paper} contiene le impostazioni relative
1155 alla formattazione della pagina per l'intero documento, il blocco
1156 @code{\layout} contiene impostazioni di formattazione specifica
1157 di un brano.  Per impostare globalmente le opzioni di formattazione
1158 del brano, inserirle in un blocco @code{\layout} del livello superiore.
1159 Per impostare le impostazioni di formattazione per un singolo brano, inserirle
1160 in un blocco @code{\layout} racchiuso in un blocco @code{\score}, dopo la
1161 musica.  Le impostazioni che possono apparire in un blocco
1162 @code{\layout} includono:
1163
1164 @itemize
1165 @item la funzione scheme @code{layout-set-staff-size},
1166 @item le modifiche di contesto nei blocchi @code{\context} e
1167 @item le variabili @code{\paper} che agiscono sulla formattazione del brano.
1168 @end itemize
1169
1170 La funzione @code{layout-set-staff-size} è spiegata nella prossima
1171 sezione, @ref{Setting the staff size}.  Le modifiche di contesto sono
1172 trattate in un capitolo separato; vedi @ref{Modifying context plug-ins} e
1173 @ref{Modifica delle impostazioni predefinite di un contesto}.
1174
1175 Le variabili @code{\paper} che possono apparire in un blocco @code{\layout},
1176 con valori predefiniti presi dal blocco @code{\paper}, sono:
1177
1178 @itemize
1179
1180 @item
1181 @code{line-width}, @code{ragged-right} e @code{ragged-last}
1182 (vedi @ref{paper variables for widths and margins,,variabili @code{@bs{}paper} per larghezze e margini})
1183
1184 @item
1185 @code{indent} e @code{short-indent}
1186 (vedi @ref{paper variables for shifts and indents,,variabili @code{@bs{}paper} per spostamenti e indentazioni})
1187
1188 @item
1189 @code{system-count}
1190 (vedi @ref{paper variables for line breaking,,variabili @code{@bs{}paper} per l'interruzione di linea})
1191
1192 @end itemize
1193
1194 Ecco un esempio di blocco @code{\layout}:
1195
1196 @example
1197 \layout @{
1198   indent = 2\cm
1199   \context @{
1200     \StaffGroup
1201     \override StaffGrouper.staff-staff-spacing.basic-distance = #8
1202   @}
1203   \context @{
1204     \Voice
1205     \override TextScript.padding = #1
1206     \override Glissando.thickness = #3
1207   @}
1208 @}
1209 @end example
1210
1211 Si possono inserire molteplici blocchi @code{\layout} come espressioni
1212 di livello superiore.  Ciò può essere utile, per esempio, se impostazioni
1213 diverse sono salvate in file separati e incluse facoltativamente.
1214 Internamente, quando un blocco @code{\layout} viene elaborato, viene fatta
1215 una copia della configurazione del blocco @code{\layout} corrente, poi
1216 qualsiasi modifica apportata nel blocco viene applicata e il risultato
1217 viene salvato come la nuova configurazione corrente.  Dalla prospettiva
1218 dell'utente, i blocchi @code{\layout} sono combinati, ma in situazioni di
1219 conflitto (ovvero quando viene modificata la stessa proprietà in blocchi
1220 diversi) hanno precedenza le definizioni più recenti.
1221
1222 Per esempio, se questo blocco
1223
1224 @example
1225 \layout @{
1226   \context @{
1227     \Voice
1228     \override TextScript.color = #magenta
1229     \override Glissando.thickness = #1.5
1230   @}
1231 @}
1232 @end example
1233
1234 viene posto dopo quello dell'esempio precedente, le sovrascritture di
1235 @code{'padding} e @code{'color} per @code{TextScript} sono combinate, mentre
1236 quella più recente di @code{'thickness} per @code{Glissando} sostituisce
1237 (o nasconde) quella precedente.
1238
1239 I blocchi @code{\layout} possono essere assegnati a delle variabili per
1240 poterli riusare successivamente, ma il modo in cui ciò funziona è
1241 leggermente ma significativamente diverso rispetto a scriverle davvero.
1242
1243 Se una variabile è definita in questo modo,
1244
1245 @example
1246 layoutVariable = \layout @{
1247   \context @{
1248     \Voice
1249     \override NoteHead.font-size = #4
1250   @}
1251 @}
1252 @end example
1253
1254 manterrà la configurazione attuale di @code{\layout} con l'aggiunta
1255 della sovrascrittura @code{NoteHead.font-size}, ma questa combinazione
1256 @emph{non} è salvata come la nuova configurazione corrente.  Attenzione
1257 al fatto che la @qq{configurazione corrente} viene letta quando la variabile
1258 è definita e non quando viene usata, dunque il contenuto della variabile
1259 dipende dalla sua posizione nel file di input.
1260
1261 La variabile può quindi essere usata all'interno di un altro
1262 blocco @code{\layout}, per esempio:
1263
1264 @example
1265 \layout @{
1266   \layoutVariable
1267   \context @{
1268     \Voice
1269     \override NoteHead.color = #red
1270   @}
1271 @}
1272 @end example
1273
1274 Un blocco @code{\layout} che contiene una variabile, come nell'esempio
1275 precedente, @emph{non} copia la configurazione corrente bensì usa il
1276 contenuto di @code{\layoutVariable} come configurazione di base per
1277 altre aggiunte.  Ciò significa che qualsiasi modifica definita tra la
1278 definizione della variabile e il momento in cui essa viene usata è perduta.
1279
1280 Se @code{layoutVariable} è definita (o inclusa con @code{\include}) subito
1281 prima di essere usata, il suo contenuto comprende soltanto la configurazione
1282 corrente più le sovrascritture definite al suo interno.  Quindi nell'esempio
1283 precedente che illustra l'uso di @code{\layoutVariable} il blocco @code{\layout}
1284 finale conterrebbe:
1285
1286 @example
1287   TextScript.padding = #1
1288   TextScript.color = #magenta
1289   Glissando.thickness = #1.5
1290   NoteHead.font-size = #4
1291   NoteHead.color = #red
1292 @end example
1293
1294 più le sovrascritture @code{indent} e @code{StaffGrouper}.
1295
1296 Ma se la variabile fosse già stata definita prima del primo blocco
1297 @code{\layout}, la configurazione corrente conterrebbe soltanto
1298
1299 @example
1300   NoteHead.font-size = #4 % (scritta nella definizione della variabile)
1301   NoteHead.color = #red % (aggiunta dopo l'uso della variabile)
1302 @end example
1303
1304 Se ben organizzate, le variabili @code{\layout} possono essere un
1305 valido strumento per strutturare le formattazioni dei sorgenti, e anche
1306 per ripristinare la configurazione di @code{\layout} a uno stato conosciuto.
1307
1308 @seealso
1309 Guida alla notazione:
1310 @ref{Modifica delle impostazioni predefinite di un contesto}.
1311
1312 Frammenti:
1313 @rlsr{Spacing}.
1314
1315
1316 @node Impostare la dimensione del rigo
1317 @subsection Impostare la dimensione del rigo
1318 @translationof Setting the staff size
1319
1320 @cindex tipo di carattere, impostare la dimensione
1321 @cindex rigo, impostare la dimensione
1322 @funindex layout file
1323 @funindex magnification->font-size
1324 @funindex magstep
1325 @funindex set-global-staff-size
1326 @funindex layout-set-staff-size
1327
1328 La dimensione del rigo (in inglese @strong{staff size}) è 20 punti, che
1329 corrispondono a un'altezza del rigo di 7.03mm (un punto è uguale a 100/7227
1330 di un pollice o a 2540/7227 mm).  La dimensione del rigo può essere
1331 modificata in tre modi:
1332
1333 @enumerate
1334
1335 @item
1336 Per impostare la dimensione del rigo globalmente per tutti i brani di un
1337 file (o di un blocco @code{\book}, per essere precisi), usare
1338 @code{set-global-staff-size}:
1339
1340 @example
1341 #(set-global-staff-size 14)
1342 @end example
1343
1344 @noindent
1345 L'esempio precedente imposta la dimensione del rigo globale a 14pt (4.92mm) e
1346 ridimensiona proporzionalmente tutti i tipi di carattere.
1347
1348 @item
1349 Per impostare la dimensione del rigo di una singola partitura in un libro, usare
1350 @code{layout-set-staff-size} all'interno del blocco @code{\layout} di quel brano:
1351
1352 @example
1353 \score @{
1354   @dots{}
1355   \layout @{
1356     #(layout-set-staff-size 14)
1357   @}
1358 @}
1359 @end example
1360
1361 @item
1362 Per impostare la dimensione del rigo di un singolo rigo di un sistema, usare
1363 il comando @code{\magnifyStaff}.  Per esempio, le partiture di musica da camera
1364 incise in modo tradizionale spesso usavano righi per pianoforte di 7mm mentre
1365 gli altri righi erano solitamente tra 3/5 e 5/7 più grandi (tra 60% e 71%).
1366 Per ottenere la proporzione 5/7, usare:
1367
1368 @example
1369 \score @{
1370   <<
1371     \new Staff \with @{
1372       \magnifyStaff #5/7
1373     @} @{ @dots{} @}
1374     \new PianoStaff @{ @dots{} @}
1375   >>
1376 @}
1377 @end example
1378
1379 Se si desidera una dimensione del tipo di carattere (@code{fontSize}) ben
1380 precisa, si può usare la seguente forma:
1381
1382 @example
1383 \score @{
1384   <<
1385     \new Staff \with @{
1386       \magnifyStaff #(magstep -3)
1387     @} @{ @dots{} @}
1388     \new PianoStaff @{ @dots{} @}
1389   >>
1390 @}
1391 @end example
1392
1393 Per emulare l'aspetto delle partiture incise coi metodi tradizionali, è meglio
1394 evitare di ridurre lo spessore delle linee del rigo.
1395
1396 @end enumerate
1397
1398
1399 @subheading Corpo automatico dei tipi di carattere a dimensioni diverse
1400
1401 Il font Emmentaler fornisce l'insieme di glifi musicali @emph{Feta} in otto
1402 dimensioni diverse, ciascuna calibrata per una specifica dimensione
1403 del rigo.  Più piccola è la dimensione del glifo, più @qq{grosso} diventa,
1404 per abbinarsi alle linee del rigo più spesse.  Le dimensioni dei glifi
1405 consigliate sono elencate nella seguente tabella:
1406
1407 @multitable @columnfractions .15 .2 .22 .2
1408 @item @b{nome del tipo di carattere} @tab @b{altezza del rigo (pt)} @tab @b{altezza del rigo (mm)} @tab @b{uso}
1409 @item feta11 @tab 11.22 @tab 3.9 @tab partiture tascabili
1410 @item feta13 @tab 12.60 @tab 4.4 @tab
1411 @item feta14 @tab 14.14 @tab 5.0 @tab
1412 @item feta16 @tab 15.87 @tab 5.6 @tab
1413 @item feta18 @tab 17.82 @tab 6.3 @tab canzonieri
1414 @item feta20 @tab 20    @tab 7.0 @tab parti standard
1415 @item feta23 @tab 22.45 @tab 7.9 @tab
1416 @item feta26 @tab 25.2  @tab 8.9 @tab @c modern rental material?
1417 @end multitable
1418
1419 @seealso
1420 Guida alla notazione:
1421 @ref{Impostare la dimensione del rigo},
1422 @ref{Il font Emmentaler}.
1423
1424 Frammenti:
1425 @rlsr{Spacing}.
1426
1427 @knownissues
1428 @code{layout-set-staff-size} non modifica la distanza tra le linee del rigo.
1429
1430
1431 @node Interruzioni
1432 @section Interruzioni
1433 @translationof Breaks
1434
1435 @menu
1436 * Interruzioni di linea::
1437 * Interruzioni di pagina::
1438 @end menu
1439
1440
1441 @node Interruzioni di linea
1442 @subsection Interruzioni di linea
1443 @translationof Line breaking
1444
1445 @funindex \break
1446 @funindex \noBreak
1447 @funindex \autoBreaksOff
1448 @funindex \autoBreaksOn
1449 @funindex \autoLineBreaksOff
1450 @funindex \autoLineBreaksOn
1451 @cindex manual line breaks
1452 @cindex breaking lines
1453
1454 Le interruzioni di linea di solito sono determinate automaticamente.  Sono
1455 decise in modo che le linee non sembrino né fitte né troppo spaziate, e che
1456 le linee consecutive abbiano una densità simile.
1457
1458 Per forzare manualmente un'interruzione di linea dopo una stanghetta, usare
1459 il comando @code{\break}:
1460
1461 @lilypond[quote,ragged-right,verbatim]
1462 \relative c'' {
1463   c4 c c c | \break
1464   c4 c c c |
1465 }
1466 @end lilypond
1467
1468 Per impostazione predefinita, un comando @code{\break} inserito nel mezzo di una
1469 misura viene ignorato (e apparirà un messaggio di avvertimento durante la
1470 compilazione del file LilyPond).  L'aggiunta di una stanghetta invisibile
1471 -- @w{@samp{\bar ""}} -- prima del comando @code{\break} forzerà l'interruzione
1472 di linea:
1473
1474 @lilypond[quote,ragged-right,verbatim]
1475 \relative c'' {
1476   c4 c c
1477   \bar "" \break
1478   c |
1479   c4 c c c |
1480 }
1481 @end lilypond
1482
1483 Un comando @code{\break} successivo a una stanghetta viene ignorato se la
1484 misura precedente termina nel mezzo di una nota (per esempio, quando un
1485 gruppo irregolare inizia in una misura e termina in un'altra).  In questo
1486 caso conviene togliere l'incisore @code{Forbid_line_break_engraver} dal
1487 contesto @code{Voice} e usare una costruzione musicale simultanea inserendo
1488 il @code{\break} nel punto giusto della seconda voce:
1489
1490 @lilypond[quote,ragged-right,verbatim]
1491 \new Voice \with {
1492   \remove "Forbid_line_break_engraver"
1493 } \relative {
1494   <<
1495     { c''2. \tuplet 3/2 { c4 c c } c2. | }
1496     { s1 | \break s1 | }
1497   >>
1498 }
1499 @end lilypond
1500
1501 Analogalmente, le interruzioni di linea vengono ignorate quando le travature
1502 oltrepassano una stanghetta.  Tale comportamento predefinito può
1503 essere modificato col comando @code{\override Beam.breakable = ##t}:
1504
1505 @lilypond[quote,ragged-right,verbatim]
1506 \relative c'' {
1507   \override Beam.breakable = ##t
1508   c2. c8[ c | \break
1509   c8 c] c2. |
1510 }
1511 @end lilypond
1512
1513 Il comando @code{\noBreak} impedisce un'interruzione di linea sulla
1514 stanghetta in cui è inserito.
1515
1516 In una partitura, l'interruzione di linea automatica è vietata per
1517 la musica compresa tra i comandi @code{\autoLineBreaksOff} e
1518 @code{\autoLineBreaksOn}.  Per impedire anche le interruzioni di
1519 pagina, usare i comandi @code{\autoBreaksOff} e @code{\autoBreaksOn}.
1520 Le interruzioni manuali non sono interessate da questi comandi.
1521 Nota che bloccare le interruzioni di linea automatiche potrebbe
1522 far andare la musica oltre il margine destro se questa non può
1523 essere contenuta in una linea.
1524
1525 Le interruzioni di linea automatiche (ma non le interruzioni di pagina)
1526 possono essere abilitate per singole stanghette usando
1527 @code{\once \autoLineBreaksOn} all'inizio di una stanghetta.
1528 Ciò identifica un'interruzione di linea permessa, invece che forzata.
1529
1530 Le impostazioni fondamentali che influenzano la spaziatura della linea
1531 sono @code{indent} e @code{line-width}, impostate nel blocco
1532 @code{\layout}: regolano l'indentazione della prima linea e la
1533 lunghezza delle linee.
1534
1535 Se @code{ragged-right} è impostato su vero nel blocco @code{\layout}, allora
1536 i sistemi terminano alla loro naturale lunghezza orizzontale, invece di
1537 essere allungati orizzontalmente per riempire l'intera linea.  Ciò è
1538 utile per brevi frammenti e per verificare quanto è stretta la spaziatura
1539 naturale.
1540
1541 @c TODO Check and add para on default for ragged-right
1542
1543 L'opzione @code{ragged-last} è simile a @code{ragged-right}, ma agisce
1544 soltanto sull'ultima linea del brano.
1545
1546 @example
1547 \layout @{
1548   indent = 0\mm
1549   line-width = 150\mm
1550   ragged-last = ##t
1551 @}
1552 @end example
1553
1554 @cindex interruzioni di linea regolari
1555 @cindex musica a quattro battute
1556
1557 Per inserire interruzioni di linea a intervalli regolari usare @code{\break}
1558 separato da pause spaziatrici e ripetuto con @code{\repeat}.  Per esempio,
1559 per interrompere le seguenti 28 misure (considerando un tempo di 4/4) esattamente
1560 ogni 4 misure, usare:
1561
1562 @example
1563 <<
1564   \repeat unfold 7 @{
1565     s1 \noBreak s1 \noBreak
1566     s1 \noBreak s1 \break
1567   @}
1568   @{ @var{la vera musica@dots{}} @}
1569 >>
1570 @end example
1571
1572
1573 @predefined
1574 @code{\break},
1575 @code{\noBreak},
1576 @code{\autoBreaksOff},
1577 @code{\autoBreaksOn},
1578 @code{\autoLineBreaksOff},
1579 @code{\autoLineBreaksOn}.
1580 @endpredefined
1581
1582 @snippets
1583
1584 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
1585 {using-an-extra-voice-for-breaks.ly}
1586
1587 @seealso
1588 Guida alla notazione:
1589 @ref{paper variables for line breaking}
1590 @ref{The layout block}.
1591
1592 Frammenti:
1593 @rlsr{Spacing}.
1594
1595 Guida al funzionamento interno:
1596 @rinternals{LineBreakEvent}.
1597
1598 @knownissues
1599
1600 L'inserimento dei comandi @code{\autoLineBreaksOff} o @code{\autoBreaksOff}
1601 prima della musica produrrà dei messaggi di errore.  Inserire sempre questi
1602 comandi dopo la musica.
1603
1604
1605 @node Interruzioni di pagina
1606 @subsection Interruzioni di pagina
1607 @translationof Page breaking
1608
1609 Questa sezione descrive i diversi metodi di interruzione di pagina e
1610 spiega come modificarli.
1611
1612 @menu
1613 * Interruzione di pagina manuale::
1614 * Interruzione di pagina ottimale::
1615 * Interruzione di pagina minimale::
1616 * Interruzione di pagina di una pagina::
1617 * Interruzione di pagina su una linea::
1618 * Interruzione di pagina su una linea con altezza automatica::
1619 * Voltata di pagina ottimale::
1620 @end menu
1621
1622
1623 @node Interruzione di pagina manuale
1624 @unnumberedsubsubsec Interruzione di pagina manuale
1625 @translationof Manual page breaking
1626
1627 @funindex \pageBreak
1628 @funindex \noPageBreak
1629 @funindex \autoPageBreaksOn
1630 @funindex \autoPageBreaksOff
1631 @cindex page breaking, manual
1632
1633 L'interruzione di pagina predefinita può essere sovrascritta con i
1634 comandi @code{\pageBreak} o @code{\noPageBreak}.  Questi comandi,
1635 analoghi a @code{\break} e @code{\noBreak}, devono essere
1636 inseriti dopo una stanghetta e forzano o proibiscono l'interruzione
1637 di pagina in quel punto.  Ovviamente il comando @code{\pageBreak}
1638 forza anche un'interruzione di linea.
1639
1640 I comandi @code{\pageBreak} e @code{\noPageBreak} possono essere
1641 inseriti anche nel livello superiore, tra le partiture e i testi
1642 (nel blocco @code{markup}) di livello superiore.
1643
1644 In un brano, le interruzioni di pagina automatiche sono vietate per
1645 la musica compresa tra i comandi @code{\autoPageBreaksOff} e
1646 @code{\autoPageBreaksOn}.  Le interruzioni di pagina manuali non
1647 sono interessate da questi comandi.
1648
1649 Esistono impostazioni analoghe a @code{ragged-right} e
1650 @code{ragged-last} che hanno lo stesso effetto sulla spaziatura
1651 verticale.  Se @code{ragged-bottom} è impostato su @code{#t}, i
1652 sistemi non saranno giustificati verticalmente.  Quando
1653 @code{ragged-last-bottom} è impostato su @code{#t} (valore
1654 predefinito), è permesso dello spazio vuoto in fondo all'ultima
1655 pagina (o in fondo all'ultima pagina di ciascun
1656 @code{\bookpart}).  Vedi
1657 @ref{Fixed vertical spacing paper variables,,Variabili fisse della spaziatura verticale di @code{@bs{}paper}}.
1658
1659 Le interruzioni di pagina sono calcolate dalla funzione @code{page-breaking}.
1660 LilyPond fornisce vari algoritmi per calcolare le interruzioni di pagina, tra
1661 cui @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} e
1662 @code{ly:minimal-breaking}.  Quello predefinito è
1663 @code{ly:optimal-breaking}, ma il valore può essere modificato nel
1664 blocco @code{\paper}:
1665
1666 @example
1667 \paper @{
1668   page-breaking = #ly:page-turn-breaking
1669 @}
1670 @end example
1671
1672 @funindex \bookpart
1673
1674 Quando un libro ha molte partiture e pagine, il problema delle interruzioni
1675 di pagina potrebbe essere difficile da risolvere e richiedere lunghi tempi
1676 di elaborazione e molta memoria.  Per semplificare il processo di interruzione
1677 delle pagine, si usano i blocchi @code{\bookpart} per dividere il libro in
1678 varie parti: in questo modo l'interruzione di pagina si verifica separatamente
1679 in ciascuna parte.  Si possono anche usare algoritmi di interruzione di
1680 pagina diversi per le diverse parti del libro.
1681
1682 @example
1683 \bookpart @{
1684   \header @{
1685     subtitle = "Prefazione"
1686   @}
1687   \paper @{
1688      %% In una parte contenente soprattutto testo,
1689      %% ly:minimal-breaking potrebbe essere preferibile
1690      page-breaking = #ly:minimal-breaking
1691   @}
1692   \markup @{ @dots{} @}
1693   @dots{}
1694 @}
1695 \bookpart @{
1696   %% In questa parte, contenente musica, si usa l'algoritmo di
1697   %% interruzione di pagina ottimale.
1698   \header @{
1699     subtitle = "Primo movimento"
1700   @}
1701   \score @{ @dots{} @}
1702   @dots{}
1703 @}
1704 @end example
1705
1706
1707 @predefined
1708 @code{\pageBreak},
1709 @code{\noPageBreak},
1710 @code{\autoPageBreaksOn},
1711 @code{\autoPageBreaksOff}.
1712 @endpredefined
1713
1714 @seealso
1715 Guida alla notazione:
1716 @ref{paper variables for page breaking}.
1717
1718 Frammenti:
1719 @rlsr{Spacing}.
1720
1721 @knownissues
1722
1723 Il prefisso @code{\once} non funziona con i comandi @code{\autoPageBreaksOn}
1724 e @code{\autoPageBreaksOff}.  Se l'interruzione di pagina automatica è
1725 disabilitata e poi viene abilitata per permettere un'interruzione di
1726 pagina, deve restare attiva per alcune battute (il numero preciso di
1727 battute dipende dalla partitura) prima di essere disattivata, altrimenti
1728 la possibilità di interrompere la pagina non verrà considerata.
1729
1730
1731 @node Interruzione di pagina ottimale
1732 @unnumberedsubsubsec Interruzione di pagina ottimale
1733 @translationof Optimal page breaking
1734
1735 @funindex ly:optimal-breaking
1736
1737 La funzione @code{ly:optimal-breaking} è il metodo predefinito di LilyPond
1738 per determinare le interruzioni di pagina.  Tenta di individuare un'interruzione
1739 di pagina che minimizzi la densità e l'allungamento, sia orizzontalmente che
1740 verticalmente.  Diversamente da @code{ly:page-turn-breaking}, non prende in
1741 considerazione le voltate di pagina.
1742
1743 @seealso
1744 Frammenti:
1745 @rlsr{Spacing}.
1746
1747
1748 @node Interruzione di pagina minimale
1749 @unnumberedsubsubsec Interruzione di pagina minimale
1750 @translationof Minimal page breaking
1751
1752 @funindex ly:minimal-breaking
1753
1754 La funzione @code{ly:minimal-breaking} fa dei calcoli minimi
1755 per valutare l'interruzione di pagina: riempie una pagina col
1756 maggior numero possibile di sistemi prima di passare a quella
1757 successiva.  Dunque potrebbe essere preferibile per le partiture
1758 con molte pagine, per le quali le altre funzioni di interruzione
1759 di pagina potrebbero essere troppo lente o richiedere troppa
1760 memoria, o con molto testo.  Si abilita con:
1761
1762 @example
1763 \paper @{
1764   page-breaking = #ly:minimal-breaking
1765 @}
1766 @end example
1767
1768 @seealso
1769 Frammenti:
1770 @rlsr{Spacing}.
1771
1772
1773 @node Interruzione di pagina di una pagina
1774 @unnumberedsubsubsec Interruzione di pagina di una pagina
1775 @translationof One-page page breaking
1776
1777 @funindex ly:one-page-breaking
1778
1779 La funzione @code{ly:one-page-breaking} è un algoritmo di interruzione di
1780 pagina per casi speciali che regola automaticamente l'altezza della pagina
1781 per farci entrare la musica, in modo che stia tutto in una sola pagina.
1782 La variabile @code{paper-height} del blocco paper viene ignorata, ma le
1783 altre impostazioni funzionano normalmente.  In particolare, la spaziatura
1784 tra l'ultimo sistema (o il testo markup di livello superiore) e il piè di pagina
1785 può essere personalizzata grazie a @code{last-bottom-spacing} nel blocco paper.
1786 La larghezza della pagina non viene modificata ma può essere impostata con
1787 @code{paper-width} nel blocco paper.
1788
1789 @knownissues
1790 @code{ly:one-page-breaking} non è attualmente compatibile con
1791 @code{\bookpart}.
1792
1793
1794 @node Interruzione di pagina su una linea
1795 @unnumberedsubsubsec Interruzione di pagina su una linea
1796 @translationof One-line page breaking
1797
1798 @funindex ly:one-line-breaking
1799
1800 La funzione @code{ly:one-line-breaking} è un algoritmo di interruzione
1801 di pagina per uso speciale in quanto pone ogni brano su una sola pagina e
1802 una singola linea.  Non appaiono né titoli né margini, ma viene
1803 mostrato solo il brano musicale.
1804
1805 La larghezza della pagina è regolata in modo che il brano più
1806 lungo stia su una sola linea.  In particolare, le variabili @code{paper-width},
1807 @code{line-width} e @code{indent} del blocco @code{\paper} vengono
1808 ignorate, sebbene @code{left-margin} e @code{right-margin} siano
1809 comunque considerate.  L'altezza della pagina resta invariata.
1810
1811
1812 @node Interruzione di pagina su una linea con altezza automatica
1813 @unnumberedsubsubsec Interruzione di pagina su una linea con altezza automatica
1814 @translationof One-line-auto-height page breaking
1815
1816 @funindex ly:one-line-auto-height-breaking
1817
1818 La funzione @code{ly:one-line-auto-height-breaking} funziona proprio come
1819 @code{ly:one-line-breaking} con la differenza che l'altezza della pagina
1820 viene modificata automaticamente per adattarsi all'altezza della musica.
1821 Più precisamente, la variabile @code{paper-height} del blocco @code{\paper}
1822 viene impostata in modo che abbracci l'altezza della partitura più alta
1823 e i margini superiore e inferiore (@code{top-margin} e @code{bottom-margin}).
1824
1825 Fare attenzione al fatto che l'impostazione @code{top-system-spacing} avrà
1826 effetto sulla posizione verticale della musica.  Impostarla su @code{##f} in
1827 un blocco @code{\paper} per posizionare la musica tra i margini superiore e
1828 inferiore.
1829
1830
1831 @node Voltata di pagina ottimale
1832 @unnumberedsubsubsec Voltata di pagina ottimale
1833 @translationof Optimal page turning
1834
1835 @funindex ly:page-turn-breaking
1836
1837 È spesso necessario trovare una configurazione delle interruzioni di
1838 pagina in cui ci sia una pausa al termine di ogni due pagine.
1839 In questo modo il musicista può voltare la pagina senza perdere
1840 le note.  La funzione @code{ly:page-turn-breaking} tenta di trovare
1841 un'interruzione di pagina che minimizzi densità e allungamento, ma
1842 con l'ulteriore restrizione che le voltate di pagina sono permesse
1843 solo in punti specifici.
1844
1845 Ci sono due passi da seguire per usare questa funzione.  Prima
1846 occorre abilitarla nel blocco @code{\paper}, come è spiegato in
1847 @ref{Page breaking}.  Poi bisogna indicare alla funzione dove
1848 sono permesse le interruzioni di pagina.
1849
1850 Ci sono due modi per fare il secondo passo.  Si può specificare
1851 manualmente ogni potenziale voltata di pagina, inserendo
1852 @code{\allowPageTurn} nei punti adatti del file di input.
1853
1854 Oppure, se ciò è troppo noioso, si può aggiungere l'incisore
1855 @code{Page_turn_engraver} a un contesto Staff o Voice.  L'incisore
1856 @code{Page_turn_engraver} analizzerà il contesto in cerca di sezioni
1857 senza note (non cerca pause, bensì l'assenza di note, in modo che
1858 la polifonia su un singolo rigo con pause in una delle parti non
1859 confonda @code{Page_turn_engraver}).  Quando trova una sezione
1860 senza note abbastanza lunga, @code{Page_turn_engraver} inserirà il
1861 comando @code{\allowPageTurn} nella stanghetta finale di quella
1862 sezione, a meno che non ci sia una stanghetta @q{speciale} (come
1863 una doppia stanghetta), nel qual caso il comando @code{\allowPageTurn}
1864 sarà inserito nella stanghetta finale @qq{speciale} della sezione.
1865
1866 @funindex minimumPageTurnLength
1867 L'incisore @code{Page_turn_engraver} legge la proprietà di contesto
1868 @code{minimumPageTurnLength} per determinare quanto deve essere lunga
1869 una sezione senza note prima che una voltata di pagina sia considerata.
1870 Il valore predefinito di @code{minimumPageTurnLength} è
1871 @code{(ly:make-moment 1/1)}.  Per disabilitare le voltate di pagina,
1872 impostarla su un valore @qq{molto grande}.
1873
1874 @example
1875 \new Staff \with @{ \consists "Page_turn_engraver" @}
1876 @{
1877   a4 b c d |
1878   R1 | % voltata di pagina permessa qui
1879   a4 b c d |
1880   \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
1881   R1 | % voltata di pagina non permessa qui
1882   a4 b r2 |
1883   R1*2 | % voltata di pagina permessa qui
1884   a1
1885 @}
1886 @end example
1887
1888 @funindex minimumRepeatLengthForPageTurn
1889 Quando si usano ripetizioni con finali alternativi, l'incisore @code{Page_turn_engraver}
1890 permetterà una voltata di pagina durante la ripetizione soltanto se c'è
1891 abbastanza tempo all'inizio e alla fine della ripetizione per voltare
1892 indietro la pagina.  Se la ripetizione è troppo breve, si può usare
1893 @code{Page_turn_engraver} per @emph{disabilitare} le voltate impostando
1894 un valore appropriato per la proprietà di contesto @code{minimumRepeatLengthForPageTurn}.
1895 In questo caso @code{Page_turn_engraver} consentirà le voltate soltanto nelle
1896 ripetizioni la cui durata sia maggiore del valore specificato.
1897
1898 I comandi per le voltate di pagina (@code{\pageTurn}, @code{\noPageTurn}
1899 e @code{\allowPageTurn}), possono essere usati anche nel livello superiore,
1900 nei blocchi markup di livello superiore e tra una partitura e l'altra.
1901
1902 @predefined
1903 @funindex \pageTurn
1904 @code{\pageTurn},
1905 @funindex \noPageTurn
1906 @code{\noPageTurn},
1907 @funindex \allowPageTurn
1908 @code{\allowPageTurn}.
1909 @endpredefined
1910
1911 @seealso
1912 Guida alla notazione:
1913 @ref{paper variables for line breaking}.
1914
1915 Frammenti:
1916 @rlsr{Spacing}.
1917
1918 @knownissues
1919 Usare soltanto un incisore @code{Page_turn_engraver} per partitura.  Se ce
1920 n'è più d'uno, interferiranno uno con l'altro.
1921
1922
1923 @seealso
1924 Guida alla notazione:
1925 @ref{Vertical spacing}.
1926
1927 Frammenti:
1928 @rlsr{Spacing}.
1929
1930
1931 @node Spaziatura verticale
1932 @section Spaziatura verticale
1933 @translationof Vertical spacing
1934
1935 @cindex vertical spacing
1936 @cindex spacing, vertical
1937
1938 La spaziatura verticale è regolata da tre elementi: la quantità di
1939 spazio disponibile (ovvero il formato e i margini), la quantità di
1940 spazio tra i sistemi e la quantità di spazio tra i righi di un
1941 sistema.
1942
1943 @menu
1944 * Spaziatura verticale flessibile all'interno dei sistemi::
1945 * Posizionamento esplicito di righi e sistemi::
1946 * Elusione delle collisioni verticali::
1947 @end menu
1948
1949
1950 @node Spaziatura verticale flessibile all'interno dei sistemi
1951 @subsection Spaziatura verticale flessibile all'interno dei sistemi
1952 @translationof Flexible vertical spacing within systems
1953
1954 @cindex distanza tra i righi
1955 @cindex righi, distanza
1956 @cindex spazio tra i righi
1957 @cindex spazio dentro i sistemi
1958
1959 Tre meccanismi distinti regolano la spaziatura verticale flessibile
1960 all'interno dei sistemi, uno per ognuna delle seguenti categorie:
1961
1962 @itemize
1963
1964 @item
1965 @emph{righi non raggruppati},
1966
1967 @item
1968 @emph{righi raggruppati} (righi con un gruppo come
1969 @code{ChoirStaff}, etc.), e
1970
1971 @item
1972 @emph{linee che non sono righi} (come @code{Lyrics}, @code{ChordNames},
1973 etc.).
1974
1975 @end itemize
1976
1977 @c TODO: Clarify this.  This almost implies that non-staff lines
1978 @c       have NO effect on the spacing between staves.  -mp
1979
1980 L'altezza di ogni sistema è determinata in due fasi.  Prima vengono
1981 spaziati tutti i righi in base alla quantità di spazio disponibile.
1982 Poi le linee che non sono righi sono distribuite tra i righi.
1983
1984 Nota che i meccanismi di spaziatura trattati in questa sezione regolano
1985 soltanto la spaziatura verticale dei righi e delle linee (che non sono
1986 righi) all'interno di singoli sistemi.  La spaziatura verticale tra
1987 sistemi, partiture, testi e margini separati è regolata dalle variabili
1988 @code{\paper} trattate in
1989 @ref{Flexible vertical spacing paper variables,,Variabili @code{@bs{}paper} della spaziatura verticale flessibile}.
1990
1991 @menu
1992 * Proprietà della spaziatura dentro un sistema::
1993 * Spaziatura dei righi non raggruppati::
1994 * Spaziatura dei righi raggruppati::
1995 * Spaziatura delle linee che non sono righi::
1996 @end menu
1997
1998
1999 @node Proprietà della spaziatura dentro un sistema
2000 @unnumberedsubsubsec Proprietà della spaziatura dentro un sistema
2001 @translationof Within-system spacing properties
2002
2003 @funindex staff-affinity
2004 @funindex staffgroup-staff-spacing
2005 @funindex staff-staff-spacing
2006 @funindex nonstaff-unrelatedstaff-spacing
2007 @funindex nonstaff-relatedstaff-spacing
2008 @funindex nonstaff-nonstaff-spacing
2009 @funindex default-staff-staff-spacing
2010 @funindex minimum-Y-extent
2011 @funindex extra-offset
2012 @funindex self-alignment-X
2013 @funindex X-offset
2014 @funindex VerticalAxisGroup
2015
2016 I meccanismi di spaziatura verticale dentro un sistema sono regolati da
2017 due gruppi di proprietà dei grob.  Il primo gruppo è associato al grob
2018 @code{VerticalAxisGroup}, creato da tutti i righi e tutte le linee che
2019 non sono righi.  Il secondo gruppo è associato al grob
2020 @code{StaffGrouper}, che può essere creato da gruppi di righi, ma
2021 solo se richiamato esplicitamente.  Queste proprietà sono descritte
2022 una per una alla fine di questa sezione.
2023
2024 Il nome di queste proprietà (con l'eccezione di @code{staff-affinity})
2025 hanno il formato @code{@var{elemento1}-@var{elemento2}-spacing}, dove
2026 @code{@var{elemento1}} e @code{@var{elemento2}} sono gli elementi di
2027 cui determinare la distanza.  Nota che @code{@var{elemento2}} non è
2028 necessariamente sotto @code{@var{elemento1}}; per esempio,
2029 @code{nonstaff-relatedstaff-spacing} prenderà le misure verso l'alto a
2030 partire dalla linea che non è un rigo (nonstaff) se
2031 @code{staff-affinity} è impostato su @code{UP}.
2032
2033 Ogni distanza è calcolata tra i @emph{punti di riferimento} dei due
2034 elementi.  Il punto di riferimento di un rigo è il centro verticale
2035 del suo @code{StaffSymbol} (ovvero la linea centrale se
2036 @code{line-count} (il numero di linee) è dispari; lo spazio centrale
2037 se @code{line-count} è pari).  I punti di riferimento per ciascuna linea
2038 che non è un rigo sono elencati nella seguente tabella:
2039
2040 @multitable {Non-staff line} {Reference point}
2041 @headitem Linea non-rigo     @tab Punto di riferimento
2042 @item @code{ChordNames}      @tab linea di base
2043 @item @code{NoteNames}       @tab linea di base
2044 @item @code{Lyrics}          @tab linea di base
2045 @item @code{Dynamics}        @tab metà altezza di @q{m}
2046 @item @code{FiguredBass}     @tab punto più alto
2047 @item @code{FretBoards}      @tab linea più alta
2048 @end multitable
2049
2050 Nell'immagine seguente, le linee orizzontali indicano le posizioni di
2051 questi punti di riferimento:
2052
2053 @lilypond[quote,noragged-right,line-width=110\mm]
2054 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
2055
2056 alignToZero = \with {
2057   \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
2058   \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
2059   \override VerticalAxisGroup.staff-affinity = #DOWN
2060   \remove Text_engraver % impedisce di averne due
2061   \consists Text_engraver
2062 }
2063 lowerCaseChords = \with {
2064   chordNameLowercaseMinor = ##t
2065 }
2066 labelContext =
2067 #(define-music-function
2068      (context)
2069      (string?)
2070      #{ s1*0^\markup { \upright {\typewriter #context } } #})
2071
2072 \layout {
2073   \context { \Dynamics    \alignToZero }
2074   \context { \FiguredBass \alignToZero }
2075   \context { \Lyrics      \alignToZero }
2076   \context { \NoteNames   \alignToZero }
2077   \context { \ChordNames  \alignToZero \lowerCaseChords }
2078   \context { \FretBoards  \alignToZero }
2079   \context { \Score
2080     \omit BarLine
2081     \override DynamicText.self-alignment-X = #-1
2082     \override FretBoard.X-offset = #1.75
2083     \override InstrumentName.minimum-Y-extent = #'(-1 . 2)
2084     \textLengthOn
2085     \omit TimeSignature
2086   }
2087 }
2088
2089 %% Questi contesti hanno punti di riferimento nella linea di base:
2090 %%   ChordNames, NoteNames, and Lyrics
2091 <<
2092   \new ChordNames { \chords { \labelContext "ChordNames"  g1:m } }
2093   \new NoteNames { s1 |\labelContext "NoteNames"  g1 | }
2094   \new Lyrics { \lyrics { \skip 1*2 | \labelContext "Lyrics" ghijk1 | } }
2095   \new RhythmicStaff \with { instrumentName = #"linea di base " } s1*3
2096 >>
2097
2098 %% Il punto di riferimento per Dynamics è la linea centrale della 'm' nel tipo di carattere
2099 <<
2100   \new Dynamics { \labelContext "Dynamics" s1\mp s\fp }
2101   \new RhythmicStaff \with { instrumentName = #"metà altezza " } s1*3
2102 >>
2103
2104 %% Il punto di riferimento per FiguredBass è il suo punto più alto
2105 <<
2106   \new FiguredBass { \labelContext "FiguredBass" \figuremode { <6 5>1 } }
2107   \new RhythmicStaff \with { instrumentName = #"punto più alto " } s1
2108 >>
2109
2110 %% Il punto di riferimento per FretBoards è la linea più alta
2111 \include "predefined-guitar-fretboards.ly"
2112 <<
2113   \new FretBoards { \labelContext "FretBoards" \chordmode { e1 } }
2114   \new RhythmicStaff \with { instrumentName = #"linea più alta " } s1
2115 >>
2116 @end lilypond
2117
2118 Tutte le proprietà di spaziatura verticale del grob (eccetto
2119 @code{staff-affinity}) usano la stessa struttura della lista
2120 associativa usata dalle variabili di spaziatura di @code{\paper}
2121 trattate in
2122 @ref{Flexible vertical spacing paper variables,,Variabili @code{@bs{}paper} della spaziatura verticale flessibile}.
2123 Metodi specifici per modificare queste liste sono spiegati in
2124 @ref{Modifying alists}.  Le proprietà dei grob devono essere
2125 modificate con un comando @code{\override} dentro un blocco
2126 @code{\score} o @code{\layout} e non in un blocco
2127 @code{\paper}.
2128
2129 L'esempio seguente illustra i due modi con cui si possono modificare
2130 queste liste associative (alist).  La prima dichiarazione trasforma un
2131 elemento-valore singolarmente, mentre la seconda ridefinisce
2132 completamente la proprietà:
2133
2134 @example
2135 \new Staff \with @{
2136   \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2137 @} @{ @dots{} @}
2138
2139 \new Staff \with @{
2140   \override VerticalAxisGroup.default-staff-staff-spacing =
2141     #'((basic-distance . 10)
2142        (minimum-distance . 9)
2143        (padding . 1)
2144        (stretchability . 10))
2145 @} @{ @dots{} @}
2146 @end example
2147
2148 Per cambiare le impostazioni di spaziatura globalmente, inserirle in
2149 un blocco @code{\layout}:
2150
2151 @example
2152 \layout @{
2153   \context @{
2154     \Staff
2155     \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2156   @}
2157 @}
2158 @end example
2159
2160 Le impostazioni predefinite delle proprietà di spaziatura verticale dei
2161 grob sono elencate in @rinternals{VerticalAxisGroup} e
2162 @rinternals{StaffGrouper}.  Le modifiche predefinite con @code{\override}
2163 per tipologie specifiche di linee che non sono righi sono elencate
2164 nelle descrizioni del relativo contesto in @rinternals{Contexts}.
2165
2166
2167 @subsubheading Proprietà del grob @code{VerticalAxisGroup}
2168
2169 Le proprietà di @code{VerticalAxisGroup} sono solitamente modificate
2170 con un @code{\override} nel livello @code{Staff} (o equivalente).
2171
2172 @table @code
2173 @item staff-staff-spacing
2174
2175 Usata per determinare la distanza tra il rigo corrente e il rigo
2176 inferiore nello stesso sistema, anche se tra i due si trovano una o
2177 più linee che non sono righi (come @code{Lyrics}).
2178 Non è applicata all'ultimo rigo di un sistema.
2179
2180 Inizialmente, la proprietà @code{staff-staff-spacing} di un
2181 @code{VerticalAxisGroup} è una funzione Scheme che applica le
2182 proprietà di @code{StaffGrouper} se il rigo fa parte di un
2183 gruppo, o la proprietà @code{default-staff-staff-spacing} del rigo
2184 altrimenti.  Questo permette ai righi di essere spaziati diversamente
2185 quando sono raggruppati.  Per ottenere una spaziatura uniforme
2186 indipendentemente dal raggruppamento, questa funzione può essere
2187 sostituita da un alist di spaziatura flessibile, usando la forma
2188 di override che ridefinisce completamente la variabile, come mostrato
2189 prima.
2190
2191 @item default-staff-staff-spacing
2192 Un alist di spaziatura flessibile che definisce la proprietà
2193 @code{staff-staff-spacing} usata per i righi isolati, a meno che
2194 @code{staff-staff-spacing} non sia stata impostata esplicitamente
2195 con un @code{\override}.
2196
2197 @item staff-affinity
2198 La direzione del rigo da usare per spaziare la linea che non è un rigo.
2199 Le opzioni sono @code{UP} (su), @code{DOWN} (giù) e
2200 @code{CENTER} (centro).  Se impostata su @code{CENTER}, la linea
2201 fuori dal rigo si troverà in un punto equidistante tra i due righi
2202 più vicini su qualunque lato, a meno che delle collisioni o altre
2203 costrizioni di spazio non lo impediscano.  Linee (che non sono righi)
2204 adiacenti dovrebbero avere un valore di @code{staff-affinity} che
2205 non cresce: per esempio, una linea che non è un rigo impostata su
2206 @code{UP} non deve seguire immediatamente una linea impostata su
2207 @code{DOWN}.  Linee che non sono righi in cima a un sistema devono usare
2208 @code{DOWN}; quelle in fondo @code{UP}.  Impostando
2209 @code{staff-affinity} per un rigo, questo sarà trattato come
2210 una linea che non è un rigo.  Impostando @code{staff-affinity} su @code{#f},
2211 una linea che non è un rigo sarà trattata come un rigo.  Impostando
2212 @code{staff-affinity} su @code{UP}, @code{CENTER} o @code{DOWN},
2213 un rigo verrà spaziato come se fosse una linea che non è un rigo.
2214
2215 @item nonstaff-relatedstaff-spacing
2216 La distanza fra la linea (che non è un rigo) corrente e il rigo più
2217 vicino nella direzione di @code{staff-affinity}, se non ci sono
2218 linee che non sono righi tra le due e @code{staff-affinity} è
2219 impostato su @code{UP} o @code{DOWN}.  Se @code{staff-affinity} è
2220 impostato su @code{CENTER}, viene usato @code{nonstaff-relatedstaff-spacing}
2221 per i righi più vicini su @emph{entrambi} i lati, anche se appaiono
2222 altre linee tra quella corrente e uno qualsiasi dei righi.  Ciò
2223 significa che il posizionamento di una linea dipende sia dai righi
2224 che dalle linee circostanti.  Impostando la proprietà @code{stretchability}
2225 di uno di questi tipi di spaziatura su un piccolo valore, quella spaziatura
2226 sarà dominante.  Impostando @code{stretchability} su un grande valore, quella
2227 spaziatura avrà poco effetto.
2228
2229 @item nonstaff-nonstaff-spacing
2230 La distanza fra la linea (che non è un rigo) corrente e quella successiva
2231 nella direzione di @code{staff-affinity}, se entrambe sono sullo stesso
2232 lato del rigo in questione e se @code{staff-affinity} è impostata su
2233 @code{UP} o @code{DOWN}.
2234
2235 @item nonstaff-unrelatedstaff-spacing
2236 La distanza fra la linea (che non è un rigo) corrente e il rigo nella
2237 direzione opposta rispetto a @code{staff-affinity}, se non ci sono
2238 altre linee tra i due e se @code{staff-affinity} è impostato su
2239 @code{UP} o @code{DOWN}.  Ciò può servire, per esempio, a imporre
2240 un padding minimo tra una linea @code{Lyrics} e il rigo al quale non
2241 appartiene.
2242 @end table
2243
2244
2245 @subsubheading Proprietà del grob @code{StaffGrouper}
2246
2247 Le proprietà di @code{StaffGrouper} sono solitamente modificate con un
2248 @code{\override} nel livello @code{StaffGroup} (o livello equivalente).
2249
2250 @table @code
2251 @item staff-staff-spacing
2252 La distanza tra righi consecutivi del gruppo di righi
2253 corrente.  La proprietà @code{staff-staff-spacing} del grob
2254 @code{VerticalAxisGroup} di un singolo rigo può essere
2255 sovrascritta con varie impostazioni di spaziatura per quel rigo.
2256
2257 @item staffgroup-staff-spacing
2258 La distanza tra l'ultimo rigo del gruppo di righi corrente e
2259 il rigo immediatamente successivo nello stesso sistema, anche se
2260 tra i due righi ci sono una o più linee che non sono righi (come
2261 @code{Lyrics}).  Non è applicata al rigo inferiore di un sistema.  La
2262 proprietà @code{staff-staff-spacing} del grob @code{VerticalAxisGroup}
2263 di un singolo rigo può essere sovrascritta con varie impostazioni di
2264 spaziatura per quel rigo.
2265 @end table
2266
2267 @seealso
2268 Guida alla notazione:
2269 @ref{Flexible vertical spacing paper variables,,Variabili @code{@bs{}paper} della spaziatura verticale flessibile},
2270 @ref{Modifying alists}.
2271
2272 File installati:
2273 @file{ly/engraver-init.ly},
2274 @file{scm/define-grobs.scm}.
2275
2276 Guida al funzionamento interno:
2277 @rinternals{Contexts},
2278 @rinternals{VerticalAxisGroup},
2279 @rinternals{StaffGrouper}.
2280
2281
2282 @node Spaziatura dei righi non raggruppati
2283 @unnumberedsubsubsec Spaziatura dei righi non raggruppati
2284 @translationof Spacing of ungrouped staves
2285
2286 I @emph{righi} (come @code{Staff}, @code{DrumStaff},
2287 @code{TabStaff}, etc.) sono contesti che possono contenere uno o
2288 più contesti voce, ma non possono contenere altri righi.
2289
2290 Le seguenti proprietà influenzano la spaziatura di righi @emph{non raggruppati}:
2291
2292 @itemize
2293 @item Proprietà di @code{VerticalAxisGroup}:
2294 @itemize
2295 @item @code{default-staff-staff-spacing}
2296 @item @code{staff-staff-spacing}
2297 @end itemize
2298 @end itemize
2299
2300 Queste proprietà del grob sono state descritte una a una in precedenza; vedi
2301 @ref{Within-system spacing properties}.
2302
2303 Altre proprietà entrano in gioco per i righi che sono parte di un gruppo;
2304 vedi @ref{Spacing of grouped staves}.
2305
2306 L'esempio seguente mostra come la proprietà @code{default-staff-staff-spacing}
2307 possa influenzare la spaziatura di righi non raggruppati.  Le stesse
2308 modifiche applicate a @code{staff-staff-spacing} avrebbero lo stesso
2309 effetto, ma verrebbero applicate anche nel caso in cui i righi siano
2310 combinati in uno o più gruppi.
2311
2312 @lilypond[verbatim,quote,staffsize=16]
2313 \layout {
2314   \context {
2315     \Staff
2316     \override VerticalAxisGroup.default-staff-staff-spacing =
2317       #'((basic-distance . 8)
2318          (minimum-distance . 7)
2319          (padding . 1))
2320   }
2321 }
2322
2323 <<
2324   % Questa nota molto bassa ha bisogno di più spazio di quanto 'basic-distance
2325   % possa fornirne, dunque la distanza tra questo rigo e quello successivo
2326   % è determinato da 'padding.
2327   \new Staff { b,2 r | }
2328
2329   % Qui 'basic-distance fornisce abbastanza spazio, e non c'è bisogno
2330   % di comprimere lo spazio (verso 'minimum-distance) per far spazio
2331   % per qualcos'altro sulla pagina, dunque la distanza tra questo
2332   % rigo e quello successivo è determinato da 'basic-distance.
2333   \new Staff { \clef bass g2 r | }
2334
2335   % Impostando 'padding su un valore negativo, è possibile far sì che
2336   % i righi entrino in collisione.  Il più basso valore accettabile per
2337   % 'basic-distance è 0.
2338   \new Staff \with {
2339     \override VerticalAxisGroup.default-staff-staff-spacing =
2340       #'((basic-distance . 3.5)
2341          (padding . -10))
2342   } { \clef bass g2 r | }
2343   \new Staff { \clef bass g2 r | }
2344 >>
2345 @end lilypond
2346
2347 @seealso
2348 File installati:
2349 @file{scm/define-grobs.scm}.
2350
2351 Frammenti:
2352 @rlsr{Spacing}.
2353
2354 Guida al funzionamento interno:
2355 @rinternals{VerticalAxisGroup}.
2356
2357
2358 @node Spaziatura dei righi raggruppati
2359 @unnumberedsubsubsec Spaziatura dei righi raggruppati
2360 @translationof Spacing of grouped staves
2361
2362 Nelle partiture orchestrali e in alte grosse partiture, di norma i righi
2363 vengono raggruppati.  Lo spazio tra i gruppi è più ampio dello spazio
2364 tra i righi dello stesso gruppo.
2365
2366 I @emph{gruppi di righi} (come @code{StaffGroup}, @code{ChoirStaff},
2367 etc.) sono contesti che possono contenere uno o più righi
2368 simultaneamente.
2369
2370 Le seguenti proprietà influenzano la spaziatura dei righi nei gruppi:
2371
2372 @itemize
2373 @item Proprietà di @code{VerticalAxisGroup}:
2374 @itemize
2375 @item @code{staff-staff-spacing}
2376 @end itemize
2377 @item Proprietà di @code{StaffGrouper}:
2378 @itemize
2379 @item @code{staff-staff-spacing}
2380 @item @code{staffgroup-staff-spacing}
2381 @end itemize
2382 @end itemize
2383
2384 Queste proprietà dei grob sono descritte una a una in una sezione precedente; vedi
2385 @ref{Within-system spacing properties}.
2386
2387 L'esempio seguente mostra come le proprietà del grob
2388 @code{StaffGrouper} possano influenzare la spaziatura dei righi raggruppati:
2389
2390 @lilypond[verbatim,quote,staffsize=16]
2391 \layout {
2392   \context {
2393     \Score
2394     \override StaffGrouper.staff-staff-spacing.padding = #0
2395     \override StaffGrouper.staff-staff-spacing.basic-distance = #1
2396   }
2397 }
2398
2399 <<
2400   \new PianoStaff \with {
2401     \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
2402   } <<
2403     \new Staff { c'1 }
2404     \new Staff { c'1 }
2405   >>
2406
2407   \new StaffGroup <<
2408     \new Staff { c'1 }
2409     \new Staff { c'1 }
2410   >>
2411 >>
2412 @end lilypond
2413
2414 @seealso
2415 File installati:
2416 @file{scm/define-grobs.scm}.
2417
2418 Frammenti:
2419 @rlsr{Spacing}.
2420
2421 Guida al funzionamento interno:
2422 @rinternals{VerticalAxisGroup},
2423 @rinternals{StaffGrouper}.
2424
2425
2426 @node Spaziatura delle linee che non sono righi
2427 @unnumberedsubsubsec Spaziatura delle linee che non sono righi
2428 @translationof Spacing of non-staff lines
2429
2430 Le @emph{linee che non sono righi} (come @code{Lyrics}, @code{ChordNames},
2431 etc.) sono contesti i cui oggetti della formattazione sono disposti come se
2432 fossero su dei righi (ovvero su linee orizzontali all'interno dei sistemi).
2433 Precisamente, le linee che non sono righi sono contesti non-rigo che contengono
2434 l'incisore @rinternals{Axis_group_engraver}.
2435
2436 Le seguenti proprietà influenzano la spaziatura delle linee che non sono righi:
2437
2438 @itemize
2439 @item Proprietà di @code{VerticalAxisGroup}:
2440 @itemize
2441 @item @code{staff-affinity}
2442 @item @code{nonstaff-relatedstaff-spacing}
2443 @item @code{nonstaff-nonstaff-spacing}
2444 @item @code{nonstaff-unrelatedstaff-spacing}
2445 @end itemize
2446 @end itemize
2447
2448 Queste proprietà del grob sono descritte una a una in una sezione
2449 precedente, vedi @ref{Within-system spacing properties}.
2450
2451 L'esempio seguente mostra come la proprietà
2452 @code{nonstaff-nonstaff-spacing} influenza la spaziatura di linee
2453 che non sono un rigo consecutive.  Impostando l'elemento
2454 @code{stretchability} su un valore molto alto, il testo vocale
2455 riesce a allungarsi molto più del solito:
2456
2457 @lilypond[verbatim,quote,staffsize=16]
2458 \layout {
2459   \context {
2460     \Lyrics
2461     \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
2462   }
2463 }
2464
2465 \new StaffGroup
2466 <<
2467   \new Staff \with {
2468     \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
2469   } { c'1 }
2470   \new Lyrics \with {
2471     \override VerticalAxisGroup.staff-affinity = #UP
2472   } \lyricmode { up }
2473   \new Lyrics \with {
2474     \override VerticalAxisGroup.staff-affinity = #CENTER
2475   } \lyricmode { center }
2476   \new Lyrics \with {
2477     \override VerticalAxisGroup.staff-affinity = #DOWN
2478   } \lyricmode { down }
2479   \new Staff { c'1 }
2480 >>
2481 @end lilypond
2482
2483 @seealso
2484 File installati:
2485 @file{ly/engraver-init.ly},
2486 @file{scm/define-grobs.scm}.
2487
2488 Frammenti:
2489 @rlsr{Spacing}.
2490
2491 @c @lsr{spacing,page-spacing.ly},
2492 @c @lsr{spacing,alignment-vertical-spacing.ly}.
2493
2494 Guida al funzionamento interno:
2495 @rinternals{Contexts},
2496 @rinternals{VerticalAxisGroup}.
2497
2498
2499 @node Posizionamento esplicito di righi e sistemi
2500 @subsection Posizionamento esplicito di righi e sistemi
2501 @translationof Explicit staff and system positioning
2502
2503 Un modo per comprendere i meccanismi di spaziatura verticale
2504 appena spiegati è di considerarli come un insieme di impostazioni
2505 che regolano la quantità di @emph{padding} verticale tra righi
2506 e tra sistemi.
2507
2508 È possibile gestire la spaziatura verticale in un modo diverso
2509 usando @code{NonMusicalPaperColumn.line-break-system-details}.
2510 Mentre i meccanismi di spaziatura verticale flessibile specificano
2511 il padding verticale, @code{NonMusicalPaperColumn.line-break-system-details}
2512 indica precisamente le posizioni verticali esatte sulla pagina.
2513
2514 @code{NonMusicalPaperColumn.line-break-system-details} accetta una
2515 lista associativa di quattro diverse impostazioni:
2516
2517 @itemize
2518 @item @code{X-offset}
2519 @item @code{Y-offset}
2520 @item @code{extra-offset}
2521 @item @code{alignment-distances}
2522 @end itemize
2523
2524 Le modifiche del grob con @code{\override}, incluse quelle per @code{NonMusicalPaperColumn}
2525 come nell'esempio successivo, possono trovarsi in uno di questi tre diversi
2526 punti del file di input:
2527
2528 @itemize
2529 @item direttamente in mezzo alle note
2530 @item in un blocco @code{\context}
2531 @item nel blocco @code{\with}
2532 @end itemize
2533
2534 Quando si modifica @code{NonMusicalPaperColumn}, si usa il solito
2535 comando @code{\override} nei blocchi @code{\context} e nel blocco
2536 @code{\with}.  Invece quando si modifica
2537 @code{NonMusicalPaperColumn} in mezzo alle note,
2538 si usa il comando speciale @code{\overrideProperty}.  Ecco alcuni
2539 esempi di modifiche di @code{NonMusicalPaperColumn} col comando
2540 speciale @code{\overrideProperty}:
2541
2542 @example
2543 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2544   #'((X-offset . 20))
2545
2546 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2547   #'((Y-offset . 40))
2548
2549 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2550   #'((X-offset . 20)
2551      (Y-offset . 40))
2552
2553 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2554   #'((alignment-distances . (15)))
2555
2556 \overrideProperty NonMusicalPaperColumn.line-break-system-details
2557   #'((X-offset . 20)
2558      (Y-offset . 40)
2559      (alignment-distances . (15)))
2560 @end example
2561
2562 Per comprendere come funziona ognuna di queste impostazioni, iniziamo
2563 vedendo un esempio che non contiene alcuna modifica.
2564
2565 @c \book { } is required in these examples to ensure the spacing
2566 @c overrides can be seen between systems. -np
2567
2568 @lilypond[verbatim,quote,staffsize=16]
2569 \header { tagline = ##f }
2570 \paper { left-margin = 0\mm }
2571 \book {
2572   \score {
2573     <<
2574       \new Staff <<
2575         \new Voice {
2576           s1*5 \break
2577           s1*5 \break
2578           s1*5 \break
2579         }
2580         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2581       >>
2582       \new Staff {
2583         \repeat unfold 15 { d'4 d' d' d' }
2584       }
2585     >>
2586   }
2587 }
2588 @end lilypond
2589
2590 Questa partitura isola l'informazione sulle interruzioni di linea e di pagina
2591 in una voce apposita.  Questa tecnica di creare una voce per le interruzioni
2592 permette di tenere la formattazione separata dalla musica via via che il
2593 nostro esempio diventa più complicato.  Vedi anche @ref{Interruzioni}.
2594
2595 Usando comandi @code{\break} espliciti, la musica viene divisa proporzionalmente
2596 in cinque misure per linea.  La spaziatura verticale è quella predefinita di
2597 LilyPond ma il punto di inizio verticale di ogni sistema è impostato
2598 esplicitamente con la coppia @code{Y-offset} dell'attributo
2599 @code{line-break-system-details} del grob @code{NonMusicalPaperColumn}:
2600
2601 @lilypond[verbatim,quote,staffsize=16]
2602 \header { tagline = ##f }
2603 \paper { left-margin = 0\mm }
2604 \book {
2605   \score {
2606     <<
2607       \new Staff <<
2608         \new Voice {
2609           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2610             #'((Y-offset . 0))
2611           s1*5 \break
2612           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2613             #'((Y-offset . 40))
2614           s1*5 \break
2615           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2616             #'((Y-offset . 60))
2617           s1*5 \break
2618         }
2619         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2620       >>
2621       \new Staff {
2622         \repeat unfold 15 { d'4 d' d' d' }
2623       }
2624     >>
2625   }
2626 }
2627 @end lilypond
2628
2629 Nota che @code{line-break-system-details} accetta una lista associativa di
2630 molti valori, ma ne abbiamo impostato solo uno in questo esempio.  Nota
2631 anche che la proprietà @code{Y-offset} qui determina la posizione verticale
2632 esatta sulla pagina in cui ogni nuovo sistema verrà visualizzato.
2633
2634 Oltre al posizionamento assoluto che si ottiene con @code{Y-offset} e
2635 @code{X-offset}, è possibile anche il posizionamento relativo tramite
2636 la proprietà @code{extra-offset} di @code{line-break-system-details}.
2637 Il posizionamento è relativo alla formattazione predefinita o al posizionamento
2638 assoluto determinato dall'uso di @code{X-offset} e @code{Y-offset}.  La
2639 proprietà @code{extra-offset} accetta una @code{coppia} di numeri che
2640 determinano lo spostamento lungo gli assi X e Y.
2641
2642 @lilypond[verbatim,quote,staffsize=16]
2643 \header { tagline = ##f }
2644 \paper { left-margin = 0\mm }
2645 \book {
2646   \score {
2647     <<
2648       \new Staff <<
2649         \new Voice {
2650           s1*5 \break
2651           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2652             #'((extra-offset . (0 . 10)))
2653           s1*5 \break
2654           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2655             #'((extra-offset . (0 . 10)))
2656           s1*5 \break
2657         }
2658         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2659       >>
2660       \new Staff {
2661         \repeat unfold 15 { d'4 d' d' d' }
2662       }
2663     >>
2664   }
2665 }
2666 @end lilypond
2667
2668
2669 Ora che abbiamo impostato esplicitamente il punto di inizio verticale di
2670 ogni sistema, possiamo impostare manualmente anche le distanze verticali
2671 tra i righi.  Per farlo usiamo la sottoproprietà @code{alignment-distances}
2672 di @code{line-break-system-details}.
2673
2674 @lilypond[verbatim,quote,staffsize=16]
2675 \header { tagline = ##f }
2676 \paper { left-margin = 0\mm }
2677 \book {
2678   \score {
2679     <<
2680       \new Staff <<
2681         \new Voice {
2682           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2683             #'((Y-offset . 20)
2684                (alignment-distances . (10)))
2685           s1*5 \break
2686           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2687             #'((Y-offset . 60)
2688                (alignment-distances . (15)))
2689           s1*5 \break
2690           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2691           #'((Y-offset . 85)
2692              (alignment-distances . (20)))
2693           s1*5 \break
2694         }
2695         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2696       >>
2697       \new Staff {
2698         \repeat unfold 15 { d'4 d' d' d' }
2699       }
2700     >>
2701   }
2702 }
2703 @end lilypond
2704
2705 Nota che qui assegnamo due valori diversi all'attributo
2706 @code{line-break-system-details} del grob
2707 @code{NonMusicalPaperColumn}.  Sebbene l'attributo alist
2708 @code{line-break-system-details} accetti molti altri parametri di
2709 spaziatura (inclusa, per esempio, una coppia corrispondente
2710 di @code{X-offset}), è sufficiente impostare soltanto le coppie @code{Y-offset}
2711 e @code{alignment-distances} per regolare il punto di inizio verticale di
2712 ogni sistema e ogni rigo.  Infine nota che @code{alignment-distances}
2713 specifica il posizionamento verticale dei righi ma non dei gruppi di righi.
2714
2715 @lilypond[verbatim,quote,staffsize=16]
2716 \header { tagline = ##f }
2717 \paper { left-margin = 0\mm }
2718 \book {
2719   \score {
2720     <<
2721       \new Staff <<
2722         \new Voice {
2723           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2724             #'((Y-offset . 0)
2725                (alignment-distances . (30 10)))
2726           s1*5 \break
2727           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2728             #'((Y-offset . 60)
2729                (alignment-distances . (10 10)))
2730           s1*5 \break
2731           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
2732             #'((Y-offset . 100)
2733                (alignment-distances . (10 30)))
2734           s1*5 \break
2735         }
2736         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2737       >>
2738       \new StaffGroup <<
2739         \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2740         \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2741       >>
2742     >>
2743   }
2744 }
2745 @end lilypond
2746
2747 Alcuni punti da considerare:
2748
2749 @itemize
2750 @item Quando si usa @code{alignment-distances}, il testo vocale e altre linee
2751 che non sono righi non contano come rigo.
2752
2753 @item Le unità dei numeri assegnati a @code{X-offset},
2754 @code{Y-offset}, @code{extra-offset} e @code{alignment-distances} sono interpretati
2755 come multipli della distanza tra linee del rigo adiacenti.  Valori positivi
2756 spostano in su righi e testo, valori negativi li spostano in giù.
2757
2758 @item Dato che le impostazioni di @code{NonMusicalPaperColumn.line-break-system-details}
2759 illustrate qui permettono il posizionamento di righi e sistemi ovunque
2760 sulla pagina, è possibile violare i confini del foglio o dei margini o
2761 perfino sovrapporre righi e sistemi uno sopra l'altro.  Ciò può essere
2762 evitato assegnando valori ragionevoli a queste diverse impostazioni.
2763 @end itemize
2764
2765 @seealso
2766 Frammenti:
2767 @rlsr{Spacing}.
2768
2769
2770 @node Elusione delle collisioni verticali
2771 @subsection Elusione delle collisioni verticali
2772 @translationof Vertical collision avoidance
2773
2774 @funindex outside-staff-priority
2775 @funindex outside-staff-padding
2776 @funindex outside-staff-horizontal-padding
2777
2778 Intuitivamente, ci sono alcuni oggetti della notazione musicale che
2779 appartengono al rigo e altri che devono essere disposti fuori dal
2780 rigo.  Gli oggetti esterni al rigo comprendono i numeri di chiamata,
2781 il testo e le dinamiche (d'ora in avanti tutti questi elementi saranno
2782 chiamati oggetti esterni al rigo).  La regola di LilyPond per il
2783 posizionamento verticale degli oggetti esterni al rigo è di disporli
2784 il più vicino possibile al rigo ma non così vicino da farli collidere
2785 con un altro oggetto.
2786
2787 LilyPond usa la proprietà @code{outside-staff-priority} per determinare
2788 se un grob è un oggetto fuori dal rigo: se @code{outside-staff-priority}
2789 è un numero, il grob è un oggetto esterno al rigo.  @code{outside-staff-priority}
2790 indica a LilyPond anche in quale ordine disporre gli oggetti.
2791
2792 LilyPond posiziona prima tutti gli oggetti che non sono esterni al
2793 rigo.  Quindi ordina gli oggetti esterni al rigo in base al loro valore
2794 di @code{outside-staff-priority} (in ordine crescente).  Uno per volta, LilyPond
2795 prende gli oggetti esterni al rigo e li dispone in modo che non entrino in
2796 collisione con alcun oggetto che sia già stato disposto.  Ovvero, se due
2797 grob esterni al rigo si contendono lo stesso spazio, quello col valore
2798 di @code{outside-staff-priority} più basso sarà posto più vicino al rigo.
2799
2800 Un elenco delle proprietà esterne al rigo si trova in
2801 @rlearning{La proprietà outside-staff-priority}.
2802
2803 @lilypond[quote,ragged-right,verbatim]
2804 \relative c'' {
2805   c4_"Testo"\pp
2806   r2.
2807   \once \override TextScript.outside-staff-priority = #1
2808   c4_"Testo"\pp % stavolta il testo sarà più vicino al rigo
2809   r2.
2810   % impostando outside-staff-priority su un non-numero,
2811   % disabilitiamo l'elusione automatica delle collisioni
2812   \once \override TextScript.outside-staff-priority = ##f
2813   \once \override DynamicLineSpanner.outside-staff-priority = ##f
2814   c4_"Testo"\pp % qui entrano in collisione
2815 }
2816 @end lilypond
2817
2818 Il padding verticale intorno agli oggetti esterni al rigo
2819 può essere regolato con @code{outside-staff-padding}.
2820
2821 @lilypond[quote,ragged-right,verbatim,staffsize=18]
2822 \relative {
2823   \once \override TextScript.outside-staff-padding = #0
2824   a'4-"outside-staff-padding = #0"
2825   \once \override TextScript.outside-staff-padding = #3
2826   d-"outside-staff-padding = #3"
2827   c-"outside-staff-padding predefinito"
2828   b-"outside-staff-padding predefinito"
2829   R1
2830 }
2831 @end lilypond
2832
2833
2834 Per impostazione predefinita, gli oggetti esterni al rigo sono disposti
2835 in modo da evitare la collisione orizzontale con grob posizionati
2836 precedentemente.  Ciò può portare a situazioni in cui gli oggetti
2837 sono posizionati uno vicino all'altro orizzontalmente.
2838 Come è dimostrato nell'esempio successivo, impostando @code{outside-staff-horizontal-padding}
2839 si aumenta la spaziatura orizzontale richiesta e in questo caso si sposta
2840 in su il testo per impedire che si avvicini troppo ai tagli addizionali.
2841
2842 @lilypond[quote,ragged-right,verbatim]
2843 \relative {
2844   c''4^"Parola" c c''2
2845   R1
2846   \once \override TextScript.outside-staff-horizontal-padding = #1
2847   c,,4^"Parola" c c''2
2848 }
2849 @end lilypond
2850
2851 @seealso
2852 Frammenti:
2853 @rlsr{Spacing}.
2854
2855
2856 @node Spaziatura orizzontale
2857 @section Spaziatura orizzontale
2858 @translationof Horizontal spacing
2859
2860 @cindex spaziatura orizzontale
2861 @cindex orizzontale, spaziatura
2862
2863 @menu
2864 * Panoramica sulla spaziatura orizzontale::
2865 * Nuova spaziatura nel corso di un brano::
2866 * Modifica della spaziatura orizzontale::
2867 * Larghezza della linea::
2868 * Notazione proporzionale::
2869 @end menu
2870
2871
2872 @node Panoramica sulla spaziatura orizzontale
2873 @subsection Panoramica sulla spaziatura orizzontale
2874 @translationof Horizontal spacing overview
2875
2876 Il motore della spaziatura traduce le differenze delle durate delle
2877 note in distanze allungabili (@q{springs}) di diversa lunghezza.  Durate
2878 più lunghe occupano più spazio, quelle più brevi ne occupano meno.
2879 Le durate più brevi occupano una quantità fissa di spazio (regolata da
2880 @code{shortest-duration-space} nell'oggetto @rinternals{SpacingSpanner}).
2881 Più lunga è la durata, più spazio occupa: raddoppiando una durata
2882 si aggiunge spazio alla nota di una quantità pari al valore di
2883 @code{spacing-increment}.
2884
2885 Per esempio, il brano seguente contiene molte minime, semiminime e
2886 crome; la croma (1/8) è seguita da 1 Larghezza della Testa di Nota (LTN).
2887 La semiminima (1/4) è seguita da 2 LTN, la minima (1/2) da 3 LTN, etc.
2888
2889 @lilypond[quote,verbatim]
2890 \relative c' {
2891   c2 c4. c8
2892   c4. c8 c4. c8
2893   c8 c c4 c c
2894 }
2895 @end lilypond
2896
2897 Solitamente, @code{spacing-increment} è impostato su 1.2 di spazio rigo, che
2898 equivale all'incirca alla larghezza della testa di nota, e
2899 @code{shortest-duration-space} è impostato su 2.0, che significa che
2900 la nota più breve occupa 2.4 di spazio rigo (2 volte @code{spacing-increment})
2901 di spazio orizzontale.  Questo spazio è calcolato dal margine sinistro
2902 del simbolo, dunque le note più brevi sono generalmente seguite da
2903 un LTN di spazio.
2904
2905 Se si seguisse esattamente la procedura descritta, aggiungendo una
2906 sola biscroma (1/32) a un brano che usa solo crome e semicrome, la
2907 spaziatura orizzontale dell'intero brano sarebbe troppo larga.  Infatti
2908 la nota più breve non è più una semicroma ma una biscroma, aggiungendo
2909 quindi 1 LTN a ogni nota.  Per impedire ciò, la durata più breve per
2910 la spaziatura non è la nota più breve, bensì la che ricorre più
2911 frequentemente nel brano.
2912
2913 La durata più breve più comune viene individuata nel modo seguente.  In ogni
2914 misura viene determinata la durata più breve e quella più frequente viene
2915 scelta come base per la spaziatura, con la condizione che tale durata debba
2916 essere sempre uguale o inferiore a una nota di un ottavo.
2917
2918 Tali durate possono anche essere personalizzate.  Impostando
2919 @code{common-shortest-duration} in @rinternals{SpacingSpanner}, si
2920 imposta la durata di base per la spaziatura.  La durata massima per
2921 essa (solitamente un ottavo), si imposta con @code{base-shortest-duration}.
2922
2923 @funindex common-shortest-duration
2924 @funindex base-shortest-duration
2925 @funindex stem-spacing-correction
2926 @funindex spacing
2927
2928 Note ancora più brevi della nota più breve più comune sono seguite
2929 da uno spazio proporzionale alla loro durata rispetto a essa.  Dunque
2930 se aggiungessimo solo alcuni sedicesimi all'esempio precedente, sarebbero
2931 seguiti dalla metà di LTN:
2932
2933 @lilypond[quote,verbatim]
2934 \relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
2935 @end lilypond
2936
2937
2938 Come è spiegato nel saggio @emph{Essay on automated music engraving}, le
2939 direzioni del gambo influenzano la spaziatura (vedi @ressay{Optical spacing}) e
2940 possono essere aggiustate usando la proprietà @code{stem-spacing-correction}
2941 dell'oggetto @rinternals{NoteSpacing} (che sono generati per ogni
2942 contesto @rinternals{Voice}.
2943
2944 L'oggetto @code{StaffSpacing} (generato nel contesto @rinternals{Staff})
2945 contiene la stessa proprietà per regolare la spaziatura tra gambo e stanghetta.
2946
2947 L'esempio seguente mostra tutto questo: una volta con le impostazioni
2948 predefinite e una volta con un aggiustamento esagerato:
2949
2950 @lilypond[quote,ragged-right]
2951 \fixed c' {
2952   c4 e'4 e4 b4 |
2953   b4 e'4 b4 e'4 |
2954   \override Staff.NoteSpacing.stem-spacing-correction = #1.5
2955   \override Staff.StaffSpacing.stem-spacing-correction = #1.5
2956   c4 e'4 e4 b4 |
2957   b4 e'4 b4 e'4 |
2958 }
2959 @end lilypond
2960
2961 LilyPond supporta la notazione proporzionale, vedi @ref{Proportional notation}.
2962
2963 @seealso
2964 Essay on automated music engraving:
2965 @ressay{Optical spacing}.
2966
2967 Frammenti:
2968 @rlsr{Spacing}.
2969
2970 Guida al funzionamento interno:
2971 @rinternals{SpacingSpanner},
2972 @rinternals{NoteSpacing},
2973 @rinternals{StaffSpacing},
2974 @rinternals{NonMusicalPaperColumn}.
2975
2976 @knownissues
2977 Non esiste un modo semplice per modificare manualmente la spaziatura.  Per
2978 aggirare il problema si può inserire dell'ulteriore spazio in una partitura,
2979 regolando il valore di padding di quanto è necessario:
2980
2981 @example
2982  \override Score.NonMusicalPaperColumn.padding = #10
2983 @end example
2984
2985 Non esiste alcun trucco per diminuire la quantità di spazio.
2986
2987
2988 @c traduzione del titolo non letterale ma più chiara
2989 @node Nuova spaziatura nel corso di un brano
2990 @subsection Nuova spaziatura nel corso di un brano
2991 @translationof New spacing section
2992
2993 @funindex \newSpacingSection
2994 @cindex nuova spaziatura nel corso di un brano
2995 @cindex spaziatura nuova nel corso di un brano
2996 @cindex note, spaziatura orizzontale
2997
2998 Nuove sezioni con parametri di spaziatura diversi possono essere iniziati
2999 col comando @code{\newSpacingSection}.  Ciò può essere utile per sezioni
3000 con nozioni diverse di note @q{lunghe} e note @q{brevi}.  Il comando
3001 @code{\newSpacingSection} crea un nuovo oggetto @code{SpacingSpanner} in
3002 quel momento musicale.
3003
3004 Nell'esempio seguente, il cambio di indicazione di tempo introduce una
3005 nuova sezione, e i sedicesimi hanno automaticamente una spaziatura
3006 un po' più larga.
3007
3008 @lilypond[verbatim,quote]
3009 \relative c' {
3010   \time 2/4
3011   c4 c8 c
3012   c8 c c4 c16[ c c8] c4
3013   \newSpacingSection
3014   \time 4/16
3015   c16[ c c8]
3016 }
3017 @end lilypond
3018
3019 Se gli aggiustamenti automatici della spaziatura non producono la
3020 spaziatura richiesta, si possono applicare degli @code{\override}
3021 manuali alle sue proprietà.  Questi devono essere applicati nello
3022 stesso momento musicale del comando @code{\newSpacingSection} stesso e
3023 avranno effetto sulla spaziatura di tutta la musica seguente finché
3024 le proprietà non vengono cambiate in una nuova sezione.  Per esempio:
3025
3026 @lilypond[verbatim,quote]
3027 \relative c' {
3028   \time 4/16
3029   c16[ c c8]
3030   \newSpacingSection
3031   \override Score.SpacingSpanner.spacing-increment = #2
3032   c16[ c c8]
3033   \newSpacingSection
3034   \revert Score.SpacingSpanner.spacing-increment
3035   c16[ c c8]
3036 }
3037 @end lilypond
3038
3039
3040 @seealso
3041 Frammenti:
3042 @rlsr{Spacing}.
3043
3044 Guida al funzionamento interno:
3045 @rinternals{SpacingSpanner}.
3046
3047
3048 @node Modifica della spaziatura orizzontale
3049 @subsection Modifica della spaziatura orizzontale
3050 @translationof Changing horizontal spacing
3051
3052 La spaziatura orizzontale può essere modificata tramite la proprietà
3053 @code{base-shortest-duration}.  Nel prossimo esempio confrontiamo
3054 la stessa musica, prima senza cambiare la proprietà e poi cambiandola.
3055 Valori più grandi di @code{ly:make-moment} produrranno musica più densa.
3056 Nota che @code{ly:make-moment} constituisce una durata, dunque
3057 @code{1 4} è una durata più lunga di @code{1 16}.
3058
3059 @lilypond[verbatim,line-width=12\cm]
3060 \score {
3061   \relative {
3062     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3063     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3064     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3065     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3066   }
3067 }
3068 @end lilypond
3069
3070 @lilypond[verbatim,line-width=12\cm]
3071 \score {
3072   \relative {
3073     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3074     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3075     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3076     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3077   }
3078   \layout {
3079     \context {
3080       \Score
3081       \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
3082     }
3083   }
3084 }
3085 @end lilypond
3086
3087
3088 @snippets
3089
3090 L'impostazione predefinita prevede che la spaziatura nei gruppi irregolari
3091 dipenda da vari fattori diversi dalla durata (come alterazioni, cambi di
3092 chiave, etc).  Per ignorare tali simboli e forzare la spaziatura perché
3093 sia uniforme, usare @code{Score.SpacingSpanner.uniform-stretching}.  Questa
3094 proprietà può essere modificata soltanto all'inizio di una partitura:
3095
3096 @lilypond[quote,ragged-right,verbatim]
3097 \score {
3098   <<
3099     \new Staff {
3100       \tuplet 5/4 { c8 c c c c } c8 c c c
3101     }
3102     \new Staff {
3103       c8 c c c \tuplet 5/4 { c8 c c c c }
3104     }
3105   >>
3106   \layout {
3107     \context {
3108       \Score
3109       \override SpacingSpanner.uniform-stretching = ##t
3110     }
3111   }
3112 }
3113 @end lilypond
3114
3115 Se si imposta @code{strict-note-spacing}, la spaziatura tra le note non tiene
3116 conto di chiavi, stanghette e abbellimenti:
3117
3118 @lilypond[quote,ragged-right,fragment,verbatim]
3119 \override Score.SpacingSpanner.strict-note-spacing = ##t
3120 \new Staff \relative {
3121   c''8[ c \clef alto c \grace { c16 c } c8 c c]  c32[ c] }
3122 @end lilypond
3123
3124 @seealso
3125 Frammenti:
3126 @rlsr{Spacing}.
3127
3128
3129 @node Larghezza della linea
3130 @subsection Larghezza della linea
3131 @translationof Line width
3132
3133 @cindex interruzioni di pagina
3134 @cindex pagina, interruzioni
3135
3136 @funindex indent
3137 @funindex line-width
3138 @funindex ragged-right
3139 @funindex ragged-last
3140
3141 @c Although line-width can be set in \layout, it should be set in paper
3142 @c block, to get page layout right.
3143 @c Setting indent in \paper block makes not much sense, but it works.
3144
3145 @c Bit verbose and vague, use examples?
3146 Le impostazioni fondamentali che influenzano la spaziatura sono @code{indent} e
3147 @code{line-width}, impostate nel blocco @code{\layout}.  Regolano l'indentazione
3148 della prima linea musicale e la lunghezza delle linee.
3149
3150 Se @code{ragged-right} è impostato su vero nel blocco @code{\layout}, i sistemi
3151 terminano alla loro naturale lunghezza orizzontale, invece di essere espansi
3152 orizzontalmente per riempire tutta la linea.  Ciò è utile in caso di brevi
3153 frammenti e per verificare quanto è compatta la spaziatura naturale.  L'impostazione
3154 predefinita è solitamente falso, ma se la partitura ha un solo sistema il
3155 valore predefinito è vero.
3156
3157 @cindex formattazione della pagina
3158 @cindex spaziatura verticale
3159 @cindex verticale, spaziatura
3160
3161 L'opzione @code{ragged-last} è simile a @code{ragged-right}, ma ha effetto
3162 soltanto sull'ultima linea del brano.  Nessune restrizioni vengono poste su
3163 quella linea.  Il risultato è simile alla formattazione dei paragrafi di testo.
3164 In un paragrafo l'ultima linea occupa la sua naturale lunghezza orizzontale.
3165 @c Note that for text there are several options for the last line.
3166 @c While Knuth TeX uses natural length, lead typesetters use the same
3167 @c stretch as the previous line.  eTeX uses \lastlinefit to
3168 @c interpolate between both these solutions.
3169
3170 @example
3171 \layout @{
3172   indent = #0
3173   line-width = #150
3174   ragged-last = ##t
3175 @}
3176 @end example
3177
3178 @seealso
3179 Frammenti:
3180 @rlsr{Spacing}.
3181
3182
3183 @node Notazione proporzionale
3184 @subsection Notazione proporzionale
3185 @translationof Proportional notation
3186
3187 LilyPond supporta la notazione proporzionale, un tipo di spaziatura orizzontale
3188 in cui ogni nota occupa una quantità di spazio orizzontale esattamente
3189 equivalente alla sua durata musicale.  Questo tipo di spaziatura proporzionale
3190 può essere paragonata alla spaziatura orizzontale su carta quadrettata.  Alcune
3191 partiture della fine del ventesimo secolo e dell'inizio del ventunesimo usano
3192 la notazione proporzionale per chiarire relazioni ritmiche complesse o per
3193 agevolare il posizionamento della linea del tempo o di altri elementi
3194 grafici direttamente nella partitura.
3195
3196 LilyPond supporta cinque diverse impostazioni per la notazione proporzionale,
3197 che possono essere usate insieme o da sole:
3198
3199 @itemize
3200 @item @code{proportionalNotationDuration}
3201 @item @code{uniform-stretching}
3202 @item @code{strict-note-spacing}
3203 @item @code{\remove "Separating_line_group_engraver"}
3204 @item @code{\override PaperColumn.used = ##t}
3205 @end itemize
3206
3207 Nell'esempio seguente analizziamo queste cinque diverse impostazioni di
3208 notazione proporzionale e valutiamo come esse interagiscono tra loro.
3209
3210 Iniziamo con l'esempio seguente di una misura, che usa la spaziatura
3211 classica con la giustificazione del rigo disattivata.
3212
3213 @c The initial pitch is not necessary as long as RhythmicStaff is
3214 @c not preceded by other material in the score, but we don't want
3215 @c to explain that.
3216 @lilypond[quote,verbatim,ragged-right]
3217 \score {
3218   <<
3219     \new RhythmicStaff {
3220       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3221     }
3222   >>
3223 }
3224 @end lilypond
3225
3226 La minima all'inizio della misura occupa uno spazio molto inferiore alla metà
3227 dello spazio orizzontale della misura.  Ugualmente, i sedicesimi e le quintine
3228 di sedicesimi alla fine della battuta insieme occupano molto più spazio della
3229 metà dello spazio orizzontale della misura.
3230
3231 Nell'incisione tipografica classica, questa spaziatura è solitamente proprio
3232 ciò che si desidera, perché è possibile prendere in prestito dello spazio
3233 orizzontale dalla minima e economizzare lo spazio orizzontale complessivo
3234 della misura.
3235
3236 D'altra parte, se vogliamo inserire una linea del tempo con tacche o altri
3237 elementi grafici sopra o sotto la partitura, abbiamo bisogno della notazione
3238 proporzionale.  Per attivarla si usa l'impostazione proportionalNotationDuration.
3239
3240 @lilypond[quote,verbatim,ragged-right]
3241 \score {
3242   <<
3243     \new RhythmicStaff {
3244       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3245     }
3246   >>
3247  \layout {
3248     \context {
3249       \Score
3250       proportionalNotationDuration = #(ly:make-moment 1/20)
3251     }
3252   }
3253 }
3254 @end lilypond
3255
3256 La minima all'inizio della misura e le note più veloci nella seconda
3257 metà della misura ora occupano la stessa quantità di spazio orizzontale.
3258 Potremmo inserire una linea del tempo con tacche o un'immagine
3259 grafica sopra o sotto questo esempio.
3260
3261 L'impostazione @code{proportionalNotationDuration} è un'impostazione di
3262 contesto che si trova in @code{Score}.  Ricordiamo che le impostazioni di
3263 contesto possono apparire in tre luoghi del file di input: in un blocco
3264 @code{\with}, in un blocco @code{\context} o direttamente in mezzo alle
3265 note preceduta dal comando @code{\set}.  Come per tutte le impostazioni di
3266 contesto, l'utente può scegliere in quale di questi tre luoghi impostare
3267 @code{proportionalNotationDuration}.
3268
3269 L'impostazione @code{proportionalNotationDuration} prende un solo argomento,
3270 che è la durata di riferimento in base alla quale tutta la musica verrà
3271 spaziata.  La funzione Scheme di LilyPond @code{make-moment} prende due
3272 argomenti: un numeratore e un denominatore che insieme esprimono una qualche
3273 frazione di una nota intera.  La funzione di chiamata @code{(ly:make-moment 1/20)}
3274 produce quindi una durata di riferimento di un ventesimo di nota.  Sono ammessi
3275 anche valori come @code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)} e
3276 @code{(ly:make-moment 3/97)}.
3277
3278 Come scegliamo la durata di riferimento corretta da passare a
3279 @code{proportionalNotationDuration}?  Solitamente attraverso un processo di
3280 prova e errore, iniziando con una durata vicina alla più veloce (o piccola)
3281 durata del brano.  Durate di riferimento più piccole determinano una spaziatura
3282 della musica più larga; quelle più grandi causano una spaziatura più stretta.
3283
3284 @lilypond[quote,verbatim,ragged-right]
3285 \score {
3286   <<
3287     \new RhythmicStaff {
3288       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3289     }
3290   >>
3291   \layout {
3292     \context {
3293       \Score
3294       proportionalNotationDuration = #(ly:make-moment 1/8)
3295     }
3296   }
3297 }
3298
3299 \score {
3300   <<
3301     \new RhythmicStaff {
3302       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3303     }
3304   >>
3305   \layout {
3306     \context {
3307       \Score
3308       proportionalNotationDuration = #(ly:make-moment 1/16)
3309     }
3310   }
3311 }
3312
3313 \score {
3314   <<
3315     \new RhythmicStaff {
3316       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3317     }
3318   >>
3319   \layout {
3320     \context {
3321       \Score
3322       proportionalNotationDuration = #(ly:make-moment 1/32)
3323     }
3324   }
3325 }
3326 @end lilypond
3327
3328 Nota che una durata di riferimento troppo grande -- come la nota di
3329 un ottavo, sopra -- determina una spaziatura della musica troppo stretta
3330 e può causare collisioni tra le teste di nota.  Fare attenzione anche al
3331 fatto che la notazione proporzionale in generale occupa più spazio orizzontale
3332 della spaziatura classica.  Insomma, la spaziatura proporzionale fornisce
3333 chiarezza ritmica al costo dello spazio orizzontale.
3334
3335 Ora vediamo come spaziare in modo ottimale i gruppi irregolari sovrapposti.
3336
3337 Iniziamo esaminando cosa succede al nostro esempio di partenza, con la
3338 spaziatura classica, quando aggiungiamo un secondo rigo con un diverso
3339 tipo di gruppo irregolare.
3340
3341 @lilypond[quote,verbatim,ragged-right]
3342 \score {
3343   <<
3344     \new RhythmicStaff {
3345       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3346     }
3347     \new RhythmicStaff {
3348       \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
3349     }
3350   >>
3351 }
3352 @end lilypond
3353
3354 La spaziatura è pessima perché le note del rigo inferiore spaziate a distanze
3355 uguali non si allungano in modo uniforme.  Le incisioni classiche contengono
3356 pochissime terzine complesse e quindi le regole di incisione classica possono
3357 generare questo tipo di risultato.  Impostando @code{proportionalNotationDuration}
3358 ciò viene corretto.
3359
3360 @lilypond[quote,verbatim,ragged-right]
3361 \score {
3362   <<
3363     \new RhythmicStaff {
3364       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3365     }
3366     \new RhythmicStaff {
3367       \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
3368     }
3369   >>
3370   \layout {
3371     \context {
3372       \Score
3373       proportionalNotationDuration = #(ly:make-moment 1/20)
3374     }
3375   }
3376 }
3377 @end lilypond
3378
3379 Ma se osserviamo con attenzione possiamo vedere che le note della seconda
3380 metà della nonina hanno una spaziatura leggermente più larga delle note
3381 della prima parte della nonina.  Per assicurare un allungamento uniforme,
3382 attiviamo @code{uniform-stretching}, una proprietà di
3383 @code{SpacingSpanner}.
3384
3385 @lilypond[quote,verbatim,ragged-right]
3386 \score {
3387   <<
3388     \new RhythmicStaff {
3389       c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
3390     }
3391     \new RhythmicStaff {
3392       \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
3393     }
3394   >>
3395   \layout {
3396     \context {
3397       \Score
3398       proportionalNotationDuration = #(ly:make-moment 1/20)
3399       \override SpacingSpanner.uniform-stretching = ##t
3400     }
3401   }
3402 }
3403 @end lilypond
3404
3405 Il nostro esempio di due righi ora ha una spaziatura esatta, le relazioni
3406 ritmiche sono visivamente chiare e possiamo includere una linea del tempo
3407 con tacche o altro elemento grafico, se lo vogliamo.
3408
3409 Nota che la notazione proporzionale di LilyPond si aspetta che tutte le
3410 partiture proporzionali impostino l'attributo 'uniform-stretching di
3411 SpacingSpanner su @code{##t}.  Impostare proportionalNotationDuration senza
3412 impostare anche l'attributo 'uniform-stretching di SpacingSpanner su
3413 @code{##t} farà sì, per esempio, che le pause invisibili occupino una quantità
3414 scorretta di spazio orizzontale.
3415
3416 SpacingSpanner è un grob astratto che si trova nel contesto Score.
3417 Come per le impostazioni di proportionalNotationDuration, le modifiche
3418 @code{\override} a SpacingSpanner si possono trovare in uno dei tre diversi
3419 punti del file di input – nel blocco \with del brano, nel blocco \context
3420 del brano o direttamente in mezzo alle note.
3421
3422 Per impostazione predefinita, esiste un solo @code{SpacingSpanner} per
3423 @code{Score}.  Ciò significa che @code{uniform-stretching} è attivato o
3424 disattivato per l'intera partitura.  Possiamo tuttavia modificare tale
3425 comportamento e attivare diverse funzionalità di spaziatura in punti
3426 diversi del brano.  Per farlo si usa il comando @code{\newSpacingSection}.
3427 Maggiori informazioni in @ref{New spacing section}.
3428
3429 Ora esaminiamo gli effetti dell'incisore @code{Separating_line_group_engraver} e
3430 vediamo perché le partiture proporzionali solitamente tolgano questo incisore.
3431 L'esempio seguente mostra che c'è un piccolo spazio @qq{introduttivo} proprio
3432 prima della prima nota di ogni sistema.
3433
3434 @lilypond[quote,verbatim,ragged-right]
3435 \paper {
3436   indent = #0
3437 }
3438
3439 \new Staff {
3440   c'1
3441   \break
3442   c'1
3443 }
3444 @end lilypond
3445
3446
3447 L'ampiezza di questo spazio introduttivo è la stessa sia dopo un'indicazione di
3448 tempo che dopo un'armatura di chiave o una chiave.
3449 È l'incisore @code{Separating_line_group_engraver} a causare questo spazio.
3450 Togliendolo lo spazio diventa zero.
3451
3452 @lilypond[quote,verbatim,ragged-right]
3453 \paper {
3454   indent = #0
3455 }
3456
3457 \new Staff \with {
3458   \remove "Separating_line_group_engraver"
3459 } {
3460   c'1
3461   \break
3462   c'1
3463 }
3464 @end lilypond
3465
3466 Nella notazione proporzionale gli elementi non musicali come le indicazioni di
3467 tempo, le armature di chiave, le chiavi e le alterazioni sono problematiche.
3468 Nessuna di queste infatti ha una durata ritmica, ma tutte occupano spazio
3469 orizzontale.  Questi problemi sono affrontati diversamente dalle varie
3470 partiture proporzionali.
3471
3472 È possibile evitare i problemi di spaziatura dovuti alle armature di
3473 chiave semplicemente omettendole.  Questa è un'opzione valida dato che
3474 la maggior parte delle partiture proporzionali sono di musica contemporanea.
3475 Lo stesso potrebbe valere per le indicazioni di tempo, specialmente per quelle
3476 partiture che includono una linea del tempo o altri elementi grafici.  Ma queste
3477 partiture sono un'eccezione e la maggior parte delle partiture proporzionali
3478 hanno almeno qualche indicazione di tempo.  Le chiavi e le alterazioni sono
3479 ancora più fondamentali.
3480
3481 Dunque quali strategie adottare per spaziare elementi non musicali nel contesto
3482 di musica proporzionale?  Una valida opzione è la proprietà @code{strict-note-spacing}
3483 di @code{SpacingSpanner}.  Confrontiamo i seguenti due righi:
3484
3485 @lilypond[quote,verbatim,ragged-right]
3486 \new Staff {
3487   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3488   c''8 8 8 \clef alto d'2 2
3489 }
3490
3491 \new Staff {
3492   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3493   \override Score.SpacingSpanner.strict-note-spacing = ##t
3494   c''8 8 8 \clef alto d'2 2
3495 }
3496 @end lilypond
3497
3498 Entrambi sono proporzionali, ma la spaziatura del primo è troppo
3499 larga a causa del cambio di chiave.  La spaziatura del secondo
3500 resta invece stretta, perché è attivato strict-note-spacing.
3501 Attivando strict-note-spacing, la larghezza di indicazioni di tempo,
3502 armature di chiave, chiavi e alterazioni non ha alcun ruolo
3503 nell'algoritmo di spaziatura.
3504
3505 Oltre alle impostazioni che abbiamo visto, ce ne sono altre che appaiono
3506 frequentemente nelle partiture proporzionali, tra cui:
3507
3508 @itemize
3509 @item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
3510 @item @code{\set tupletFullLength = ##t}
3511 @item @code{\override Beam.breakable = ##t}
3512 @item @code{\override Glissando.breakable = ##t}
3513 @item @code{\override TextSpanner.breakable = ##t}
3514 @item @code{\remove "Forbid_line_break_engraver" nel contesto Voice}
3515 @end itemize
3516
3517 Queste impostazioni spaziano in modo conciso gli abbellimenti, estendono le
3518 parentesi dei gruppi irregolari per contrassegnare i punti di inizio e di
3519 fine del ritmo, e permettono agli elementi che si estendono orizzontalmente
3520 di andare oltre i sistemi e le pagine.  Consultare le sezioni del manuale
3521 per queste impostazioni.
3522
3523 @seealso
3524 Guida alla notazione:
3525 @ref{New spacing section}.
3526
3527 Frammenti:
3528 @rlsr{Spacing}.
3529
3530
3531 @node Riduzione del numero di pagine di una partitura
3532 @section Riduzione del numero di pagine di una partitura
3533 @translationof Fitting music onto fewer pages
3534
3535 Talvolta può capitare di avere uno o due righi su una seconda
3536 (o terza, o quarta@dots{}) pagina.  Ciò è fastidioso, specialmente
3537 se c'è molto spazio nelle pagine precedenti.
3538
3539 Quando si studiano i problemi di formattazione, uno strumento irrinunciabile
3540 è @code{annotate-spacing}, un comando che mostra i valori delle diverse
3541 variabili di spaziatura.  Maggiori dettagli nella prossima sezione,
3542 @ref{Visualizzare la spaziatura}.
3543
3544 @menu
3545 * Visualizzare la spaziatura::
3546 * Modificare la spaziatura::
3547 @end menu
3548
3549
3550 @node Visualizzare la spaziatura
3551 @subsection Visualizzare la spaziatura
3552 @translationof Displaying spacing
3553
3554 @funindex annotate-spacing
3555 @cindex spaziatura, visualizzazione della formattazione
3556
3557 Per visualizzare graficamente le dimensioni delle varibili della formattazione
3558 verticale che possono essere modificate per formattare la pagina, impostare
3559 @code{annotate-spacing} nel blocco @code{\paper}:
3560
3561 @lilypond[verbatim,quote,papersize=a6landscape]
3562 \book {
3563   \score { { c4 } }
3564   \paper { annotate-spacing = ##t }
3565 }
3566 @end lilypond
3567
3568
3569 @noindent
3570 Tutte le dimensioni della formattazione sono visualizzate in spazi rigo,
3571 indipendentemente dalle unità di misura specificate nei blocchi
3572 @code{\paper} o @code{\layout}.  Nell'esempio qui sopra, l'altezza
3573 del foglio (@code{paper-height}) ha un valore di 59.75 spazi
3574 rigo (@code{staff-space}), e la dimensione del rigo (@code{staff-size}) è
3575 pari a 20 punti (il valore predefinito).  Nota che:
3576
3577 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
3578
3579 @item 1 punto
3580 @tab = (25.4/72.27) mm
3581
3582 @item 1 staff-space
3583 @tab = (@code{staff-size})/4 pts
3584 @item
3585 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3586
3587 @end multitable
3588
3589 @noindent
3590 In questo caso, uno @code{staff-space} è uguale all'incirca a
3591 1.757mm.  Dunque i 59.75 @code{staff-space} di @code{paper-height}
3592 corrispondono a 105 millimetri, pari all'altezza del formato @code{a6}
3593 in orientamento orizzontale.  Le coppie (@var{a},@var{b}) sono
3594 intervalli, dove @var{a} è l'estremo inferiore e @var{b} l'estremo
3595 superiore dell'intervallo.
3596
3597 @seealso
3598 Guida alla notazione:
3599 @ref{Setting the staff size}.
3600
3601 Frammenti:
3602 @rlsr{Spacing}.
3603
3604
3605 @node Modificare la spaziatura
3606 @subsection Modificare la spaziatura
3607 @translationof Changing spacing
3608
3609 L'output di @code{annotate-spacing} svela le dimensioni verticali molto
3610 dettagliatamente.  Maggiori informazioni su come modificare i margini e
3611 altre variabili di formattazione si trovano in @ref{Page layout}.
3612
3613 Oltre ai margini, ci sono altre opzioni utili per salvare spazio:
3614
3615 @itemize
3616 @item
3617 Forzare i sistemi perché si avvicinino il più possibile (per far
3618 entrare più sistemi possibile in una pagina) mentre sono spaziati in
3619 modo da non lasciare spazio bianco in fondo alla pagina.
3620
3621 @example
3622 \paper @{
3623   system-system-spacing = #'((basic-distance . 0.1) (padding . 0))
3624   ragged-last-bottom = ##f
3625   ragged-bottom = ##f
3626 @}
3627 @end example
3628
3629 @item
3630 Forzare il numero dei sistemi.  Ciò può essere utile in due modi.  Il
3631 semplice impostare un valore, persino lo stesso valore del numero di
3632 sistemi disposti senza modificare la variabile, può far sì che più
3633 sistemi riescano a entrare in ogni pagina, perché viene saltato il
3634 passaggio di valutazione, dando un valore più adatto per ogni pagina.
3635 Inoltre, forzare davvero una riduzione nel numero di sistemi può far
3636 risparmiare un'ulteriore pagina.  Per esempio, se la formattazione
3637 predefinita ha 11 sistemi, la seguente impostazione forzerà la
3638 formattazione con 10 sistemi.
3639
3640 @example
3641 \paper @{
3642   system-count = #10
3643 @}
3644 @end example
3645
3646 @item
3647 Forzare il numero delle pagine.  Per esempio, la seguente impostazione
3648 forzerà la formattazione in due pagine.
3649
3650 @example
3651 \paper @{
3652   page-count = #2
3653 @}
3654 @end example
3655
3656 @item
3657 Evitare (o ridurre) gli oggetti che aumentano la dimensione verticale di
3658 un sistema.  Per esempio, le parentesi delle volte per i finali alternativi
3659 richiedono ulteriore spazio.  Se questi finali si estendono per due sistemi,
3660 occupano più spazio che se fossero sullo stesso sistema.  Altro esempio: le
3661 dinamiche che @qq{spuntano fuori} da un sistema possono essere avvicinate al
3662 rigo:
3663
3664 @lilypond[verbatim,quote]
3665 \relative e' {
3666   e4 c g\f c
3667   e4 c g-\tweak X-offset #-2.7 \f c
3668 }
3669 @end lilypond
3670
3671 @item
3672 Modificare la spaziatura orizzontale tramite @code{SpacingSpanner}.  Maggiori
3673 informazioni in @ref{Modifica della spaziatura orizzontale}.  L'esempio seguente mostra
3674 la spaziatura predefinita:
3675
3676 @lilypond[verbatim,quote]
3677 \score {
3678   \relative {
3679     g'4 e e2 |
3680     f4 d d2 |
3681     c4 d e f |
3682     g4 g g2 |
3683     g4 e e2 |
3684   }
3685 }
3686 @end lilypond
3687
3688 @noindent
3689 L'esempio successivo modifica @code{common-shortest-duration} da un
3690 valore di @code{1/4} a uno di @code{1/2}.  La nota di un quarto è la
3691 durata più comune e più breve in questo esempio, dunque rendendola più
3692 lunga si verifica un effetto @qq{compressione}:
3693
3694 @lilypond[verbatim,quote]
3695 \score {
3696   \relative {
3697     g'4 e e2 |
3698     f4 d d2 |
3699     c4 d e f |
3700     g4 g g2 |
3701     g4 e e2 |
3702   }
3703   \layout {
3704     \context {
3705       \Score
3706       \override SpacingSpanner.common-shortest-duration =
3707         #(ly:make-moment 1/2)
3708     }
3709   }
3710 }
3711 @end lilypond
3712
3713 @noindent
3714 La proprietà @code{common-shortest-duration} non può essere modificata in
3715 modo dinamico, quindi deve essere sempre posta in un blocco @code{\context}
3716 così che sia applicata all'intera partitura.
3717
3718 @end itemize
3719
3720 @seealso
3721 Guida alla notazione:
3722 @ref{Page layout},
3723 @ref{Modifica della spaziatura orizzontale}.
3724
3725 Frammenti:
3726 @rlsr{Spacing}.
3727