4.4.3 Elusione delle collisioni verticali
Intuitivamente, ci sono alcuni oggetti della notazione musicale che appartengono al rigo e altri che devono essere disposti fuori dal rigo. Gli oggetti esterni al rigo comprendono i numeri di chiamata, il testo e le dinamiche (d’ora in avanti tutti questi elementi saranno chiamati oggetti esterni al rigo). La regola di LilyPond per il posizionamento verticale degli oggetti esterni al rigo è di disporli il più vicino possibile al rigo ma non così vicino da farli collidere con un altro oggetto.
LilyPond usa la proprietà outside-staff-priority
per determinare
se un grob è un oggetto fuori dal rigo: se outside-staff-priority
è un numero, il grob è un oggetto esterno al rigo. outside-staff-priority
indica a LilyPond anche in quale ordine disporre gli oggetti.
LilyPond posiziona prima tutti gli oggetti che non sono esterni al
rigo. Quindi ordina gli oggetti esterni al rigo in base al loro valore
di outside-staff-priority
(in ordine crescente). Uno per volta, LilyPond
prende gli oggetti esterni al rigo e li dispone in modo che non entrino in
collisione con alcun oggetto che sia già stato disposto. Ovvero, se due
grob esterni al rigo si contendono lo stesso spazio, quello col valore
di outside-staff-priority
più basso sarà posto più vicino al rigo.
Un elenco delle proprietà esterne al rigo si trova in La proprietà outside-staff-priority.
\relative c'' { c4_"Testo"\pp r2. \once \override TextScript.outside-staff-priority = #1 c4_"Testo"\pp % stavolta il testo sarà più vicino al rigo r2. % impostando outside-staff-priority su un non-numero, % disabilitiamo l'elusione automatica delle collisioni \once \override TextScript.outside-staff-priority = ##f \once \override DynamicLineSpanner.outside-staff-priority = ##f c4_"Testo"\pp % qui entrano in collisione }
Il padding verticale intorno agli oggetti esterni al rigo
può essere regolato con outside-staff-padding
.
\relative { \once \override TextScript.outside-staff-padding = #0 a'4-"outside-staff-padding = #0" \once \override TextScript.outside-staff-padding = #3 d-"outside-staff-padding = #3" c-"outside-staff-padding predefinito" b-"outside-staff-padding predefinito" R1 }
Per impostazione predefinita, gli oggetti esterni al rigo sono disposti
in modo da evitare la collisione orizzontale con grob posizionati
precedentemente. Ciò può portare a situazioni in cui gli oggetti
sono posizionati uno vicino all’altro orizzontalmente.
Come è dimostrato nell’esempio successivo, impostando outside-staff-horizontal-padding
si aumenta la spaziatura orizzontale richiesta e in questo caso si sposta
in su il testo per impedire che si avvicini troppo ai tagli addizionali.
\relative { c''4^"Parola" c c''2 R1 \once \override TextScript.outside-staff-horizontal-padding = #1 c,,4^"Parola" c c''2 }
Vedi anche
Frammenti: Spacing.