3

I upgraded to mactex 2011 from 2009 and xelatex (XeTeX, Version 3.1415926-2.3-0.9997.5 (TeX Live 2011)) no longer produces the same output when using Arabic language. The vowels (called harakaat in arabic) are missing in the pdf output. They used to show up fine and mactex 2009, and no longer do in 2011. I'd appreciate any assistance.. Here is a minimal example..

\documentclass{article}
\usepackage{fontspec}
\usepackage{arabxetex}
\usepackage{fullpage}

\newfontinstance\farsifont[Script=Arabic,Scale=1.6,WordSpace=2]{mylotus}
\newfontinstance\arabicfont[Script=Arabic,Scale=1.6,WordSpace=2,Mapping=arabicdigits]{mylotus}
\setromanfont[Mapping=tex-text]{Verdana}

\begin{document}
\begin{enumerate}
\item{There are many languages in the world.\\
\textarab{في العالمِ لغةٌ كثيرةٌ.}\\
}
\end{enumerate}
\end{document}

EDIT:

This is the actual output of the example:

actual output

This output shows the missing vowels:

expected output of code

Also, the log of xelatex compile is http://pastebin.com/raw.php?i=9Hraw83d

  • I added an image of the actual output. (I get the same as you in both MacTeX 2010 and 2011; I don't have 2009 installed any more, so I can't verify that it works with that.) – Alan Munn Aug 5 '11 at 23:38
  • I can confirm that TL 2009 and TL 2011 show the behavior described in the question (i.e. there are vowels in 09 but not in 11). – Caramdir Aug 6 '11 at 0:53
1

It seems that you have to tell arabxetex that you are directly inputting Unicode Arabic characters. Using

\textarab[utf]{في العالمِ لغةٌ كثيرةٌ.}

gives the desired output (see also Typesetting a document using Arabic script).


Alternatively, since you don't use the Latin input encoding feature of arabxetex, you could use polyglossia:

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}

\setmainlanguage{english}
\setotherlanguage{arabic}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.6,WordSpace=2,Mapping=arabicdigits]{Scheherazade}
\setromanfont[Mapping=tex-text]{Linux Libertine O}

\begin{document}
\begin{enumerate}
\item
    There are many languages in the world.\\
    \textarabic{في العالمِ لغةٌ كثيرةٌ.}
\end{enumerate}
\end{document}

result

  • Fantastic! Thank you for providing the solution. I appreciate the link to the polyglossia package. – Trewq Aug 6 '11 at 14:40
  • @Trewq since this solved your problem, it's helpful to accept the answer by clicking the checkmark icon next to it. – Alan Munn Aug 6 '11 at 15:44

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.