lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: \StaffGroup \consists "Mark_engraver"


From: Joe Neeman
Subject: Re: \StaffGroup \consists "Mark_engraver"
Date: Sat, 21 Oct 2017 22:48:02 -0500

On Sat, Oct 21, 2017 at 5:15 PM, David Kastrup <address@hidden> wrote:
Joe Neeman <address@hidden> writes:

> I have a hunch: once upon a time (IIRC), the staves of each StaffGroup
> were contained in some container grob (maybe VerticalAxisGroup?). The
> vertical spacing was done heirarchically, so the VerticalAxisGroup was
> in charge of spacing the staves of a StaffGroup, and then the System
> would space those groups. This led to poor vertical spacing, and so
> the intermediate VerticalAxisGroups were scrapped.
>
> So what does this have to do with Mark_engraver? Well my hunch is that
> a long time ago, if you had moved Mark_engraver to the \StaffGroup
> context then those marks would have ended up living inside the
> VerticalAxisGroup belonging to those staves, so it would have shown up
> in the right place.  With the intermediate VerticalAxisGroup gone,
> there's no intermediate grob to take parentage of the mark, and so it
> bubbles all the way up to the System.
>
> I'll try to find some time this weekend to investigate this hunch...

It looks like I might have been right (at least about what's happening now -- I didn't delve into the history). I've whipped up a quick patch (not well-tested) that seems to fix it. 

That would be great!  The doc string of Mark_engraver suggests that
Mark_engraver should only be moved together with Staff_grouping_engraver
(?) but It appears to me that this scheme could be troublesome if you
don't want to keep the bar numbers where they are?

At least on the test I'm using (which I got from the bug report), the bar numbers seem to stay where they are without problems...

Best,
Joe

Attachment: 0001-Change-the-heuristic-in-move_to_extremal_staff.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]