[tex-k] Re: [pdftex] pdfeTeX: bad interaction of \pdfstartlink...\pdfendlink with \beginR...\endR

Vladimir Volovich vvv at vsu.ru
Wed Dec 29 00:27:12 CET 2004

Hi Harmut,

"HH" == Hartmut Henkel writes:

 >> There seems to be a bug in interaction of right-to-left features
 >> of eTeX with pdflink features of pdftex.

 HH> yes, tried to localize it: When the horizontal list is reversed
 HH> (left/right swapped) by function reverse(), so are the
 HH> \pdfstartlink and \pdfendlink whatsits. Then \pdfendlink happens
 HH> before \pdfstartlink, causing the error. Tried to swap links
 HH> from/to both nodes after reversal, so that the start/end sequence
 HH> is right, but then the 2nd error appears:

 >> This can't happen (copying). error:

 HH> This seems to be due to a missing style_node: case in @ @<Case
 HH> statement to copy...@>= which might be result from some math node
 HH> that is artificially added during reversing the list or not?
 HH> Copying also the style_node makes it run. But no idea whether
 HH> that's the right way to do it. And there might be more cases like
 HH> \pdfstartlink and \pdfendlink that might need a fix.

Thanks for analysis - hopefully it will help you or me or someone else
to fix the bug(s).

Heh, i've read this in the etex_man:

 > In order to avoid confusion with TeX-XeT the present implementation
 > of mixed-direction typesetting is called TeX--XeT. It uses the same
 > text-direction primitives, but differs from TeX-XeT in several
 > important aspects:

 > (1) Right-to-left text is reversed explicitly by e-TeX and is
 > written to a normal DVI file without any begin_reflect or
 > end_reflect commands;

apparently this reflection feature is causing the bug (according to
your analysis); and also i noticed that it causes other negative
impact: the \write commands (not \immediate ones) in the right-to-left
text are being processed during the shipout in the left-to-right
order, and as a result they write information to files not in logical
order of occurrance in the document, but in reverse order, if there
hapen to be two or more \write commands on the same line.

Question to e-TeX developers: is this (\write execution in
right-to-left which does not match the "logical order" used in the
document) also considered a feature, or it was overlooked when the
design decision of doung explicit reversing was made?


More information about the tex-k mailing list