[XeTeX] Please help me with \XeTeXinterchartoks
Ulrike Fischer
news2 at nililand.de
Mon Dec 1 22:27:48 CET 2008
Am Mon, 1 Dec 2008 23:14:38 +1100 schrieb VAFA KHALIGHI:
> Human Beings..! Please help.
>
> I feel that when I ask a question on the mailing list no one answers it and
> I solve the problems most of the time myself but why?
In my case: partly because you sent only code snippets instead of small,
complete examples.
>
> I want to set \XeTeXinterchartoks for small English sentenses in a Right to
> Left direction such that when I write an/Two English it will be typeset in
> rmfamily and from Left to Write. This is what I have done
And this is good example: a lot of incomplete code.
>
> but when I write "This is" in a Right to left direction, I see that it is
> typeset in rmfamily but in the reverse order "is This", so can you please
> help me to get this done?
You get what is to be expected, the same result if you surround every
word by \beginL ... \endL:
\documentclass{scrbook}
\usepackage{bidi}
\XeTeXinterchartokenstate = 1
\XeTeXcharclass `\a 5
\XeTeXcharclass `\r 6
\XeTeXcharclass `\t 7
\begin{document}
\sffamily
\beginR begin \beginL art\endL\ \beginL arta\endL\ end \endR
\XeTeXinterchartoks 255 5={\beginL\begin{rmfamily}}
\XeTeXinterchartoks 5 255={\end{rmfamily}\endL}
\XeTeXinterchartoks 255 6={\beginL\begin{rmfamily}}
\XeTeXinterchartoks 6 255={\end{rmfamily}\endL}
\XeTeXinterchartoks 255 7={\beginL \begin{rmfamily}}
\XeTeXinterchartoks 7 255={\end{rmfamily}\endL}
\beginR begin art arta end \endR
\end{document}
>
> I am only asking for one example, please just show me how to do this for
> "This is".
I doubt that is is possible. You would have to be able to distinguish
spaces between english words from spaces between an english and a
non-english word. And even if you solve this problem. Are you sure that
there are not chars in both sets, e.g. punctuation symbols?
--
Ulrike Fischer
More information about the XeTeX
mailing list