Guida alla Notazione di LilyPond: 4.4.3 Elusione delle collisioni verticali

### 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.

#### LilyPond — Guida alla Notazione v2.22.2 (ramo stabile).