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.
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
El relleno vertical entre un objeto fuera del pentagrama y los grobs
posicionados previamente se puede controlar con
outside-staff-padding
.
\once \override TextScript #'outside-staff-padding = #0 a'^"This text is placed very close to the note" \once \override TextScript #'outside-staff-padding = #3 c^"This text is padded away from the previous text" c^"This text is placed close to the previous text"
De forma predeterminada, los objetos fuera del pentagrama se colocan
sólo para evitar 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. El espacio
vertical entre pentagramas se puede fijar también de manera que los
objetos fuera del pentagrama se sitúen de forma intercalada. El
establecimiento del relleno horizontal
outside-staff-horizontal-padding
ocasiona que un objeto se
desplace verticalmente para que tal situación no ocurra.
% the markup is too close to the following note c4^"Text" c4 c''2 % setting outside-staff-horizontal-padding fixes this R1 \once \override TextScript #'outside-staff-horizontal-padding = #1 c,,4^"Text" c4 c''2
Véase también
Fragmentos de código: Spacing.