[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: order of layout operations, and \shapeII
From: |
Janek Warchoł |
Subject: |
Re: order of layout operations, and \shapeII |
Date: |
Sat, 30 Nov 2013 12:37:04 +0100 |
Hi,
2013/11/27 Keith E OHara <address@hidden>:
> There have been a couple bug-reports (3669 3677) coming from users wanting
> to access LilyPond's layout decisions, in order to adjust those decisions.
> [...]
>
> The reference point 'ref' is the System, with origin usually the uppermost
> point in the System, so the output would normally be (-2 . -1).
>
> If we remove the \break, however, the Staff seems not yet to have been
> placed in the System when #'positions is evaluated; the Staff reference
> point (the midline) seems to be at the reference point of the System, as the
> note-head is reported to span (0 . 1).
>
> (Things get more complicated if there is a RehearsalMark, which inserts
> itself on the first Staff, probably moving that Staff down relative to
> System, when its property 'after-line-breaking = move-to-extremal-staff is
> evaluated.)
>
> The layout in LilyPond is not driven by a procedure; the functions that make
> layout decisions call each other as needed (functional, rather than
> procedural, programming). So callbacks generally should handle being called
> whenever the decision they support is requested.
Aaaah, this is very helpful, thanks a lot!
> My only suggestion right now is to try to write callback functions that are
> robust to being activated at different stages of layout. Can anyone see a
> way to write the \shapeII function at
> <http://lists.gnu.org/archive/html/lilypond-user/2013-11/msg00832.html> so
> that it computes self-consistent positions for a slur using data either
> before, or after, LilyPond has placed each Staff relative to the System ?
Maybe it would be enough to use the staff as the 'ref' (instead of the
system)? I don't see any predefined function for getting the staff,
though - it needs to be written. I'll gladly experiment with this,
but i don't know when i'll have time :(
best and thanks for the explanation,
Janek