Hi again,
On Fri, Oct 7, 2016 at 9:11 AM, David Nalesnik <address@hidden> wrote:
Hi Rutger,
On Fri, Oct 7, 2016 at 2:30 AM, Rutger Hofman <address@hidden> wrote:
Hello list,
David Nalesnik wrote a scheme TextSpanner that honours the spanner-id
predicate. This is really, really great: I no longer have to create new
Voices for overlapping TextSpanners. But it has a feature/bug that is really
unwelcome: if the \stopTextSpan is after a spacer note (maybe by using David
Kastrup's now famous \after), this spacing is ignored. The right-bound text
appears immediately after the 'true' note.
Two observations:
- the standard TextSpanner behaves correctly
- the TextSpanner in scheme, which David N. used as an example, also has
the feature/bug
Alternate text spanner:
https://lists.gnu.org/archive/html/lilypond-devel/2015-10/msg00042.html
Attached a minimal example of correct/buggy behaviour, and, for ease of
reference, David N.'s implementation.
I would dearly love to see this fixed, but I have no idea where to look.
This engraver is based on the regression test
'scheme-text-spanner.ly', which suffers from the same limitation.
I'll see what I can figure out.
The problem happens because of a missing check as to whether the
spanner we are building has a left/right bound. The attached should
work, though would you mind testing it on an example that has multiple
spanners?
Best,
David
P.S. The checks are also missing in the regression test. I need to
get back into contributing, so I will attempt to bring the regression
test more in line with the C++ original in
lily/text-spanner-engraver.cc