Referencia de la notación de GNU LilyPond: 4.4.3 Explicit staff and system positioning

### 4.4.3 Explicit staff and system positioning

Una forma de entender los ajustes de `VerticalAxisGroup` y de `\paper` que se explicaron en las dos secciones anteriores es como una colección de distintos ajustes que conciernen principalmente a la cantidad de relleno vertical que adquieren los distintos pentagramas y sistemas al ocupar la página.

Es posible abordar el problema del espaciado vertical de una forma distinta utilizando `NonMusicalPaperColumn #'line-break-system-details`. Donde los ajustes de `VerticalAxisGroup` y de `\paper` especifican el relleno vertical, `NonMusicalPaperColumn #'line-break-system-details` especifica las posiciones verticales exactas en la página.

`NonMusicalPaperColumn #'line-break-system-details` acepta una lista asociativa de cinco ajustes distintos:

- `X-offset`
- `Y-offset`
- `alignment-offsets`
- `alignment-extra-space`
- `fixed-alignment-extra-space`

Las sobreescrituras de los objetos gráficos, entre ellas las de `NonMusicalPaperColumn` que aparece 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 sebreescrituras 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))

>     \override NonMusicalPaperColumn
>       #'line-break-system-details #'((alignment-offsets . (0 -15)))

>     \override NonMusicalPaperColumn
>       #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
>                                      (alignment-offsets . (0 -15)))

Para entender cómo funciona cada uno de los distintos ajustes, empezamos observando un ejemplo que no incluye absolutamente ninguna sobreescritura.

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 Using an extra voice for breaks.

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

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 el punto de origen vertical de cada pentagrama dentro de cada sistema. Lo hacemos usando la subpropiedad `alignment-offsets` de `line-break-system-details`.

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-offsets` para controlar el punto de origen vertical de cada sistema y pentagrama. Finalmente, observe que `alignment-offsets` especifica el posicionamiento vertical de los pentagramas pero no de los grupos de pentagramas.

Algunos puntos que tener en cuenta:

- Al usar `alignment-offsets`, la letra cuenta como un pentagrama.
- Las unidades de los números que se pasan a `X-offset`, `Y-offset` y `alignment-offsets` 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.
- A causa de que los ajustes a `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.

#### Véase también

Fragmentos de código: Spacing.

Other languages: English.

#### Manual de referencia de la notación