Sorry--once again, now _with_ the promised attachment ...
Am 18.08.2011 schrieb Rainer Dunker:
> 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
Systems: 2
Style: Singer
%%\let\mtxLyricsAdjustOrig\mtxLyricsAdjust
%%\def\mtxLyricsAdjust#1#2{%
%% \def\mtxLyricsAdjustArgOne{#1}%
%% \def\mtxLyricsAdjustArgTwo{#2}%
%% \futurelet\mtxLyricsAdjustNextToken\mtxLyricsAdjustInternal
%%}
%%\def\mtxLyricsAdjustInternal{%
%% \ifx\mtxLyricsAdjustNextToken\alaligne
%% \def\atnextline{%
%% \mtxLyricsAdjustOrig\mtxLyricsAdjustArgOne\mtxLyricsAdjustArgTwo}%
%% \else
%% \mtxLyricsAdjustOrig\mtxLyricsAdjustArgOne\mtxLyricsAdjustArgTwo%
%% \fi
%%}
@-2 g g g g | g @+4 g g g | @-4 g g g g | g g g g
L: bla bla bla bla bla bla bla bla-bla bla bla bla bla bla bla bla
-------------------------------
[email protected] mailing list
If you want to unsubscribe or look at the archives, go to
http://tug.org/mailman/listinfo/tex-music