29.2 Posicionamiento explícito de los pentagramas y los sistemas

Es posible enfrentarse al espaciado vertical de una forma distinta (comparado con lo que se ha visto en las secciones previas) utilizando la propiedad line-break-system-details del objeto gráfico NonMusicalPaperColumn. Mientras que los mecanismos del espaciado vertical flexible especifican relleno vertical, line-break-system-details puede especificar posiciones verticales exactas sobre la página.

Esta propiedad contiene cinco subpropiedades diferentes: X-offset (desplazamiento en X) Y-offset (desplazamiento en Y) extra-offset (desplazamiento adicional) alignment-distances (distancias de alineación) y bottom-padding (relleno por debajo).

Para entender cómo funciona cada uno de los distintos ajustes, empezamos observando un ejemplo que no incluye absolutamente ninguna sobreescritura. Mantenemos aisladas tanto la información de los saltos de línea como los de página en una voz dedicada a ello, dividiendo la música en líneas de cinco compases cada una. Esta técnica de crear una voz de saltos ayuda a mantener la disposición separada de la escritura de notas conforme el ejemplo se vuelve más complicado. Consulte Saltos.

\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]

A continuación fijamos los puntos de inicio vertical y horizontal de cada sistema explícitamente usando las subpropiedades Y-offset y X-offset de line-break-system-details.

\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \once \override
            Score.NonMusicalPaperColumn
                 .line-break-system-details.Y-offset = 0
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn
                 .line-break-system-details.Y-offset = 30
          \once \override
            Score.NonMusicalPaperColumn
                 .line-break-system-details.X-offset = 10
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn
                 .line-break-system-details.Y-offset = 50
          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]

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 subpropiedad extra-offset. 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 subpropiedad extra-offset acepta una pareja de números (un pair) que consiste en desplazamientos a lo largo de los ejes X e Y.

\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn
              .line-break-system-details.extra-offset = #'(5 . 5)
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn
              .line-break-system-details.extra-offset = #'(0 . 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]

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. Como puede verse, usamos una lista-A para fijar dos subpropiedades line-break-system-details diferentes al mismo tiempo.

\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((Y-offset . 0)
                 (alignment-distances . (10)))
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((Y-offset . 30)
                 (alignment-distances . (15)))
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((Y-offset . 65)
                 (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]

El ejemplo siguiente muestra cómo fijar las posiciones verticales de varios pentagramas dentro de un sistema. Observe que alignment-distances se aplica directamente a los pentagramas, sin preocuparse de las agrupaciones hechas con StaffGroup o similares. El valor #f indica que se debe usar el valor predeterminado.

\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((Y-offset . 0)
                 (alignment-distances . (15 8)))
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((Y-offset . 35)
                 (X-offset . 10)
                 (alignment-distances . (#f 8)))
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((Y-offset . 65)
                 (alignment-distances . (8 15)))
          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]

La última subpropiedad de line-break-system-details, bottom-padding, tiene un efecto similar al de last-bottom-spacing. Sin embargo, observe que no guarda una dimensión de espaciado que se pueda estirar o comprimir, sino un valor de relleno rígido y fijo a partir del extremo inferior de la página hasta el pentagrama inferior. Aquí aparece el fragmento de prueba con la parte inferior justificada, mostrando la distancia por omisión.

\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' }
      }
    >>
  }
  \paper { ragged-last-bottom = ##f }
}
[image of music]

Al fijar un valor para bottom-padding se obtiene el resultado siguiente.

\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          s1*5 \break
          s1*5 \break
          \once \override
            Score.NonMusicalPaperColumn.line-break-system-details =
              #'((bottom-padding . 20))
          s1*5 \break }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
    >>
  }
  \paper { ragged-last-bottom = ##f }
}
[image of music]

Algunos puntos que tener en cuenta:

Véase también

Fragmentos de código: Espaciado.


Referencia de la notación de GNU LilyPond v2.25.33 (development-branch).