On Tue, 2010-03-23 at 19:57 -0400, Boris Shingarov wrote:
> > The estimated height for the whole system _should_ take into account the
> > fact that the lyrics can be squeezed between the systems. Have a look at
> > the comment in align-interface.cc:104 (which should get called as a
> > result of sys->pure_height())
>
> Trying to make head or tail of which child is which, and why lyrics do
> increase the pure_height by much, I am now thouroughly confused by
> something else. The height is calculated by unite()'ing the heights
> of all items and all spanners. I started with a trivial example with
> some repeating notes, and no lyrics and nothing else. There is an
> item amounting to [-0.9:0.3], and a spanner amounting to [-7:0].
With the attached .gdbinit file, you can do
ps grob->self_scm_
to see the type of a grob, or
pg grob
to see its type and its properties. That may help you get a better
understanding of what is going on.
> Ok, I step inside the calculation of pure_height for it, and find another
> (one) spanner. Putting a breakpoint inside the for() loop for the items, I
> never hit it. I'd appreciate a three-liner briefly explaining the design of
> this. (The "pure" vs "non-pure" height also seems of mysterious design).
Until the line-breaking is computed, we can't calculate the horizontal
positioning of any grob. pure-height is an _estimate_ of the real height
of the grob ("pure" because it can be computed without causing
side-effects, whereas the actual height usually can't).
Cheers,
Joe
def ps
call ly_display_scm($arg0)
end
def pg
ps $arg0->self_scm_
ps $arg0->immutable_property_alist_
ps $arg0->mutable_property_alist_
end
def pgv
pg $arg0
ps $arg0->object_alist_
end
_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond