4.4.1 Espaciado vertical flexible dentro de los sistemas
Tres mecanismos distintos controlan el espaciado vertical flexible dentro de los sistemas, uno por cada una de las categorías siguientes:
- pautas sin agrupar,
-
pautas agrupadas (pautas dentro de un grupo de pentagramas como
ChoirStaff
, etc.), y -
líneas que no son pautas (como
Lyrics
,ChordNames
, etc.).
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 se distribuyen entre las pautas.
Observe que los mecanismos de espaciado estudiados en esta sección
solamente controlan el espaciado vertical de las pautas y líneas que
no son pautas dentro de los sistemas individuales. El espaciado
vertical entre distintos sistemas, partituras, marcados y márgenes se
controla mediante variables de \paper
que se estudian en
Variables de espaciado de \paper
verticales flexibles.
Propiedades de espaciado dentro de los sistemas | ||
Espaciado de pautas no agrupadas | ||
Espaciado de pautas agrupadas |
Propiedades de espaciado dentro de los sistemas
Los mecanismos de espaciado vertical dentro del sistema están
controlados por dos conjuntos de propiedades de grob. El primer
conjunto está asociado con el grob VerticalAxisGroup
, que se
crea por parte de todas las pautas y líneas que no son pautas. El
segundo conjunto está asociado con el grob StaffGrouper
, que
puede crearse por parte de los grupos de pentagramas, pero solamente
si se le llama explícitamente. Estas propiedades se describen
individualmente al final de la presente sección.
Los nombres de estas propiedades (excepto para staff-affinity
)
siguen el formato elemento1-elemento2-spacing
,
donde elemento1
y elemento2
son los
elementos que se van a espaciar. Observe que elemento2
no está necesariamente por debajo de elemento1
; por
ejemplo, nonstaff-relatedstaff-spacing
mide hacia arriba a
partir de la línea del tipo no-pauta si staff-affinity
es
#UP
.
Cada distancia se mide entre los puntos de referencia de los
dos elementos. El punto de referencia para un pentagrama y
otro tipo de pauta es el centro vertical de su StaffSymbol
(es
decir, la línea central si line-count
es un número impar; el
espacio central si line-count
es par). Los puntos de
referencia para las líneas individuales que no son pautas aparecen en
la tabla siguiente:
Línea que no es una pauta | Punto de referencia |
---|---|
| línea de base |
| línea de base |
| línea de base |
| centro vertical |
| punto más alto |
| línea superior |
En la siguiente imagen, las líneas horizontales indican las posiciones de estos puntos de referencia:
Cada una de las propiedades de grob del espaciado vertical (excepto
staff-affinity
) se almacena como una lista-A (lista
asociativa), y todas usan la misma estructura de lista-A que las
variables de espaciado del bloque \paper
que se han estudiado
en Variables de espaciado de \paper
verticales flexibles.
En Modificación de las listas-A
se estudian métodos específicos para la modificación de
las listas-A. Las propiedades de los grobs deben ajustarse con un
\override
dentro de un bloque \score
o \layout
, y
no dentro de un bloque \paper
.
El ejemplo que sigue muestra las dos maneras en que pueden modificarse estas listas-A. La primera declaración actualiza un par clave-valor de forma individual, y la segunda redefine la propiedad completamente:
\new Staff \with { \override VerticalAxisGroup #'staff-staff-spacing #'basic-distance = #10 } { … } \new Staff \with { \override VerticalAxisGroup #'staff-staff-spacing = #'((padding . 1) (basic-distance . 10) (minimum-distance . 9) (stretchability . 10)) } { … }
Para modificar globalmente cualquiera de los ajustes de espaciado,
póngalos dentro del bloque \layout
:
\layout { \context { \Staff \override VerticalAxisGroup #'staff-staff-spacing #'basic-distance = #10 } }
Los ajustes estándar para las propiedades de grob del espaciado vertical están relacionadas en VerticalAxisGroup y en StaffGrouper. Las sobreescrituras predeterminadas para los tipos específicos de líneas que no son pautas están relacionadas en las descripciones de contexto correspondientes en Contexts.
Propiedades del grob VerticalAxisGroup
Las propiedades de VerticalAxisGroup
se suelen ajustar con una
instrucción \override
en el nivel de Staff
(o
equivalente).
-
staff-staff-spacing
Distancia entre la pauta actual y la pauta que está justo por debajo de ella dentro del mismo sistema, incluso si hay más líneas que no son pautas (tales como
Lyrics
) entre las dos pautas. No se aplica a la pauta inferior de un sistema. Esto sustituye a cualquier ajuste heredado del grobStaffGrouper
del grupo de pautas contenedor, si existe. Si no está fijado, y no hay ninguna propiedad deStaffGrouper
que heredar, se usa la propiedaddefault-staff-staff-spacing
.-
default-staff-staff-spacing
Ajustes que utilizar para
staff-staff-spacing
cuando está sin establecer. Se aplica a las pautas no agrupadas y a las pautas agrupadas que no heredan los ajustes del grobStaffGrouper
.-
staff-affinity
Dirección de la pauta que utilizar para el espaciado de la línea actual que no es pauta. Se puede elegir entre
UP
(arriba),DOWN
(abajo) yCENTER
(centro). Si esCENTER
, la línea del tipo no-pauta se coloca equidistante entre las dos pautas contiguas a ambos lados, a no ser que lo impidan colisiones u otras restricciones de espaciado. Las líneas del tipo no-pauta adyacentes han de llevar valores destaff-affinity
no crecientes desde la parte superior hasta la inferior, p.ej. una línea del tipo no-pauta establecida aUP
no debería seguir inmediatamente a otra que esté establecida aDOWN
. Las líneas del tipo no-pauta en la parte superior de un sistema deben usarDOWN
; las de la parte inferior deben usarUP
. El ajuste destaff-affinity
para una pauta hace que se le trate como una línea que no es una pauta. El establecimiento destaff-affinity
a#f
para una línea que no es una pauta hace que se trate como una pauta.-
nonstaff-relatedstaff-spacing
Distancia entre la línea del tipo no-pauta actual y la pauta más próxima en la dirección de
staff-affinity
, si no hay ninguna línea que no sea una pauta entre las dos, ystaff-affinity
esUP
oDOWN
. Sistaff-affinity
esCENTER
, entonces se usanonstaff-relatedstaff-spacing
para las pautas más próximas a los dos lados, incluso aunque aparezcan otras líneas del tipo no-pauta entre la pauta actual y una de las otras.-
nonstaff-nonstaff-spacing
Distancia entre la línea actual del tipo no-pauta y la siguiente línea del tipo no-pauta en la dirección de
staff-affinity
, si las dos están al mismo lado de la pauta relacionada, ystaff-affinity
esUP
oDOWN
.-
nonstaff-unrelatedstaff-spacing
Distancia entre la línea actual del tipo no-pauta y la pauta en la dirección opuesta de
staff-affinity
, si no hay ninguna otra línea del tipo no-pauta entre las dos, ystaff-affinity
esUP
oDOWN
. Se puede usar, por ejemplo, para requerir una cantidad de relleno mínima entre una línea deLyrics
y la pauta a la que no pertenece.
Propiedades del grob StaffGrouper
Las propiedades de StaffGrouper
se suelen ajustar con una
instrucción \override
en el nivel de StaffGroup
(o
equivalente).
-
staff-staff-spacing
Distancia entre pautas consecutivas dentro del grupo de pautas actual. La propiedad
staff-staff-spacing
del grobVerticalAxisGroup
de una pauta individual se usará en su lugar para cualquier pauta que esté dentro del grupo que tiene el valor fijado. Véase tambiéndefault-staff-staff-spacing
.-
staffgroup-staff-spacing
Distancia entre la última pauta del grupo en curso y la pauta que está justo por debajo de ella dentro del mismo sistema, incluso si existen una o más líneas que no son pautas (tales como
Lyrics
) entre las dos pautas. No se aplica al pentagrama o pauta inferior de un sistema. La propiedadstaff-staff-spacing
del grobVerticalAxisGroup
de una pauta individual se usará en su lugar para cualquier pauta dentro del grupo que tenga el valor fijado. Véase tambiéndefault-staff-staff-spacing
.
Véase también
Archivos de inicio: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Referencia de funcionamiento interno: Contexts, VerticalAxisGroup, StaffGrouper.
Espaciado de pautas no agrupadas
Las pautas, tales como los pentagramas (Staff
), pautas
de percusión (DrumStaff
) o de tablatura (TabStaff
),
etc. son contextos que pueden contener uno o más contextos de voz,
pero no pueden contener otras pautas.
Las siguientes propiedades afectan al espaciado de las pautas no agrupadas:
- Propiedades de
VerticalAxisGroup
:-
staff-staff-spacing
-
Estas propiedades de grob se describen individualmente más arriba; véase Propiedades de espaciado dentro de los sistemas.
Están implicadas ciertas propiedades adicionales para las pautas que son parte de un grupo; véase Espaciado de pautas agrupadas.
El ejemplo siguiente muestra cómo la propiedad
staff-staff-spacing
puede afectar al espaciado de pautas no
agrupadas:
\layout { \context { \Staff \override VerticalAxisGroup #'staff-staff-spacing = #'((padding . 1) (basic-distance . 8) (minimum-distance . 7)) } } \new StaffGroup << % The very low note here needs more room than 'space can % provide, so the distance between this staff and the next is % determined by 'padding. \new Staff { b,2 r | } % Here, 'space provides enough room, and there is no need to % compress the space (towards 'minimum-distance) to make room % for anything else on the page, so the distance between this % staff and the next is determined by 'space. \new Staff { \clef bass g2 r | } % By setting 'padding to a negative value, staves can be made to % collide. The lowest acceptable value for 'space is 0. \new Staff \with { \override VerticalAxisGroup #'staff-staff-spacing = #'((padding . -10) (basic-distance . 3.5)) } { \clef bass g2 r | } \new Staff { \clef bass g2 r | } >>
Véase también
Archivos de inicio: ‘scm/define-grobs.scm’.
Fragmentos de código: Spacing.
Referencia de funcionamiento interno: VerticalAxisGroup.
Espaciado de pautas agrupadas
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.
Los grupos de pautas, Staff-groups (tales como
StaffGroup
, ChoirStaff
, etc.) son contextos que pueden
contener al mismo tiempo uno o más pentagramas o pautas.
Las siguientes propiedades afectan al espaciado de las pautas dentro de los grupos:
- Propiedades de
VerticalAxisGroup
:-
staff-staff-spacing
-
default-staff-staff-spacing
-
- Propiedades de
StaffGrouper
:-
staff-staff-spacing
-
staffgroup-staff-spacing
-
Estas propiedades de grob se describen individualmente más arriba; véase Propiedades de espaciado dentro de los sistemas.
El ejemplo siguiente muestra cómo pueden afectar las propiedades del
grob StaffGrouper
al espaciado de las pautas agrupadas:
\layout { \context { \Score \override StaffGrouper #'staff-staff-spacing #'padding = #0 \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1 } } << \new PianoStaff \with { \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20 } << \new Staff { c'1 } \new Staff { c'1 } >> \new StaffGroup << \new Staff { c'1 } \new Staff { c'1 } >> >>
Véase también
Archivos de inicio: ‘scm/define-grobs.scm’.
Fragmentos de código: Spacing.
Referencia de funcionamiento interno: VerticalAxisGroup, StaffGrouper.
Espaciado de las líneas que no son pautas
Las Líneas que no son pautas (tales como Lyrics
,
ChordNames
, etc.) son contextos cuyos objetos de presentación
se imprimen como pentagramas (es decir, en líneas horizontales dentro
de los sistemas). Específicamente, las líneas que no son pautas son
contextos del tipo no-pauta que crean el objeto de presentación
VerticalAxisGroup
.
Las siguientes propiedades afectan al espaciado de las líneas que no son pautas:
- Propiedades de
VerticalAxisGroup
:-
staff-affinity
-
nonstaff-relatedstaff-spacing
-
nonstaff-nonstaff-spacing
-
nonstaff-unrelatedstaff-spacing
-
Estas propiedades de grob se describen individualmente más arriba; véase Propiedades de espaciado dentro de los sistemas.
El ejemplo siguiente muestra cómo la propiedad
nonstaff-nonstaff-spacing
puede afectar el espaciado de líneas
consecutivas que no son pautas. Aquí, mediante el establecimiento de
la clave de ampliabilidad stretchability
a un valor muy grande,
la línea de letra es capaz de ampliarse mucho más de lo que es usual:
\layout { \context { \Lyrics \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'stretchability = #1000 } } \new StaffGroup << \new Staff \with { \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 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
Archivos de inicio: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Fragmentos de código: Spacing.
Referencia de funcionamiento interno: Contexts, VerticalAxisGroup.