Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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

share|improve this question
    
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 Answer 1

up vote 1 down vote accepted

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

share|improve this answer
    
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

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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