Dimensione dei grob

Estensione dei grob

Dobbiamo innanzitutto sapere come i grob occupano lo spazio. Tutti i grob hanno al loro interno un punto di riferimento che viene usato per posizionarli in modo relativo all’oggetto genitore da cui derivano. Questo punto nel grob viene poi disposto a una distanza orizzontale, X-offset, e a una distanza verticale, Y-offset, dall’oggetto genitore. L’estensione (extent) orizzontale dell’oggetto è data da una coppia di numeri, X-extent, che indica dove si trovano i margini sinistro e destro rispetto al punto di riferimento. L’ampiezza verticale è ugualmente definita da una coppia di numeri, Y-extent. Queste proprietà appartengono a tutti i grob che supportano l’interfaccia grob-interface.

Per impostazione predefinita, gli oggetti esterni al rigo presentano estensione pari a zero, in modo da potersi sovrapporre nella direzione orizzontale. Ciò si ottiene con un trucco, ovvero dando un valore infinito all’estensione sinistra e infinito negativo a quella destra, impostando la proprietà extra-spacing-width su '(+inf.0 . -inf.0). Per assicurarci che non si sovrappongano nella direzione orizzontale, dobbiamo sovrascrivere il valore di extra-spacing-width per dar loro un po’ più di spazio. Le unità sono lo spazio tra due linee del rigo, dunque spostare il margine sinistro di mezza unità a sinistra e quello destro di mezza unità a destra dovrebbe dare il risultato desiderato:

\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)

Vediamo se funziona nell’esempio precedente:

\dynamicUp
% Aumenta la larghezza di 1 spazio rigo
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
\relative { a'4\f b\mf a\mp b\p }

[image of music]

L’aspetto è migliore, ma sarebbe preferibile avere i segni di dinamica allineati alla stessa linea di base invece di spostarsi su e giù seguendo la posizione delle note. La proprietà che permette di ottenere tale risultato è staff-padding ed è trattata nella sezione relativa alle collisioni (vedi Collisioni tra oggetti).


Manuale di apprendimento di LilyPond v2.25.21 (ramo di sviluppo).