4.4.3 Evitar les col·lisions verticals
Podem dir intuïtivament que alguns objectes de la notació musical pertanyen al pentagrama i d’altres se situen fora del pentagrama. Entre els objectes que pertanyen a l’exterior del pentagrama estan les marques d’assaig, les marques textuals i les indicacions de dinàmica (en el que segueix, les anomenarem objectes fora del pentagrama). La regla del LilyPond per a la col·locació vertical dels objectes fora del pentagrama és posar-los tan a prop del pentagrama com sigui possible, però no tan propers com perquè xoquin amb un altre objecte.
El LilyPond fa servir la propietat outside-staff-priority
per a determinar si un grob és un objecte fora del pentagrama: si
outside-staff-priority
és un nombre, el grob és un objecte
fora del pentagrama. A més, outside-staff-priority
informa
al LilyPond en quin ordre s’han de situar els objectes.
En primer lloc, el LilyPond situa tots els objectes que no
pertanyen a l’exterior del pentagrama. Després ordena els
objectes fora del pentagrama d’acord a la seva propietat
outside-staff-priority
(en ordre creixent). El LilyPond
agafa els objectes fora del pentagrama un a un i els col·loca de
forma que no xoquin amb cap objecte que ja hagi estat col·locat.
En altres paraules, si dos gros fora del pentagrama competeixen
pel mateix espai, el que la prioritat
outside-staff-priority
més baixa es col·locarà més proper
al pentagrama.
Hi ha un llistat complet de les prioritats outside-staff-priorities a La propietat outside-staff-priority (prioritat fora del pentagrama).
\relative c'' { c4_"Text"\pp r2. \once \override TextScript.outside-staff-priority = #1 c4_"Text"\pp % aquest cop el text estarà més a prop del pentagrama r2. % establint outside-staff-priority a un no-nombre % deshabilitem la cancel·lació automàtica de col·lisions \once \override TextScript.outside-staff-priority = ##f \once \override DynamicLineSpanner.outside-staff-priority = ##f c4_"Text"\pp % now they will collide }
El farcit vertical que rodeja als objectes fora del pentagrama es
pot controlar amb 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-"default outside-staff-padding" b-"default outside-staff-padding" R1 }
De forma predeterminada, els objectes fora del pentagrama es
col·loquen de forma que evitin una col·lisió horitzontal amb els
grobs posicionats prèviament. Això pot portar a situacions en les
quals els objectes es col·loquen molt propers entre ells en el
sentit horitzontal. Com es mostra a l’exemple que apareix més a
sota, en establir outside-staff-horizontal-padding
s’incrementa l’espai horitzontal necessari, i en aquest cas es mou
el text cap a munt per evitar que quedi massa a prop de les línies
addicionals.
\relative { c''4^"Word" c c''2 R1 \once \override TextScript.outside-staff-horizontal-padding = #1 c,,4^"Word" c c''2 }
Vegeu també
Fragments de codi: Spacing.