Next: Using the <code>break-aligned-interface</code>, Previous: Using the <code>side-position-interface</code>, Up: Aligning objects
self-alignment-interface
Self-aligning objects horizontally
The horizontal alignment of an object which supports the
self-alignment-interface
is controlled by the value of
the self-alignment-X
property, provided the object's
X-offset
property is set to
ly:self-alignment-interface::x-aligned-on-self
.
self-alignment-X
may be given any
real value, in units of half the total X extent of the
object. Negative values move the object to the right, positive
to the left. A value of 0
centers the object on the
reference point of its parent, a value of -1
aligns the
left edge of the object on the reference point of its parent,
and a value of 1
aligns the right edge of the object on the
reference point of its parent. The symbols LEFT
,
CENTER
and RIGHT
may be used instead of the values
-1, 0, 1
respectively.
Normally the \override
command would be used to modify the
value of self-alignment-X
, but the \tweak
command
can be used to separately align several annotations on a single
note:
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"
Self-aligning objects vertically
Objects may be aligned vertically in an analogous way to aligning
them horizontally if the Y-offset
property is set to
ly:self-alignment-interface::y-aligned-on-self
. However,
other mechanisms are often involved in vertical alignment: the
value of Y-offset
is just one variable taken into account.
This may make adjusting the value of some objects tricky.
The units are just half the vertical extent of the object, which
is usually quite small, so quite large numbers may be required.
A value of -1
aligns the lower edge of the object with
the reference point of the parent object, a value of 0
aligns the center of the object with the reference point of the
parent, and a value of 1
aligns the top edge of the object
with the reference point of the parent. The symbols DOWN
,
CENTER
, UP
may be substituted for -1, 0, 1
respectively.
Self-aligning objects in both directions
By setting both X-offset
and Y-offset
, an object may
be aligned in both directions simultaneously.
The following example shows how to adjust a fingering mark so that it nestles close to the note head.
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
This page is for LilyPond-2.11.58 (development-branch).
Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.
Your suggestions for the documentation are welcome.