On Wed, 2010-03-24 at 19:42 -0400, Boris Shingarov wrote: > On Wed, 24 Mar 2010 18:15:45 -0400, Boris Shingarov wrote: > > Hmm, let me understand this better. > > Does it mean that Constrained_breaking::fill_line_details() gets > > called before the line breaks are calculated, and then again after > > Oh, now I understand why!!! The hack addresses the space > between staves within a system. > Bien sûr it's not doing anything to the space between systems > (mine are one-staffers, so it *does* cause the estimation to be > off *a lot*). > The TODO at constrained-breaking.cc:479 clearly explains it.
Keep in mind that a lyric line is the same as a staff to the page-breaker. Don't your one-staffers have lyrics? If so, they are really two-staffers and so the problem could still be in the within-system estimation. > I am now thinking about how to implement this TODO best. > One idea that immediately comes to mind, is to replace the > unified heights with begin- and rest-of-line pairs, dragging them > through all the calls, and unite them at the very end, that is in > constrained-breaking. For one-staff systems, this should be > trivial, but I am not sure how difficult it will be to not break the > general case of multi-staff systems. You would need to separate Line_details.extent_ into Line_details.begin_of_line_extent_ and Line_details.rest_of_line_extent_. I'd suggest writing a System::begin_of_line_extent and System::rest_of_line_extent, which finds the VerticalAlignment, calculates the pure-offsets for the staves and then unifies the appropriate xxx_of_line_extents, with each one at the appropriate offset. Cheers, Joe _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org http://lists.gnu.org/mailman/listinfo/bug-lilypond