@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
- Translation of GIT committish: b6f94447415dded7c6e146b41b6139fe76cb84c4
+ Translation of GIT committish: ff7d82711b47d3d31f26e1e6fc012c4055a20059
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.11"
+@c \version "2.17.20"
@node Trucar la salida
@chapter Trucar la salida
* Manual de referencia de funcionamiento interno::
* Apariencia de los objetos::
* Colocación de los objetos::
+* Espaciado vertical::
* Colisiones de objetos::
* Trucajes adicionales::
@end menu
@strong{La instrucción \override}
@menu
-* La instrucción \override::
-* La instrucción \revert::
-* El prefijo \once::
-* La instrucción \overrideProperty::
-* The \tweak command::
+* La instrucción override::
+* La instrucción revert::
+* El prefijo once::
+* La instrucción overrideProperty::
+* La instrucción tweak::
@end menu
-@node La instrucción \override
-@unnumberedsubsubsec La instrucción @code{\override}
-@translationof The \override command
+@node La instrucción override
+@unnumberedsubsubsec La instrucción @code{@bs{}override}
+@translationof The override command
@cindex override, instrucción
@cindex override (sobreescritura), sintaxis de
@end lilypond
-@node La instrucción \revert
-@unnumberedsubsubsec La instrucción @code{\revert}
-@translationof The \revert command
+@node La instrucción revert
+@unnumberedsubsubsec La instrucción @code{@bs{}revert}
+@translationof The revert command
@cindex revert, instrucción
@end lilypond
-@node El prefijo \once
-@unnumberedsubsubsec El prefijo @code{\once}
-@translationof The \once prefix
+@node El prefijo once
+@unnumberedsubsubsec El prefijo @code{@bs{}once}
+@translationof The once prefix
@funindex \once
@funindex once
@end lilypond
Sin embargo, las instrucciones predefinidas de la forma
-@code{\...Neutral}, @code{\...Off} y @code{\un...} utilizan
+@code{\@dots{}Neutral},
+@code{\@dots{}Off} y @code{\un@dots{}} utilizan
internamente @code{\revert} en vez de @code{\override}, por lo que
añadir @code{\once} como prefijo aquí no tiene ningún efecto.
-@node La instrucción \overrideProperty
-@unnumberedsubsubsec La instrucción @code{\overrideProperty}
-@translationof The \overrideProperty command
+@node La instrucción overrideProperty
+@unnumberedsubsubsec La instrucción @code{@bs{}overrideProperty}
+@translationof The overrideProperty command
@cindex overrideProperty, instrucción
@c Maybe explain in a later iteration -td
-@node The \tweak command
-@unnumberedsubsubsec The @code{\tweak} command
+@node La instrucción tweak
+@unnumberedsubsubsec La instrucción @code{@bs{}tweak}
+@translationof The tweak command
@cindex tweak, instrucción
@menu
* La propiedad outside-staff-priority (prioridad fuera del pentagrama)::
-* La instrucción \textLengthOn::
+* La instrucción textLengthOn::
* Posicionamiento de los matices dinámicos::
* Escalado de un «Grob»::
@end menu
hacer sitio para el texto. Esto se hace empleando la instrucción
@code{textLengthOn}.
-@node La instrucción \textLengthOn
-@unnumberedsubsubsec La instrucción @code{\textLengthOn}
-@translationof The \textLengthOn command
+@node La instrucción textLengthOn
+@unnumberedsubsubsec La instrucción @code{@bs{}textLengthOn}
+@translationof The textLengthOn command
@cindex notas, espaciar junto al texto
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
-a4\f b\mf c\mp b\p
+a4\f b\mf a\mp b\p
@end lilypond
@noindent
@cindex @code{extra-spacing-width}
-De forma predeterminada, los objetos fuera-del-pentagrama reciben una
-anchura cero, de manera que pueden solaparse en la dirección
-horizontal. Esto se hace mediante el truco de añadir una cantidad
-infinita a la dimensión más a la izquierda y menos infinito a la
-dimensión más a la derecha estableciendo el valor de
-@code{extra-spacing-width} a @code{'(+inf.0 . -inf.0)}. Así, para
-asegurar que no se superponen en la dirección horizontal tendremos que
-sobreescribir este valor de @code{extra-spacing-width} a @code{'(0
-. 0)} de forma que el verdadero ancho se presente. Esta es la
-instrucción que lo hace para las indicaciones dinámicas:
+De forma predeterminada, los objetos fuera-del-pentagrama reciben
+una anchura cero, de manera que pueden solaparse en la dirección
+horizontal. Esto se hace mediante el truco de hacer que la
+dimensión más a la izquierda sea igual a infinito y que la
+dimensión más a la derecha sea igual a menos infinito,
+estableciendo el valor de @code{extra-spacing-width} a
+@code{'(+inf.0 . -inf.0)}. Así, para asegurar que no se
+superponen en la dirección horizontal tendremos que sobreescribir
+este valor de @code{extra-spacing-width} para darles un poco de
+espacio adicional. Las unidades son el espacio entre dos líneas
+del pentagrama, de forma que debería bastar mover el límite
+izquierdo media unidad a la izquierda y el límite derecho media
+unidad a la derecha:
@example
-\override DynamicText.extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
@end example
@noindent
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
-\override DynamicText.extra-spacing-width = #'(0 . 0)
-a4\f b\mf c\mp b\p |
+% Extend width by 1 staff space
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
+a4\f b\mf a\mp b\p
@end lilypond
@noindent
-Bueno, ciertamente ha hecho que las marcas dinámicas ya no estén
-desplazadas, pero aún quedan dos problemas. Las marcas tendrían que
-separarse un poco más entre sí, y sería mejor si todas estuvieran a la
-misma distancia del pentagrama. Podemos resolver el primer problema
-fácilmente. En vez de hacer cero la anchura
-@code{extra-spacing-width}, podemos añadirle algo más. Las unidades
-son el espacio entre dos líneas de pentagrama, así que al mover el
-límite izquierdo media unidad a la izquierda y el límite derecho media
-unidad hacia la derecha, deberíamos conseguirlo:
+Esto tiene un mejor aspecto, pero quizá habríamos preferido que
+las indicaciones de dinámica estuvieran alineadas sobre la misma
+línea de base en lugar de ir hacia arriba y hacia abajo con las
+notas. La propiedad que lo hace es @code{staff-padding} (relleno
+de pentagrama) que se estudia en la sección dedicada a las
+colisiones (véase @ref{Colisiones de objetos}).
+
+@node Espaciado vertical
+@section Espaciado vertical
+@translationof Vertical spacing
+
+Por lo general, el espaciado vertical de los objetos musicales que
+LilyPond hace es bastante bueno. Veamos cómo se comporta con una
+canción sencilla, con dos voces y acompañamiento de piano:
+
+@lilypond[quote,fragment,ragged-right]
+<<
+ \new ChoirStaff
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
-@cindex DynamicText, ejemplo de sobreescritura
-@cindex extra-spacing-width, propiedad, ejemplo
+No hay ningún problema con el espaciado vertical predeterminado.
+Sin embargo, supongamos que estamos trabajando con un editor que
+tiene ciertos requisitos específicos para el espaciado vertical de
+los pentagramas y la letra: quiere que la letra está más separada
+de las notas, que el acompañamiento de piano esté más separado de
+la línea vocal y que los dos pentagramas de piano estén más juntos
+entre sí. Comenzaremos con la letra.
+
+La letra se encuentra en el interior de un sistem, y por tanto las
+instrucciones para aplicarle el espaciado estarán en
+@ruser{Espaciado vertical flexible dentro de los sistemas}. Allí
+se dice que el texo son líneas del tipo @qq{no-pauta} y por tanto
+la instrucción para cambiar su espaciado hará referencia a la
+propiedad @code{nonstaff}. Para separarlas del pentagrama al que
+pertenecen (la pauta superior) usaremos la propiedad
+@code{relatedstaff}. Para separarlas de la línea inferior
+usaremos la propiedad @code{unrelatedstaff}. Las partes vocales
+pertenecen a un grupo vertical @code{VerticalAxisGroup}, por lo
+que tenemos que ajustar sus propiedades. Probémoslo y veamos si
+funciona.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #5
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #5
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\dynamicUp
-% Extend width by 1 staff space
-\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-a4\f b\mf c\mp b\p
+Bien: sí, funciona, pero quizá demasiado bien. Cuando
+establecemos el @code{padding} (relleno) a 5, LilyPond añade 5
+espacios de pentagrama a la distancia entre los objetos, lo que es
+excesivo para nosotros en este caso. Usaremos un valor de 2.
+
+A continuación, desplazaremos la música de piano para separarla de
+las partes vocales. La música vocal es una @code{ChoirStaff} (un
+contexto de sistema coral), y por tanto tenemos que aumentar el
+espaciado entre ese grupo de pentagramas y el sistema de piano que
+se encuentra debajo. Lo haremos cambiando la
+@code{basic-distance} (distancia básica) del @code{StaffGrouper}
+del @code{staffgroup-staff-spacing}.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff \with {
+ \override StaffGrouper.
+ staffgroup-staff-spacing.basic-distance = #15
+ }
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #2
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #2
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
@end lilypond
-@noindent
-Esto tiene un mejor aspecto, pero quizá habríamos preferido que las
-indicaciones de dinámica estuvieran alineadas sobre la misma línea de
-base en lugar de ir hacia arriba y hacia abajo con las notas. La
-propiedad que lo hace es @code{staff-padding} (relleno de pentagrama)
-que se estudia en la sección siguiente.
+Muy bien. Ahora, sólo nos queda el último requisito de hacer que
+los pentagramas de piano estén más juntos. Para conseguirlo, de
+nuevo alteramos las propiedades del @code{StaffGrouper}, pero esta
+vez vamos a reducir tanto la @code{basic-distance} (distancia
+básica) como el @code{padding} (relleno). Podemos hacerlo como se
+muestra a continuación.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff \with {
+ \override StaffGrouper.
+ staffgroup-staff-spacing.basic-distance = #15
+ }
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #2
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #2
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff \with {
+ \override StaffGrouper.staff-staff-spacing = #'(
+ (basic-distance . 0)
+ (padding . 0))
+ }
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+Con esto los hemos colocado muy juntos entre sí (pero es lo que el
+editor quería). Se podrían haber separado más alterando el
+relleno, @code{padding}, o la distancia básica,
+@code{basic-distance}, si quisiéramos.
+
+Hay muchas formas de alterar el espaciado vertical. Un punto
+clave que debemos recordar es que el espaciado entre objetos
+dentro de un @code{StaffGroup} (como los grupos @code{GrandStaff}
+o @code{PianoStaff}) se controla con las variables de espaciado
+del @code{StaffGrouper}. El espaciado de los pentagramas no
+agrupados (como @code{Lyrics} y @code{Staff}) se controla con las
+variables del @code{VerticalAxisGroup}. Para ver más detalles,
+consulte
+@ruser{Variables de espaciado de paper verticales flexibles} y
+@ruser{Espaciado vertical flexible dentro de los sistemas}.
@node Colisiones de objetos
@menu
* La propiedad padding (relleno)::
-* La propiedadhe right-padding (relleno por la derecha)::
+* La propiedad right-padding (relleno por la derecha)::
* La propiedad staff-padding (relleno de pentagrama)::
* La propiedad self-alignment-X (auto-alineación en X)::
* La propiedad staff-position (posición en el pentagrama)::
de él.
-@node La propiedadhe right-padding (relleno por la derecha)
+@node La propiedad right-padding (relleno por la derecha)
@unnumberedsubsubsec La propiedad @code{right-padding} (relleno por la derecha)
@translationof The right-padding property
@cindex objetos, alineación sobre la línea base
@code{staff-padding} se puede usar para alinear objetos como matices
-dinámicos a lo largo de una línea de base a una altura fija sobre el
-pentagrama, en lugar de hacerlo a una altura que dependa de la
-posición de la nota a la que están adosados. No es una propiedad de
+dinámicos a lo largo de una línea de base a una distancia fija del
+pentagrama, siempre que no exista ningún otro elemento de notación
+que fuerce una distancia mayor al pentagrama. No es una propiedad de
@code{DynamicText} sino de @code{DynamicLineSpanner}. Esto es así
porque la línea de base debe aplicarse por igual a @strong{todas} las
dinámicas, entre ellas las que se han creado como objetos de
@cindex staff-padding, propiedad, ejemplo
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\dynamicUp
-% Extend width by 1 unit
-\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-% Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner.staff-padding = #2
-a4\f b\mf c\mp b\p
+\override DynamicLineSpanner.staff-padding = #3
+a4\f b\mf a\p b\mp
@end lilypond
@unnumberedsubsubsec La propiedad @code{self-alignment-X} (auto-alineación en X)
@translationof The self-alignment-X property
-El ejemplo siguiente muestra cómo esto puede resolver la colisión
-entre un objeto de digitación de cuerda y la plica de una nota
+El ejemplo siguiente muestra cómo ajustar la posición
+de un objeto de digitación de cuerda en relación a la plica de una nota
mediante el alineamiento del límite derecho con el punto de referencia
de la nota «padre»:
La mejor solución aquí es mover el silencio multi-compás hacia abajo,
pues el silencio está en la voz dos. El ajuste predeterminado para
@code{\voiceTwo} (es decir, en la segunda voz de una construcción
-@code{<<@{...@} \\ @{...@}>>}) es que @code{staff-position} tenga el
+@code{<<@{@dots{}@} \\ @{@dots{}@}>>}) es que @code{staff-position} tenga el
valor -4 para MultiMeasureRest, así que tenemos que bajarlo, digamos,
cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}.
\stemDown
% Stem on the d2 should be invisible
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
d2
}
\new Voice {
\stemDown
% Stem on the d2 should be invisible
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
d2
}
\new Voice {
<<
{
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
b8~ b\noBeam
}
\\
<<
{
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
\tweak Stem.length #8
b8~ b\noBeam
}
@node Uso de variables para los ajustes de disposición
@subsection Uso de variables para los ajustes de disposición
-@translationof Using variables for tweaks
+@translationof Using variables for layout adjustments
@cindex variables, usar para sobreescrituras
@cindex sobreescrituras, usar variablas para
@lilypond[quote,verbatim,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
otro archivo:
@example
-%%% guardar esto en un archivo de nombre "definiciones.ily"
+%%% guardar esto en un archivo con el nombre "definiciones.ily"
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
@example
%%% definiciones.ily
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
@example
%%% publicar-web.ily
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function