7

I am trying to write Persian in plain-XeTeX as follows:

\font\frmnorm = "Nazli" at 24pt
\let\rm = \frmnorm
\uselanguage{farsi}
\rm
این فقط یک آزمایش است
\bye

...but it does not work for me well:

  • the text is aligned to left
  • the words are in the wrong order
  • the characters in the words are not connected

I have tried multiple fonts as well as their OTF features.

Is there anybody using plain XePersian, not the XeLaTeX? What am I doing wrong?

9

This seems to do; you have to set also a different \baselineskip, though.

% Enable right to left typesetting
\TeXXeTstate=1

% define a font (this is one I have)
\font\frmnorm = "Scheherazade" at 24pt
\let\rm = \frmnorm
\uselanguage{farsi}

% At the start of a paragraph remove the indentation box then
% start right to left typesetting, after reinserting the indent
\everypar{{\setbox0=\lastbox}\beginR\kern\parindent}

\rm

این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است

این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است این فقط یک آزمایش است
این فقط یک آزمایش است

\bye

enter image description here

  • 2
    Hmm, should one set script and language on font loading? (\font\frmnorm = "Scheherazade:script=arabic;language=farsi") – morbusg Feb 6 '15 at 21:28
  • 1
    @morbusg Possibly, but not necessarily. – egreg Feb 6 '15 at 21:29
  • Thanks! I have added TeXXeTstate=1 and OTF features and it started to work. – ztmr Feb 15 '15 at 20:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.