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

Referencia de la notación: Uso del break-alignable-interface.

Manual de extensión: 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

[image of music]


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-axisdirection
propiedadpropiedadcolocación
0-1izquierda
01derecha
1-1debajo
11encima

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 y 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"

[image of music]

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 y 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 dela 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

[image of music]


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.

Cada tipo de objeto tiene su propio punto de referencia predeterminado, con el que se alinean las marcas de ensayo:

% The rehearsal mark will be aligned to the right edge of the Clef
\override Score.RehearsalMark.break-align-symbols = #'(clef)
\key a \major
\clef treble
\mark "↓"
e'1
% The rehearsal mark will be aligned to the left edge of the Time Signature
\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
\key a \major
\clef treble
\time 3/4
\mark "↓"
e'2.
% 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
e'1
\breathe
\mark "↓"

[image of music]

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 aligned to the right edge of the Key Signature
\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef treble
\mark "↓"
e'1
% The rehearsal mark will be aligned to the right edge of 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

[image of music]

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

[image of music]

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 "↓"
e'1
% 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 "↓"
e'1

[image of music]


LilyPond — Referencia de la notación v2.23.82 (rama de desarrollo).