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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

Vegeu també

Fragments de codi: Spacing.


LilyPond — Referència de la notació v2.23.82 (branca de desenvolupament).