4.4.3 Evitar las colisiones verticales

Podemos decir intuitivamente que algunos objetos de la notación musical pertenecen al pentagrama y otros se sitúan fuera del pentagrama. Entre los objetos que pertenecen al exterior del pentagrama están las marcas de ensayo, las marcas textuales y las indicaciones de dinámica (en lo sucesivo, les llamaremos objetos fuera del pentagrama). La regla de LilyPond para la colocación vertical de los objetos fuera del pentagrama es ponerlos tan cerca del pentagrama como sea posible pero no tan próximos como para que choquen con otro objeto.

LilyPond utiliza la propiedad outside-staff-priority para determinar si un grob es un objeto fuera del pentagrama: si outside-staff-priority es un número, el grob es un objeto fuera del pentagrama. Además, outside-staff-priority informa a LilyPond en qué orden se debe situar los objetos.

En primer lugar, LilyPond sitúa todos los objetos que no pertenecen al exterior del pentagrama. Después ordena los objetos fuera del pentagrama de acuerdo a su prioridad outside-staff-priority (en orden creciente). LilyPond toma los objetos fuera del pentagrama uno a uno y los coloca de forma que no choquen con ningún objeto que ya haya sido colocado. Esto es, si dos grobs fuera del pentagrama compiten por el mismo espacio, el que tiene la prioridad outside-staff-priority más baja se colocará más próximo al pentagrama.

Hay un listado completo de las prioridades outside-staff-priorities en La propiedad outside-staff-priority (prioridad fuera del pentagrama).

\relative c'' {
  c4_"Text"\pp
  r2.
  \once \override TextScript.outside-staff-priority = #1
  c4_"Text"\pp % this time the text will be closer to the staff
  r2.
  % by setting outside-staff-priority to a non-number,
  % we disable the automatic collision avoidance
  \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 relleno vertical que rodea a los objetos fuera del pentagrama se puede controlar 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-"default outside-staff-padding"
  b-"default outside-staff-padding"
  R1
}

[image of music]

De forma predeterminada, los objetos fuera del pentagrama se colocan de forma que eviten una colisión horizontal con los grobs posicionados previamente. Esto puede llevar a situaciones en las que los objetos se colocan muy próximos entre sí en el sentido horizontal. Como se muestra en el ejemplo que aparece más abajo, al establecer outside-staff-horizontal-padding se incrementa el espacio horicontal necesario, y en este caso mueve el texto hacia arriba para evitar que quede demasiado cerca de las líneas adicionales.

\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]

Véase también

Fragmentos de código: Spacing.


Referencia de la notación de GNU LilyPond v2.25.21 (rama de desarrollo).