| [ << Problemas de espaciado ] | [Arriba][Índice general][Índice][ ? ] | [ Cambiar los valores por omisión >> ] | ||
| [ < ] | [ Subir : Espaciado vertical ] | [ Evitar las colisiones verticales > ] | ||
4.4.2 Posicionamiento explícito de los pentagramas y los sistemas
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 tres ajustes diferentes:
-
X-offset(desplazamiento en X) -
Y-offset(desplazamiento en Y) -
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:
- directamente en medio de las notas
- en un bloque
\context - en el bloque
\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 la información de los saltos de línea y 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 Utilizar una voz adicional para los saltos de línea.
Los saltos explícitos dividen la música de forma regular en seis
compases por línea. El espaciado vertical es el resultado de los
ajustes predeterminados de LilyPond. Para establecer explícitamente
el punto de origen vertical de cada sistema, podemos establecer 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 . 80))
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.
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 . (15)))
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 . 100)
(alignment-distances . (15)))
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:
- Al usar
alignment-distances, la letra y otras líneas que no son pautas, no cuentan como un pentagrama. - Las unidades de los números que se pasan a
X-offset,Y-offsetyalignment-distancesse 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. - A causa de que los ajustes a
NonMusicalPaperColumn #'line-break-system-detailsdados 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.
Véase también
Fragmentos de código: Spacing.
| [ << Problemas de espaciado ] | [Arriba][Índice general][Índice][ ? ] | [ Cambiar los valores por omisión >> ] | ||
| [ < ] | [ Subir : Espaciado vertical ] | [ Evitar las colisiones verticales > ] | ||