Referencia de la notación de GNU LilyPond: 5.5.1 Alineación de objetos

### 5.5.1 Alineación de objetos

Los objetos gráficos que soportan el interface `self-alignment-interface` y/o el `side-position-interface` se pueden alinear contra un objeto colocado previamente, de diversas maneras. Para ver una lista de estos objetos, consulte self-alignment-interface y side-position-interface.

Todos los objetos gráficos tienen un punto de referencia, una extensión horizontal y una extensión vertical. La extensión horizontal es una pareja de números que dan los desplazamientos a partir del punto de referencia de los bordes izquierdo y derecho, siendo negativos los desplazamientos hacia la izquierda. La extensión vertical es una pareja de números que dan el desplazamiento a partir del punto de referencia hasta los bordes inferior y superior, siendo negativos los desplazamientos hacia abajo.

La posición de un objeto sobre el pentagrama viene dada por los valores de las propiedades `X-offset` e `Y-offset`. El valor de `X-offset` da el desplazamiento desde la coordenada X del punto de referencia del objeto padre, y el valor de `Y-offset` da el desplazamiento a partir de la línea central del pentagrama. Los valores de `X-offset` y `Y-offset` se pueden establecer directamente o se puede dejar que se calculen por parte de procedimientos para conseguir una alineación con el objeto padre.

Nota: Muchos objetos tienen consideraciones de posicionamiento especiales que hacen que se ignore o se modifique cualquier ajuste realizado a `X-offset` o a `Y-offset`, a pesar de que el objeto contemple el interface `self-alignment-interface`. La sobreescritura de las propiedades `X-offset` ó `Y-offset` a un valor fijo hace que se descarte la respectiva propiedad `self-alignment`.

Por ejemplo, una alteración accidental se puede reposicionar verticalmente estableciendo `Y-offset` pero los cambios a `X-offset` no tienen ningún efecto.

Las letras de ensayo se pueden alinear con objetos divisibles como líneas divisorias, claves, armaduras e indicaciones de compás. Hay propiedades especiales que se encuentran en `break-aligned-interface` para el posicionamiento de las letras de ensayo sobre dichos objetos.

#### Véase también

Uso del `break-alignable-interface`, Funciones de callback.

#### Establecer directamente `X-offset` y `Y-offset`

Se pueden dar valores numéricos a las propiedades `X-offset` y `Y-offset` de muchos objetos. El ejemplo siguiente muestra tres notas con una digitación en su posición predeterminada y con los valores `X-offset` y `Y-offset` modificados.

>     a-3
>     a
>     -\tweak #'X-offset #0
>     -\tweak #'Y-offset #0
>     -3
>     a
>     -\tweak #'X-offset #-1
>     -\tweak #'Y-offset #1
>     -3

#### Uso del `side-position-interface`

Un objeto que contempla el `side-position-interface` se puede colocar junto a su objeto padre de forma que los bordes especificados de los dos objetos se toquen. El objeto se puede situar encima, debajo, a la derecha o a la izquierda del objeto padre. El padre no se puede especificar; viene determinado por el orden de los elementos en el flujo de entrada. Casi todos los objetos tienen la cabeza de la nota asociada como padre.

Los valores de las propiedades `side-axis` y `direction` determinan dónde colocar el objeto, como sigue:

`side-axis` | `direction` |
--- | --- | ---
propiedad | propiedad | colocación
`0` | `-1` | izquierda
`0` | `1` | derecha
`1` | `-1` | debajo
`1` | `1` | encima

Si `side-axis` es `0`, `X-offset` se debe establecer al procedimiento `ly:side-position-interface::x-aligned-side`. Este procedimiento devuelve el calor correcto de `X-offset` para situar el objeto al lado izquierdo o derecho del padre de acuerdo con el valor de `direction`.

Si `side-axis` es `1`, `Y-offset` se debe establecer al procedimiento `ly:side-position-interface::y-aligned-side`. Este procedimiento devuelve el valor correcto de `Y-offset` para situar el objeto encima o debajo del padre de acuerdo con el valor de `direction`.

#### Uso del `self-alignment-interface`

Auto-alineación horizontal de los objetos

La alineación horizontal de un objeto que contempla el interface `self-alignment-interface` está controlada por el valor de la propiedad `self-alignment-X`, siempre y cuando la propiedad `X-offset` de este objeto esté establecida a `ly:self-alignment-interface::x-aligned-on-self`. Se le puede dar a `self-alignment-X` cualquier valor real, en unidades de la mitad de la extensión X total del objeto. Los valores negativos mueven el objeto a la derecha, los positivos hacia la izquierda. Un valor de `0` centra el objeto sobre el punto de referencia de su padre, un valor de `-1` alinea el borde izquierdo del objeto sobre el punto de referencia de su padre, y un valor de `1` alinea el borde derecho del objeto sobre el punto de referencia de su padre. Se pueden usar los símbolos `LEFT`, `CENTER` y `RIGHT` en sustitución de los valores `-1, 0, 1`, respectivamente.

Normalmente se usaría la instrucción `\override` para modificar el valor de `self-alignment-X`, pero se puede usar la instrucción `\tweak` para alinear varias anotaciones por separado sobre una sola nota:

