| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Vertical spacing
El espaciado vertical está controlado por tres factores: la cantidad de espacio disponible (es decir, el tamaño del papel y los márgenes), la separación entre los sistemas, y la separación entre los pentagramas dentro de un sistema.
| 4.4.1 Espaciado vertical flexible dentro de los sistemas | ||
| 4.4.2 Posicionamiento explícito de los pentagramas y los sistemas | ||
| 4.4.3 Evitar las colisiones verticales |
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Flexible vertical spacing within systems
Tres mecanismos distintos controlan el espaciado vertical flexible dentro de los sistemas, uno por cada una de las categorías siguientes:
ChoirStaff, etc.), y
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 | ||
| Espaciado de las líneas que no son pautas |
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Within-system spacing properties
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 |
|---|---|
ChordNames | línea de base |
NoteNames | línea de base |
Lyrics | línea de base |
Dynamics | la mitad de la altura de la ‘m’ |
FiguredBass | punto más alto |
FretBoards | 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) usa 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.default-staff-staff-spacing.basic-distance = #10
} { … }
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
(stretchability . 10))
} { … }
|
Para modificar globalmente cualquiera de los ajustes de espaciado,
póngalos dentro del bloque \layout:
\layout {
\context {
\Staff
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
}
}
|
Los ajustes estándar para las propiedades de grob del espaciado vertical están relacionadas en (internals)VerticalAxisGroup sección ‘VerticalAxisGroup’ en Referencia de Funcionamiento Interno y en (internals)StaffGrouper sección ‘StaffGrouper’ en Referencia de Funcionamiento Interno. 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 (internals)Contexts sección ‘Contexts’ en Referencia de Funcionamiento Interno.
VerticalAxisGroupLas propiedades de VerticalAxisGroup se suelen ajustar con
una instrucción \override en el nivel de Staff (o
equivalente).
staff-staff-spacingSe utiliza para determinar la 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.
Inicialmente, el valor de espaciado staff-staff-spacing de
un grupo VerticalAxisGroup es una función de Scheme que
aplica las propiedades del StaffGrouper si la pauta forma
parte de un grupo, o el default-staff-staff-spacing de la
pauta en caso contrario. Esto hace posible que las pautas estén
espaciadas de forma diferente cuando están agrupadas. Para
conseguir un espaciado regular sin importar el agrupamiento, esta
función se puede sustituir por una lista-A de espaciado flexible,
utilizando la forma de sobreescritura de redefinición completa que
se ha mostrado más arriba.
default-staff-staff-spacingUna lista-A de espaciado flexible que define el espacio
staff-staff-spacing que se usará para las pautas sin
agrupar, a no ser que se haya sobreescrito explícitamente
staff-staff-spacing con una instrucción \override.
staff-affinityDirecció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) y CENTER (centro). Si es
CENTER, 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 de
staff-affinity no crecientes desde la parte superior hasta
la inferior, p.ej. una línea del tipo no-pauta establecida a
UP no debería seguir inmediatamente a otra que esté
establecida a DOWN. Las líneas del tipo no-pauta en la
parte superior de un sistema deben usar DOWN; las de la
parte inferior deben usar UP. El ajuste de
staff-affinity para una pauta hace que se le trate como una
línea que no es una pauta. El establecimiento de
staff-affinity a #f para una línea que no es una
pauta hace que se trate como una pauta. Establecer
staff-affinity a UP, CENTER, o DOWN
hace que el pentagrama resulte espaciado como si fuera una línea
que no es una pauta.
nonstaff-relatedstaff-spacingDistancia 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, y
staff-affinity es UP o DOWN. Si
staff-affinity es CENTER, entonces se usa
nonstaff-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. Esto
significa que la colocación de una línea que no es una pauta
depende tanto de las pautas que la rodean como de las líneas que
no son pautas y que la rodean. Establecer la ampliabilidad
stretchability de uno de estos tipos de espaciado a un
valor más pequeño provoca que este espaciado domine. El
establecimiento de stretchability a un valor mayor hace que
dicho espaciado tenga un menor efecto.
nonstaff-nonstaff-spacingDistancia 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, y
staff-affinity es UP o DOWN.
nonstaff-unrelatedstaff-spacingDistancia 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, y staff-affinity es
UP o DOWN. Se puede usar, por ejemplo, para
requerir una cantidad de relleno mínima entre una línea de
Lyrics y la pauta a la que no pertenece.
StaffGrouperLas propiedades de StaffGrouper se suelen ajustar con una
instrucción \override en el nivel de StaffGroup (o
equivalente).
staff-staff-spacingDistancia entre pautas consecutivas dentro del grupo de pautas
actual. La propiedad staff-staff-spacing del grob
VerticalAxisGroup de una pauta individual se puede
sobreescribir con distintos ajustes de espaciado para dicha pauta.
staffgroup-staff-spacingDistancia 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 propiedad
staff-staff-spacing del grob VerticalAxisGroup de
una pauta individual se puede sobreescribir con distintos ajustes
de espaciado para dicha pauta.
Referencia de la notación:
Variables de espaciado de \paper verticales flexibles,
Modificación de las listas-A.
Archivos de inicio: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Referencia de funcionamiento interno: (internals)Contexts sección ‘Contexts’ en Referencia de Funcionamiento Interno, (internals)VerticalAxisGroup sección ‘VerticalAxisGroup’ en Referencia de Funcionamiento Interno, (internals)StaffGrouper sección ‘StaffGrouper’ en Referencia de Funcionamiento Interno.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Spacing of ungrouped staves
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:
VerticalAxisGroup:
default-staff-staff-spacing
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
default-staff-staff-spacing puede afectar al espaciado de
pautas no agrupadas. Las mismas sobreescrituras aplicadas a
staff-staff-spacing tendrían el mismo efecto, pero también
se aplicaría en caso de que las pautas estuvieran combinadas en un
grupo o grupos.
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 8) (minimum-distance . 7) (padding . 1)) } } << % The very low note here needs more room than 'basic-distance % can provide, so the distance between this staff and the next % is determined by 'padding. \new Staff { b,2 r | } % Here, 'basic-distance 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 'basic-distance. \new Staff { \clef bass g2 r | } % By setting 'padding to a negative value, staves can be made to % collide. The lowest acceptable value for 'basic-distance is 0. \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 3.5) (padding . -10)) } { \clef bass g2 r | } \new Staff { \clef bass g2 r | } >>
Archivos de inicio: ‘scm/define-grobs.scm’.
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
Referencia de funcionamiento interno: (internals)VerticalAxisGroup sección ‘VerticalAxisGroup’ en Referencia de Funcionamiento Interno.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Spacing of grouped staves
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:
VerticalAxisGroup:
staff-staff-spacing
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 } >> >>
Archivos de inicio: ‘scm/define-grobs.scm’.
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
Referencia de funcionamiento interno: (internals)VerticalAxisGroup sección ‘VerticalAxisGroup’ en Referencia de Funcionamiento Interno, (internals)StaffGrouper sección ‘StaffGrouper’ en Referencia de Funcionamiento Interno.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Spacing of non-staff lines
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 contienen el
grabador
(internals)Axis_group_engraver sección ‘Axis_group_engraver’ en Referencia de Funcionamiento Interno.
Las siguientes propiedades afectan al espaciado de las líneas que no son pautas:
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 } >>
Archivos de inicio: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
Referencia de funcionamiento interno: (internals)Contexts sección ‘Contexts’ en Referencia de Funcionamiento Interno, (internals)VerticalAxisGroup sección ‘VerticalAxisGroup’ en Referencia de Funcionamiento Interno.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Explicit staff and system positioning
Una forma de entender los mecanismos del espaciado vertical flexible que se han explicado más arriba es como una colección de ajustes que controlan la cantidad de relleno vertical entre los pentagramas y los sistemas.
Es posible enfrentarse al espaciado vertical de una forma distinta
utilizando NonMusicalPaperColumn.line-break-system-details.
Mientras que los mecanismos del espaciado vertical flexible
especifican relleno vertical,
NonMusicalPaperColumn.line-break-system-details puede
especificar posiciones verticales exactas sobre la página.
NonMusicalPaperColumn.line-break-system-details acepta una
lista asociativa de cuatro ajustes diferentes:
X-offset (desplazamiento en X)
Y-offset (desplazamiento en Y)
extra-offset (desplazamiento adicional)
alignment-distances (distancias de alineación)
Las sobreescrituras de los objetos gráficos, entre ellas las de
NonMusicalPaperColumn que aparecen más abajo, pueden
ocurrir en tres lugares distintos dentro de un archivo de entrada:
\context
\with
Cuando sobreescribimos NonMusicalPaperColumn, usamos la
instrucción \override usual en los bloques \context
y en el bloque \with. Por otra parte, cuando
sobreescribimos NonMusicalPaperColumn en medio de las
notas, debemos usar la instrucción especial
\overrideProperty. He aquí algunas sobreescrituras de
NonMusicalPaperColumn de ejemplo con la instrucción
especial \overrideProperty:
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20)
(Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((alignment-distances . (15)))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20)
(Y-offset . 40)
(alignment-distances . (15)))
|
Para entender cómo funciona cada uno de los distintos ajustes, empezamos observando un ejemplo que no incluye absolutamente ninguna sobreescritura.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break s1*5 \break s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Esta partitura mantiene aislada tanto la información de los saltos de línea como los de página en una voz dedicada a ello. Esta técnica de crear una voz de saltos ayuda a mantener separada de la escritura de notas conforme el ejemplo se vuelve más complicado. Consulte Saltos.
Utilizando instrucciones \break explícitas, la música se
divide líneas de cinco compases cada una. El espaciado vertical
proviene de los ajustes predeterminados de LilyPond pero el punto
de origen vertical de cada sistema se fija explícitamente usando
el par Y-offset en el atributo
line-break-system-details del grob (objeto gráfico)
NonMusicalPaperColumn:
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Observe que line-break-system-details toma una lista
asociativa de una cantidad de valores potencialmente elevada, pero
aquí sólo fijamos un valor. Observe también que aquí la propiedad
Y-offset determina la posición vertical exacta sobre la
página en la que se trazará cada uno de los nuevos sistemas.
En contraste con el posicionado absoluto que está disponible a
través de Y-offset y de X-offset, es posible un
posicionamiento relativo con la propiedad extra-offset de
line-break-system-details. La colocación es relativa a la
disposición predeterminada o al posicionamiento absoluto creado
mediante el establecimiento de los valores de X-offset y de
Y-offset. La propiedad extra-offset acepta una
pareja de números (un pair) que consiste en desplazamientos
a lo largo de los ejes X e Y.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset . (0 . 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset . (0 . 10))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Ahora que hemos establecido explícitamente el punto de origen
vertical de cada sistema, podemos también establecer manualmente
las distancias verticales entre los pentagramas dentro de cada
sistema. Lo hacemos usando la subpropiedad
alignment-distances de line-break-system-details.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20) (alignment-distances . (10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (15))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 85) (alignment-distances . (20))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Observe que aquí asignamos dos valores distintos al atributo
line-break-system-details del grob
NonMusicalPaperColumn. Aunque el atributo alist de
line-break-system-details acepta muchos parámetros de
espaciado adicionales (entre ellos, por ejemplo, un par
X-offset correspondiente), sólo tenemos que establecer el
desplazamiento Y-offset y los pares
alignment-distances para controlar el punto de origen
vertical de cada sistema y pentagrama. Finalmente, observe que
alignment-distances especifica el posicionamiento vertical
de los pentagramas pero no de los grupos de pentagramas.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0) (alignment-distances . (30 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (10 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100) (alignment-distances . (10 30))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new StaffGroup << \new Staff { \repeat unfold 15 { d'4 d' d' d' } } \new Staff { \repeat unfold 15 { e'4 e' e' e' } } >> >> } }
Algunos puntos que tener en cuenta:
alignment-distances, la letra y otras líneas que no
son pautas, no cuentan como un pentagrama.
X-offset,
Y-offset, extra-offset y alignment-distances
se interpretan como múltiplos de la distancia entre líneas de
pentagrama adyacentes. Los valores positivos mueven a los
pentagramas y a la letra hacia arriba, los valores negativos
mueven los pentagramas y la letra hacia abajo.
NonMusicalPaperColumn.line-break-system-details dados aquí
permiten el posicionamiento de pentagramas y sistemas en cualquier
lugar de la página, es posible violar los márgenes o los límites
del papel, o incluso imprimir pentagramas o sistemas unos encima
de otros. Esto se evitaría pasando a los diferentes ajustes unos
valores razonables.
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Vertical collision avoidance
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 (learning)La propiedad outside-staff-priority (prioridad fuera del pentagrama) sección ‘La propiedad outside-staff-priority (prioridad fuera del pentagrama)’ en Manual de Aprendizaje.
\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 }
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 }
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 }
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] |
Este documento ha sido generado por gub el el 13 julio 2020 utilizando texi2html 1.82.
Otros idiomas: English, català, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.