[ << Problemas de espaciado ] | [Arriba][Índice general][Índice][ ? ] | [ Cambiar los valores por omisión >> ] | ||
[ < Espaciado vertical ] | [ Subir : Espaciado vertical ] | [ > ] |
4.4.1 Espaciado vertical dentro de un sistema
La altura de cada sistema se determina en dos fases. Primero, todos los pentagramas se disponen según la cantidad de espacio vacío disponible. Después, las líneas que no son pautas (p.ej. la letra o los nombres de acorde) se distribuyen entre las pautas.
Espaciado entre los pentagramas
El espaciado entre los pentagramas se controla mediante la propiedad next-staff-spacing del grob VerticalAxisGroup. Esta propiedad es una lista-A de cuatro elementos: space, minimum-distance, padding y stretchability:
- space es el tamaño del espacio ensanchable entre la línea media de un pentagrama hasta la línea media del pentagrama siguiente.
- minimum-distance proporciona un límite inferior sobre la distancia final entre la línea central de un pentagrama hasta la línea central del pentagrama siguiente. Esto es, si una página tiene muchos sistemas y necesita comprimirse, la distancia desde este pentagrama hasta el siguiente nunca se comprimirá a menos de minimum-distance.
- padding es la cantidad de espacio vacío que debe estar presente entre el final de un pentagrama y el principio del siguiente. Se diferencia de minimum-distance en que el efecto de padding depende de la altura de los objetos que están sobre el pentagrama. Por ejemplo, es más probable que padding entre en efecto para pentagramas que tienen notas muy agudas por encima de la pauta.
-
stretchability controla la propensión del espacio ensanchable a
ampliarse cuando lo hace el sistema. Los valores grandes producen que
un sistema se amplíe más, mientras que un valor de cero evita que el
espacio se amplíe en absoluto. Si se deja sin establecer, el valor
predeterminado de stretchability será
space - minimum-distance
.
#(set-global-staff-size 16) \new StaffGroup << % Since space is small and there is no minimum-distance, the distance % between this staff and the next will be determined by padding. \new Staff \with { \override VerticalAxisGroup #'next-staff-spacing = #'((space . 1) (padding . 1)) } { \clef bass c, } % Since space is small and nothing sticks out very far, the distance % between this staff and the next will be determined by minimum-distance. \new Staff \with { \override VerticalAxisGroup #'next-staff-spacing = #'((space . 1) (minimum-distance . 12)) } { \clef bass c, } % By setting padding to a negative value, staves can be made to collide. \new Staff \with { \override VerticalAxisGroup #'next-staff-spacing = #'((space . 4) (padding . -10)) } { \clef bass c, } \new Staff { \clef bass c, } >>
En partituras grandes como las orquestales, es común colocar los pentagramas en grupos. El espacio entre los grupos suele ser mayor que el espacio que hay entre los pentagramas dentro del mismo grupo. Este espacio se puede manipular con el grob StaffGrouper: el valor predeterminado de next-staff-spacing para VerticalAxisGroup es una función de ‘callback’ que opera por el procedimiento de buscar un grob StaffGrouper que contenga al pentagrama. Si encuentra un grob StaffGrouper y el pentagrama en cuestión está en mitad de un grupo, lee la propiedad between-staff-spacing de StaffGrouper y la devuelve. Si el pentagrama en cuestión es el último de un grupo, la función de ‘callback’ lee la propiedad after-last-staff-spacing de StaffGrouper y la devuelve. Si no encuentra un grob StaffGrouper, lee default-next-staff-spacing a partir de su VerticalAxisGroup y lo devuelve.
#(set-global-staff-size 16) << \new PianoStaff \with { \override StaffGrouper #'between-staff-spacing #'space = #1 \override StaffGrouper #'between-staff-spacing #'padding = #0 \override StaffGrouper #'after-last-staff-spacing #'space = #20 } << \new Staff c'1 \new Staff c'1 >> \new StaffGroup \with { \override StaffGrouper #'between-staff-spacing #'space = #1 \override StaffGrouper #'between-staff-spacing #'padding = #0 } << \new Staff c'1 \new Staff c'1 >> >>
[ << Problemas de espaciado ] | [Arriba][Índice general][Índice][ ? ] | [ Cambiar los valores por omisión >> ] | ||
[ < ] | [ Subir : Espaciado vertical dentro de un sistema ] | [ Espaciado vertical entre sistemas > ] |
Espaciado de las líneas que no son pautas
Después de que se han determinado las posiciones de los pentagramas, se distribuyen las líneas que no son pautas entre los pentagramas. Cada una de esas líneas tiene una propiedad staff-affinity que controla su alineamiento vertical. Por ejemplo:
\new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN }
crea un contexto de letra que se situará junto al pentagrama que tiene
por debajo. El establecimiento de staff-affinity a algo que no
sea un número (#f
, por ejemplo) hace que la línea se trate como
si fuera una pauta. De forma recíproca, el establecimiento de
staff-affinity para un pentagrama hace que se le trate como si
no fuera una pauta.
Las líneas que no son pautas admiten tres propiedades para controlar su espaciado. Cada una de estas propiedades es una lista-A del mismo formato que next-staff-spacing, véase más arriba.
-
Si la línea más cercana en la dirección de staff-affinity es una
pauta, entonces inter-staff-spacing da el espacio entre la línea
que no es una pauta y la pauta. Si staff-affinity es
CENTER
, entonces se usa inter-staff-spacing para las dos direcciones. - Si línea más cercana en la dirección de staff-affinity no es una pauta, entonces inter-loose-line-spacing da el espaciado entre las dos líneas que no son pautas.
- Si la línea más cercana en la dirección opuesta a staff-affinity es una pauta, entonces non-affinity-spacing da el espacio entre la línea que no es una pauta y la pauta. esto se puede usar, por ejemplo, para requerir una cantidad de relleno mínima entre una línea de letra y el pentagrama a que no pertenece.
#(set-global-staff-size 16) \layout { \context { \Lyrics % By default, Lyrics are placed close together. Here, we allow them to % be stretched more widely. \override VerticalAxisGroup #'inter-loose-line-spacing #'stretchability = #1000 } } \new StaffGroup << \new Staff \with { \override VerticalAxisGroup #'next-staff-spacing = #'((space . 30)) } { c'1 } \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #UP } \lyricmode { up } \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricmode { center } \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \lyricmode { down } \new Staff { c'1 } >>
Véase también
Fragmentos de código: Spacing.
Referencia de funcionamiento interno: VerticalAxisGroup, VerticalAlignment, Axis_group_engraver.
Advertencias y problemas conocidos
Las líneas adyacentes que no son pentagramas debieran tener valores de staff-affinity no crecientes desde arriba hasta abajo. Por ejemplo, el comportamiento de
<< \new Staff c \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #UP } \new Staff c >>
es indeterminado.
Una línea que no es una pauta, al final de un sistema, debiera tener
establecido staff-affinity al valor UP
. De forma
similar, una línea que no es una pauta al principio de un sistema
debiera tener staff-affinity establecido al valor DOWN
.
[ << Problemas de espaciado ] | [Arriba][Índice general][Índice][ ? ] | [ Cambiar los valores por omisión >> ] | ||
[ < ] | [ Subir : Espaciado vertical dentro de un sistema ] | [ Espaciado vertical entre sistemas > ] |