On 01/03/2017 11:59, Joseph Wright wrote:
Hello all,

With example

    \font\OTtenrm="[lmroman10-regular.otf]/OT"
    \OTtenrm
    \TeXXeTstate=1
    \beginR
    abc
    \endR
    \bye

the output is LTR with TL'16. Is this a known issue?

Yes, this is expected behavior. The TeX--XeT direction controls (\beginR etc) control the ordering of words within a line, etc. (slightly more accurately, the direction in which nodes in an hlist progress), but do not override the inherent directionality of Unicode characters, so "abc" is still a sequence of three strong-LTR letters and they stay in their left-to-right order.

(However, if you try

  \beginR
  abc def
  \endR

I'd expect you to get output that reads "def abc" because the two words
are ordered RTL, even though each of them remains LTR internally.)

This is why it is possible -- for better or worse -- to do something like

    ...english text {\arabfont العربي} more english

in a xetex document and have the isolated Arabic word appear with correct (internal) RTL directionality, without having to explicitly surround it with \beginR...\endR (although for a multi-word Arabic phrase that would be necessary); the RTL-ness of the characters controls their behavior within the word, despite the TeX direction remaining LTR.

Currently, there isn't an option to make the TeX-level direction override the Unicode character directionality (comparable to the CSS property "unicode-bidi:bidi-override;"). Perhaps that would occasionally be useful, though people haven't exactly been clamouring for it AFAIK.

JK



--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
 http://tug.org/mailman/listinfo/xetex

Reply via email to