[XeTeX] RTL hyperlink problems

Khaled Hosny khaledhosny at eglug.org
Fri Aug 20 14:37:00 CEST 2010

On Fri, Aug 20, 2010 at 02:20:52PM +0200, Khaled Hosny wrote:
> On Fri, Aug 20, 2010 at 09:09:31AM +0300, Ron Aaron wrote:
> > On Wednesday 18 August 2010 23:06:02 Ron Aaron wrote:
> > > Using xetex I found that the 'hyperref' package did not product attractive links in PDF, so I had to write my own PDF link code:
> > 
> > This seems to be specifically a "dvipdfmx" problem, as using "etex" on the sample  I gave, followed by "dvipdfmx" produces precisely the same problem.
> It is actually related to the way TeX--XeT RTL extension of e-TeX (which
> XeTeX inherited) works, as explained in the previous message.

I just realised that I never sent the aforementioned message (I'm sure I
compose such a message, but I don't see it in my sent box).

Basically, when XeTeX (actually e-TeX withe \TeXXeTstate=1) encounters a
begin RTL node, it just reorders everything until the end RTL node,
including any special nodes in between. So, your input is something like:

  <begin-rtl>some text <begin-link>link<end-link> some other text<end-rtl>

What goes to the dvi is something like:

  txet rehto emos <end-link>knil<begin-link> text emos

So, in the eye of the dvi driver, <end-link> comes first so it does
nothing, and <begin-link> is runaway. Bidi package has some work around
for that, but it can't work around line breaks.


 Khaled Hosny
 Arabic localiser and member of Arabeyes.org team
 Free font developer

More information about the XeTeX mailing list