Hello Dirk!
Am 16.08.2011 schrieb Dirk Laurie:
> On Tue, Aug 16, 2011 at 03:55:06PM +0200, Rainer Dunker wrote:
> > [...]
> > \\\def\atnextline{\mtxLyricsAdjust{1}{-9}}\ a4 } a a a |
>
> Ouch! This is definitely the sort of thing that M-Tx was designed
> to avoid. Would it in other situations also be right to do that,
> or only in this one?
I'd say it would be wrong to do that always. See the "Winter ade"
example in the musixlyr documentation: There, a double-line lyrics
section is continued with a single lyrics line in mid-system; you can't
delay the vertical shift up to the system end in this case.
> If not so, can one identify the situation
> automatically so that M-Tx itself puts this in when needed?
On the one hand, yes: If the vertical lyrics shift occurs after the last
note of the pending system, it should be synchonized with the system
break. But, as far as I unterstand, M-Tx doesn't know where the system
break will happen--PMX is the earliest processing stage where this
information is available. Therefore, the M-Tx processor itself has no
chance to detect the situation. (Right?)
But maybe the \mtxLyricsAdjust command could be "empowered" to detect
its own calling context. This TeX macro, inserted by M-Tx into the
output literally, is executed by TeX _after_ PMX has decided about the
system breaks. Maybe, with a bit of luck, it could grasp this
information somehow and use it for a proper vertical lyrics shift.
I had a look in the .tex file resulting from Simon's problem example and
noticed that both \mtxLyricsAdjust calls (generated by M-Tx) occur right
before the \alaligne calls (generated by PMX). Assumed that this is
always the case, \mtxLyricsAdjust could "look ahead" for the TeX command
directly following it (using TeX's \futurelet command), and if it finds
\alaligne, it knows that the lyrics shift occurs at a system break,
otherwise not.
Although this appears to be a really dirty and fragile solution, at
least I managed to put it all together into a working example
(attached to this message). But I'm far from sure whether this would
work in every case and would not raise unwanted side effects
(especially due to the uncumulative use of \atnextline).
Could you please have a look at it and evaluate whether it is generally
feasible? If you conclude that it's not, I may dig into musixlyr again
to see whether it can be made more aware of such vertical shifts and to
react properly itself, but I guess this would be so intricate that a
workaround for those rare problematic cases would still be more
appropriate.
Best regards,
Rainer
-------------------------------
[email protected] mailing list
If you want to unsubscribe or look at the archives, go to
http://tug.org/mailman/listinfo/tex-music