Valentin Villenave wrote:
2008/2/15, Mats Bengtsson <[EMAIL PROTECTED]>:
To understand why, you have to understand what the default setting
of DynamicLineSpanner #'Y-extent does, namely to calculate the actual
extent of the included dynamics indications. Then, once this has done,
the placement of the full DynamicLineSpanner is determined using the
padding and staff-padding properties, that specify the distance from
the upper edge of the full DynamicLineSpanner to the closest note and/or
staff. When you instead specify a fixed value of Y-extent, LilyPond
won't care about the actual extent of the dynamics and align it as if
the top was at, say, 1 (if you set #'Y-extent = #'(-1 . 1)) relative to
the internal reference point of the DynamicLineSpanner. To complete the
picture, every element included in the DynamicLineSpanner, such as a
Hairpin or DynamicText makes its own alignment relative to the
reference point of the DynamicLineSpanner.
Quite interesting... But doesn't that make some collisions more likely
to happen?
Of course! You are fooling LilyPond into believing that the objects have a
different size than the their true size, so the collision avoidance
mechanism
gets the wrong information. As long as you're sure to over-estimate the true
size of the objects, then you should be on the safe side.
This is the reason that I specified minimum-Y-extent instead of Y-extent
for the
TextScript objects in a previous example. However, for some reason I didn't
manage to get good results when I replaced Y-extent by minimum-Y-extent
for the DynamicLineSpanner object, so I don't fully understand the
mechanism.
Anyway, here's a snippet to demonstrate your point (tell me if my
explanations aren't correct).
http://lsr.dsi.unimi.it/LSR/Item?id=387
Since the forte symbols are slightly cut at the bottom of the snippet, the
lower extent setting of -1 should probably be changed to something like
-1.5.
You don't mention the TextScript objects in the explanation. For example,
you could just add "The same idea is used to align the text scripts along
their baseline."
/Mats
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user