| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Breaks
| 4.3.1 Interruzioni di linea | ||
| 4.3.2 Interruzioni di pagina |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Line breaking
Le interruzioni di linea di solito sono determinate automaticamente. Sono decise in modo che le linee non sembrino né fitte né troppo spaziate, e che le linee consecutive abbiano una densità simile.
Per forzare manualmente un’interruzione di linea dopo una stanghetta, usare
il comando \break:
\relative c'' { c4 c c c | \break c4 c c c | }
Per impostazione predefinita, un comando \break inserito nel mezzo di una
misura viene ignorato (e apparirà un messaggio di avvertimento durante la
compilazione del file LilyPond). L’aggiunta di una stanghetta invisibile
– ‘\bar ""’ – prima del comando \break forzerà l’interruzione
di linea:
\relative c'' { c4 c c \bar "" \break c | c4 c c c | }
Un comando \break successivo a una stanghetta viene ignorato se la
misura precedente termina nel mezzo di una nota (per esempio, quando un
gruppo irregolare inizia in una misura e termina in un’altra). In questo
caso conviene togliere l’incisore Forbid_line_break_engraver dal
contesto Voice e usare una costruzione musicale simultanea inserendo
il \break nel punto giusto della seconda voce:
\new Voice \with { \remove "Forbid_line_break_engraver" } \relative { << { c''2. \tuplet 3/2 { c4 c c } c2. | } { s1 | \break s1 | } >> }
Analogalmente, le interruzioni di linea vengono ignorate quando le travature
oltrepassano una stanghetta. Tale comportamento predefinito può
essere modificato col comando \override Beam.breakable = ##t:
\relative c'' { \override Beam.breakable = ##t c2. c8[ c | \break c8 c] c2. | }
Il comando \noBreak impedisce un’interruzione di linea sulla
stanghetta in cui è inserito.
In una partitura, l’interruzione di linea automatica è vietata per
la musica compresa tra i comandi \autoLineBreaksOff e
\autoLineBreaksOn. Per impedire anche le interruzioni di
pagina, usare i comandi \autoBreaksOff e \autoBreaksOn.
Le interruzioni manuali non sono interessate da questi comandi.
Nota che bloccare le interruzioni di linea automatiche potrebbe
far andare la musica oltre il margine destro se questa non può
essere contenuta in una linea.
Le interruzioni di linea automatiche (ma non le interruzioni di pagina)
possono essere abilitate per singole stanghette usando
\once \autoLineBreaksOn all’inizio di una stanghetta.
Ciò identifica un’interruzione di linea permessa, invece che forzata.
Le impostazioni fondamentali che influenzano la spaziatura della linea
sono indent e line-width, impostate nel blocco
\layout: regolano l’indentazione della prima linea e la
lunghezza delle linee.
Se ragged-right è impostato su vero nel blocco \layout, allora
i sistemi terminano alla loro naturale lunghezza orizzontale, invece di
essere allungati orizzontalmente per riempire l’intera linea. Ciò è
utile per brevi frammenti e per verificare quanto è stretta la spaziatura
naturale.
L’opzione ragged-last è simile a ragged-right, ma agisce
soltanto sull’ultima linea del brano.
\layout {
indent = 0\mm
line-width = 150\mm
ragged-last = ##t
}
|
Per inserire interruzioni di linea a intervalli regolari usare \break
separato da pause spaziatrici e ripetuto con \repeat. Per esempio,
per interrompere le seguenti 28 misure (considerando un tempo di 4/4) esattamente
ogni 4 misure, usare:
<<
\repeat unfold 7 {
s1 \noBreak s1 \noBreak
s1 \noBreak s1 \break
}
{ la vera musica… }
>>
|
\break,
\noBreak,
\autoBreaksOff,
\autoBreaksOn,
\autoLineBreaksOff,
\autoLineBreaksOn.
Usare una voce apposita per le interruzioni
Spesso è più facile gestire l’informazione sulle interruzioni di linea
e di pagina tenendola separata dalla musica grazie a un’ulteriore voce
che contenga solo pause spaziatrici e i comandi
\break, \pageBreak e altre informazioni di formattazione.
Questo modello diventa utile specialmente quando si modifica
line-break-system-details e altre utili ma lunghe
proprietà di NonMusicalPaperColumnGrob.
music = \relative c'' { c4 c c c } \score { \new Staff << \new Voice { s1 * 2 \break s1 * 3 \break s1 * 6 \break s1 * 5 \break } \new Voice { \repeat unfold 2 { \music } \repeat unfold 3 { \music } \repeat unfold 6 { \music } \repeat unfold 5 { \music } } >> }
Guida alla notazione:
Variabili di \paper per l’interruzione di linea,
Il blocco \layout.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
Guida al funzionamento interno: (internals)LineBreakEvent section ‘LineBreakEvent’ in Guida al Funzionamento Interno.
L’inserimento dei comandi \autoLineBreaksOff o \autoBreaksOff
prima della musica produrrà dei messaggi di errore. Inserire sempre questi
comandi dopo la musica.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Page breaking
Questa sezione descrive i diversi metodi di interruzione di pagina e spiega come modificarli.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Manual page breaking
L’interruzione di pagina predefinita può essere sovrascritta con i
comandi \pageBreak o \noPageBreak. Questi comandi,
analoghi a \break e \noBreak, devono essere
inseriti dopo una stanghetta e forzano o proibiscono l’interruzione
di pagina in quel punto. Ovviamente il comando \pageBreak
forza anche un’interruzione di linea.
I comandi \pageBreak e \noPageBreak possono essere
inseriti anche nel livello superiore, tra le partiture e i testi
(nel blocco markup) di livello superiore.
In un brano, le interruzioni di pagina automatiche sono vietate per
la musica compresa tra i comandi \autoPageBreaksOff e
\autoPageBreaksOn. Le interruzioni di pagina manuali non
sono interessate da questi comandi.
Esistono impostazioni analoghe a ragged-right e
ragged-last che hanno lo stesso effetto sulla spaziatura
verticale. Se ragged-bottom è impostato su #t, i
sistemi non saranno giustificati verticalmente. Quando
ragged-last-bottom è impostato su #t (valore
predefinito), è permesso dello spazio vuoto in fondo all’ultima
pagina (o in fondo all’ultima pagina di ciascun
\bookpart). Vedi
@ref{Fixed vertical spacing paper variables,,Variabili fisse della spaziatura verticale di @code{\paper}}.
Le interruzioni di pagina sono calcolate dalla funzione page-breaking.
LilyPond fornisce vari algoritmi per calcolare le interruzioni di pagina, tra
cui ly:optimal-breaking, ly:page-turn-breaking e
ly:minimal-breaking. Quello predefinito è
ly:optimal-breaking, ma il valore può essere modificato nel
blocco \paper:
\paper {
page-breaking = #ly:page-turn-breaking
}
|
Quando un libro ha molte partiture e pagine, il problema delle interruzioni
di pagina potrebbe essere difficile da risolvere e richiedere lunghi tempi
di elaborazione e molta memoria. Per semplificare il processo di interruzione
delle pagine, si usano i blocchi \bookpart per dividere il libro in
varie parti: in questo modo l’interruzione di pagina si verifica separatamente
in ciascuna parte. Si possono anche usare algoritmi di interruzione di
pagina diversi per le diverse parti del libro.
\bookpart {
\header {
subtitle = "Prefazione"
}
\paper {
%% In una parte contenente soprattutto testo,
%% ly:minimal-breaking potrebbe essere preferibile
page-breaking = #ly:minimal-breaking
}
\markup { … }
…
}
\bookpart {
%% In questa parte, contenente musica, si usa l'algoritmo di
%% interruzione di pagina ottimale.
\header {
subtitle = "Primo movimento"
}
\score { … }
…
}
|
\pageBreak,
\noPageBreak,
\autoPageBreaksOn,
\autoPageBreaksOff.
Guida alla notazione:
Variabili di \paper per l’interruzione di pagina.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
Il prefisso \once non funziona con i comandi \autoPageBreaksOn
e \autoPageBreaksOff. Se l’interruzione di pagina automatica è
disabilitata e poi viene abilitata per permettere un’interruzione di
pagina, deve restare attiva per alcune battute (il numero preciso di
battute dipende dalla partitura) prima di essere disattivata, altrimenti
la possibilità di interrompere la pagina non verrà considerata.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Optimal page breaking
La funzione ly:optimal-breaking è il metodo predefinito di LilyPond
per determinare le interruzioni di pagina. Tenta di individuare un’interruzione
di pagina che minimizzi la densità e l’allungamento, sia orizzontalmente che
verticalmente. Diversamente da ly:page-turn-breaking, non prende in
considerazione le voltate di pagina.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Minimal page breaking
La funzione ly:minimal-breaking fa dei calcoli minimi
per valutare l’interruzione di pagina: riempie una pagina col
maggior numero possibile di sistemi prima di passare a quella
successiva. Dunque potrebbe essere preferibile per le partiture
con molte pagine, per le quali le altre funzioni di interruzione
di pagina potrebbero essere troppo lente o richiedere troppa
memoria, o con molto testo. Si abilita con:
\paper {
page-breaking = #ly:minimal-breaking
}
|
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof One-page page breaking
La funzione ly:one-page-breaking è un algoritmo di interruzione di
pagina per casi speciali che regola automaticamente l’altezza della pagina
per farci entrare la musica, in modo che stia tutto in una sola pagina.
La variabile paper-height del blocco paper viene ignorata, ma le
altre impostazioni funzionano normalmente. In particolare, la spaziatura
tra l’ultimo sistema (o il testo markup di livello superiore) e il piè di pagina
può essere personalizzata grazie a last-bottom-spacing nel blocco paper.
La larghezza della pagina non viene modificata ma può essere impostata con
paper-width nel blocco paper.
ly:one-page-breaking non è attualmente compatibile con
\bookpart.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof One-line page breaking
La funzione ly:one-line-breaking è un algoritmo di interruzione
di pagina per uso speciale in quanto pone ogni brano su una sola pagina e
una singola linea. Non appaiono né titoli né margini, ma viene
mostrato solo il brano musicale.
La larghezza della pagina è regolata in modo che il brano più
lungo stia su una sola linea. In particolare, le variabili paper-width,
line-width e indent del blocco \paper vengono
ignorate, sebbene left-margin e right-margin siano
comunque considerate. L’altezza della pagina resta invariata.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof One-line-auto-height page breaking
La funzione ly:one-line-auto-height-breaking funziona proprio come
ly:one-line-breaking con la differenza che l’altezza della pagina
viene modificata automaticamente per adattarsi all’altezza della musica.
Più precisamente, la variabile paper-height del blocco \paper
viene impostata in modo che abbracci l’altezza della partitura più alta
e i margini superiore e inferiore (top-margin e bottom-margin).
Fare attenzione al fatto che l’impostazione top-system-spacing avrà
effetto sulla posizione verticale della musica. Impostarla su ##f in
un blocco \paper per posizionare la musica tra i margini superiore e
inferiore.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Optimal page turning
È spesso necessario trovare una configurazione delle interruzioni di
pagina in cui ci sia una pausa al termine di ogni due pagine.
In questo modo il musicista può voltare la pagina senza perdere
le note. La funzione ly:page-turn-breaking tenta di trovare
un’interruzione di pagina che minimizzi densità e allungamento, ma
con l’ulteriore restrizione che le voltate di pagina sono permesse
solo in punti specifici.
Ci sono due passi da seguire per usare questa funzione. Prima
occorre abilitarla nel blocco \paper, come è spiegato in
Interruzioni di pagina. Poi bisogna indicare alla funzione dove
sono permesse le interruzioni di pagina.
Ci sono due modi per fare il secondo passo. Si può specificare
manualmente ogni potenziale voltata di pagina, inserendo
\allowPageTurn nei punti adatti del file di input.
Oppure, se ciò è troppo noioso, si può aggiungere l’incisore
Page_turn_engraver a un contesto Staff o Voice. L’incisore
Page_turn_engraver analizzerà il contesto in cerca di sezioni
senza note (non cerca pause, bensì l’assenza di note, in modo che
la polifonia su un singolo rigo con pause in una delle parti non
confonda Page_turn_engraver). Quando trova una sezione
senza note abbastanza lunga, Page_turn_engraver inserirà il
comando \allowPageTurn nella stanghetta finale di quella
sezione, a meno che non ci sia una stanghetta ‘speciale’ (come
una doppia stanghetta), nel qual caso il comando \allowPageTurn
sarà inserito nella stanghetta finale “speciale” della sezione.
L’incisore Page_turn_engraver legge la proprietà di contesto
minimumPageTurnLength per determinare quanto deve essere lunga
una sezione senza note prima che una voltata di pagina sia considerata.
Il valore predefinito di minimumPageTurnLength è
(ly:make-moment 1/1). Per disabilitare le voltate di pagina,
impostarla su un valore “molto grande”.
\new Staff \with { \consists "Page_turn_engraver" }
{
a4 b c d |
R1 | % voltata di pagina permessa qui
a4 b c d |
\set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
R1 | % voltata di pagina non permessa qui
a4 b r2 |
R1*2 | % voltata di pagina permessa qui
a1
}
|
Quando si usano ripetizioni con finali alternativi, l’incisore Page_turn_engraver
permetterà una voltata di pagina durante la ripetizione soltanto se c’è
abbastanza tempo all’inizio e alla fine della ripetizione per voltare
indietro la pagina. Se la ripetizione è troppo breve, si può usare
Page_turn_engraver per disabilitare le voltate impostando
un valore appropriato per la proprietà di contesto minimumRepeatLengthForPageTurn.
In questo caso Page_turn_engraver consentirà le voltate soltanto nelle
ripetizioni la cui durata sia maggiore del valore specificato.
I comandi per le voltate di pagina (\pageTurn, \noPageTurn
e \allowPageTurn), possono essere usati anche nel livello superiore,
nei blocchi markup di livello superiore e tra una partitura e l’altra.
\pageTurn,
\noPageTurn,
\allowPageTurn.
Guida alla notazione:
Variabili di \paper per l’interruzione di linea.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
Usare soltanto un incisore Page_turn_engraver per partitura. Se ce
n’è più d’uno, interferiranno uno con l’altro.
Guida alla notazione: Spaziatura verticale.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] |
This document was generated by gub on Luglio 13, 2020 using texi2html 1.82.
Altre lingue: English, català, deutsch, español, français, 日本語.
A proposito della selezione automatica della lingua.