# [XeTeX] arabic

Ross Moore ross.moore at mq.edu.au
Mon Oct 25 02:08:06 CEST 2010

Hi Kamal,

On 25/10/2010, at 6:05 AM, Kamal Abdali wrote:

> Thanks, Ross, for your effort to tame makeindex for the Arabic script.
>
> I also came across an interesting Persian sample that uses xepersian and makeindex. The pdf and tex source are at
>      http://www.parsilatex.com/joomla/attachments/vahid-seminar.pdf
>      http://www.parsilatex.com/joomla/attachments/vahid-seminar.tex
> Missing some of the source components, I couldn't reproduce the pdf exactly. But lo and behold, the index was generated without fuss and in the desired order of entries. I am still mystified why the letters are disconnected in the text, but that's another debugging chore.

The \index entries in that document result in the following kinds
of line within the .idx file:

\indexentry{$\uparrow \left\lbrace x\right\rbrace$|hyperpage}{3}
\indexentry{قییی@کران بالا|hyperpage}{3}

This is another way to apply a macro to the page-number;
in this case  \hyperpage  is applied, due to the  'pagebackref'
option when hyperref is loaded. It is done by a redefinition
of the \index  command, or of a LaTeX internal that it calls.

The arabic page numbering must be due to the font that is being used,
with a language setting. This is because XeTeX just receives the numbers
as ordinary western digits, but is outputting in the Hex range
x01d0 --> x01d9 .

The font  "XB Niloofar" is accompanied by CMap bfrange transformations,
as follows:
<01D0> <01D2> <0661>
<01D3> <01D5> <06F4>
<01D6> <01D8> <0667>

These map into the arabic-indic digits part of Unicode.
Thus Copy/Paste from the PDF recovers the digits in this form.

> Kamal Abdali

Hope this helps,

Ross

------------------------------------------------------------------------
Ross Moore                                       ross.moore at mq.edu.au
Mathematics Department                           office: E7A-419
Macquarie University                             tel: +61 (0)2 9850 8955
Sydney, Australia  2109                          fax: +61 (0)2 9850 8114
------------------------------------------------------------------------