>     a'
>     -\tweak #'self-alignment-X #-1
>     ^"left-aligned"
>     -\tweak #'self-alignment-X #0
>     ^"center-aligned"
>     -\tweak #'self-alignment-X #RIGHT
>     ^"right-aligned"
>     -\tweak #'self-alignment-X #-2.5
>     ^"aligned further to the right"

Auto-alineación vertical de los objetos

Los objetos se pueden alinear verticalmente en una forma análoga a la alineación horizontal si la propiedad `Y-offset` está establecida a `ly:self-alignment-interface::y-aligned-on-self`. Sin embargo, a menudo se encuentran implicados otros mecanismos en la alineación vertical: el valor de `Y-offset` es tan sólo una variable que se tiene en cuenta. Esto puede hacer que ajustar el valor de ciertos objetos sea una tarea dificultosa. Las unidades son sólo la mitad de las dimensiones verticales del objeto, que suele ser bastante pequeño, por lo que pueden requerirse números bastante grandes. Un valor de `-1` alinea el borde inferior del objeto con el punto de referencia del objeto padre, un valor de `0` alinea el centro del objeto con el punto de referencia del padre, y un valor de `1` alinea el borde superior del objeto con el punto de referencia del padre. Se pueden usar los símbolos `DOWN`, `CENTER`, `UP` en sustitución de `-1, 0, 1` respectivamente.

Auto-alineación de objetos en las dos direcciones

Estableciendo tanto `X-offset` como `Y-offset`, se puede alinear un objeto en las dos direcciones simultáneamente.

El ejemplo siguiente muestra cómo ajustar una digitación de forma que se acerque a la cabeza de la nota.

>     a
>     -\tweak #'self-alignment-X #0.5  % move horizontally left
>     -\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
>     -\tweak #'self-alignment-Y #-1  % move vertically up
>     -3  % third finger

#### Uso del `break-alignable-interface`

Las letras de ensayo se pueden alinear con objetos de notación distintos a las barras de compás. Estos objetos son `ambitus`, `breathing-sign`, `clef`, `custos`, `staff-bar`, `left-edge`, `key-cancellation`, `key-signature` y `time-signature`.

De forma predeterminada, las letras de ensayo y los números de compás se centran horizontalmente sobre el objeto:

>     % The rehearsal mark will be centered above the Clef
>     \override Score.RehearsalMark #'break-align-symbols = #'(clef)
>     \key a \major
>     \clef treble
>     \mark "↓"
>     e1
>     % The rehearsal mark will be centered above the Time Signature
>     \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
>     \key a \major
>     \clef treble
>     \time 3/4
>     \mark "↓"
>     e2.
>     % The rehearsal mark will be centered above the Breath Mark
>     \override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
>     \key a \major
>     \clef treble
>     \time 4/4
>     e1
>     \breathe
>     \mark "↓"

Se puede especificar una lista de posibles objetos para la alineación. Si algunos de los objetos son invisibles en ese punto debido al valor de `break-visibility` o a valores de visibilidad explícitos para las armaduras y las claves, la letra de ensayo o número de compás se alinean con el primer objeto de la lista que sea visible. Si ningún objeto de la lista es visible, el objeto se alinea con la línea divisoria. Si la línea divisoria es invisible, el objeto se alinea con el punto en el que se encontraría la línea divisoria.

>     % The rehearsal mark will be centered above the Key Signature
>     \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
>     \key a \major
>     \clef treble
>     \mark "↓"
>     e1
>     % The rehearsal mark will be centered above the Clef
>     \set Staff.explicitKeySignatureVisibility = #all-invisible
>     \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
>     \key a \major
>     \clef bass
>     \mark "↓"
>     gis,,1
>     % The rehearsal mark will be centered above the Bar Line
>     \set Staff.explicitKeySignatureVisibility = #all-invisible
>     \set Staff.explicitClefVisibility = #all-invisible
>     \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
>     \key a \major
>     \clef treble
>     \mark "↓"
>     e''1

La alineación de la letra de ensayo con relación al objeto de notación se puede cambiar, como se ve en el ejemplo siguiente. En una partitura con varios pentagramas, este ajuste se debe hacer para todos los pentagramas.

>     % The RehearsalMark will be centered above the Key Signature
>     \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
>     \key a \major
>     \clef treble
>     \time 4/4
>     \mark "↓"
>     e1
>     % The RehearsalMark will be aligned with the left edge of the Key Signature
>     \once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
>     \mark "↓"
>     \key a \major
>     e1
>     % The RehearsalMark will be aligned with the right edge of the Key Signature
>     \once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
>     \key a \major
>     \mark "↓"
>     e1

La letra de ensayo también se puede desplazar al borde derecho o izquierdo en una medida arbitraria. Las unidades son espacios de pentagrama:

>     % The RehearsalMark will be aligned with the left edge of the Key Signature
>     % and then shifted right by 3.5 staff-spaces
>     \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
>     \once \override Score.KeySignature #'break-align-anchor = #3.5
>     \key a \major
>     \mark "↓"
>     e1
>     % The RehearsalMark will be aligned with the left edge of the Key Signature
>     % and then shifted left by 2 staff-spaces
>     \once \override Score.KeySignature #'break-align-anchor = #-2
>     \key a \major
>     \mark "↓"
>     e1

Otros idiomas: English, deutsch, 日本語.

#### LilyPond — Referencia de la notación