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

Reply via email to