[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.4 Espaciado vertical

@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.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.4.1 Espaciado vertical flexible dentro de los sistemas

@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:

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.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Propiedades de espaciado dentro de los sistemas

@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 pautaPunto de referencia
ChordNameslínea de base
NoteNameslínea de base
Lyricslínea de base
Dynamicsla mitad de la altura de la ‘m’
FiguredBasspunto más alto
FretBoardslínea superior

En la siguiente imagen, las líneas horizontales indican las posiciones de estos puntos de referencia:

[image of music]

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.

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

Se 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-spacing

Una 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-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) 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-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, 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-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, y staff-affinity es UP o DOWN.

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, 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.

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 grob VerticalAxisGroup de una pauta individual se puede sobreescribir con distintos ajustes de espaciado para dicha pauta.

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 propiedad staff-staff-spacing del grob VerticalAxisGroup de una pauta individual se puede sobreescribir con distintos ajustes de espaciado para dicha pauta.

Véase también

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] [ ? ]

Espaciado de pautas no agrupadas

@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:

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 | }
>>

[image of music]

Véase también

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] [ ? ]

Espaciado de pautas agrupadas

@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:

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 }
  >>
>>

[image of music]

Véase también

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] [ ? ]

Espaciado de las líneas que no son pautas

@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:

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 }
>>

[image of music]

Véase también

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] [ ? ]

4.4.2 Posicionamiento explícito de los pentagramas y los sistemas

@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:

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:

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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

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' } }
      >>
    >>
  }
}

[image of music]

Algunos puntos que tener en cuenta:

Véase también

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.4.3 Evitar las colisiones verticales

@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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

Véase también

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.