# Assistance on arabic text on TikZ

I attempting to use both arabic and TikZ pictures but, I have four problems:

1. The Arabic words appear in reverse order, the first word appears finally ...
2. The sentence is not in arc as in the English sentence.
3. The numbers appears Idiens digits and not in Arabic.
4. Most of the ornaments do not appear or appear in different places.


\documentclass[12pt]{book}
\usepackage{nopageno}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2.5cm,rmargin=2.5cm}
\setlength{\parskip}{\bigskipamount}
\setlength{\parindent}{0pt}
\usepackage{color}
\usepackage{tikz,pgfornament,tikzrput}         % altermundus.com/pages/tkz/tikzrput/
\usetikzlibrary{decorations,decorations.text}  % altermundus.com/pages/tkz/ornament/

\usepackage{setspace}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{setspace}
\setdefaultlanguage[numerals=machriq]{arabic}
\setmainlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.5
\begin{document}

\begin{Arabic}

\begin{tikzpicture}

\path
[rotate=170,postaction={decoration={text along path,text format delimiters={|}{|},text={|\huge| Knowledge Raising House has no Mainstay {\pgfornament[scale=.4,ydelta=-9pt,color=blue]{15}} And Ignorance Destroys House of Glory and Honor {\pgfornament[scale=.4,ydelta=-9pt,symmetry=v,color=blue]{15}}},
text align=fit to path,reverse path}, decorate}]
\rput{-20}(1.5,4.2){\pgfornament[scale=.2,color=blue]{87}}
\rput{20}(-1.5,4.2){\pgfornament[scale=.2,color=blue]{87}}
\rput{-20}(-1.5,-4.2){\pgfornament[scale=.2,color=blue]{87}}
\rput{20}(1.5,-4.2){\pgfornament[scale=.2,color=blue]{87}}
\rput{}(-2.5,-2.75){\pgfornament[scale=.25,color=blue]{10}}
\rput{}(2.5,-2.75){\pgfornament[scale=.25,color=blue]{10}}
\rput{}(0,4){\pgfornament[scale=.2,color=blue]{66}}
\rput{}(0,2){\pgfornament[scale=.3,color=blue]{70}}
\rput{}(0,-3){\pgfornament[scale=.3,color=blue]{70}}
\rput(0,0){\pgfornament[scale=.6,color=blue]{75}}
\rput{-90}(2,0){\pgfornament[scale=.6,color=blue]{72}}
\rput{90}(-2,0){\pgfornament[scale=.6,symmetry=v,color=blue]{72}}
\node[font=\huge,color=blue] at (0,3){} ;

\path
[rotate=218,postaction={decoration={text along path,text format delimiters={|}{|}, text={|\Huge| \AR{والجهل يهدم بيت العز والشرف} {\pgfornament[scale=.4,ydelta=-9pt,color=blue]{15}} 14-12-1968 {\pgfornament[scale=.4,ydelta=-9pt,symmetry=v,color=blue]{15}} \AR{العِلْمُ يرفع بيتًا لا عماد له} {\pgfornament[scale=.4,ydelta=-9pt,color=blue]{15}}},
text align=fit to path,reverse path}, decorate}]
\node[font=\huge,color=blue] at (0,-2){} ;
\end{tikzpicture}

\end{Arabic}

\end{document}

-

Just put the individual words in curly brackets, as follows:

{لها} {عماد} {لا} {بيوتا} {يبني} {العلم}

with:

\usepackage [utf] {arabxetex}


-

You've not really provided a minimal working example, but I will try to answer points (2) and (4) as best I can, as I am not that familiar with how "right-to-left" languages work with latex. I am using TeX Live 2012.

It's not clear whether you are compiling with xelatex or lualatex. Only a recent version of polyglossia is compatible with lualatex (not sure if it is on CTAN yet), so I presume you are compiling with xelatex.

When compiling your file with xelatex I get a whole load of Undefined control sequence \rput. This is why some of the ornaments are in the wrong place. This seems to be becausetikzrput only defines \rput according to \ifpdf, but xelatex defines \ifxetex. You can get around this by putting

\let\ifpdf=\ifxetex


just before you load the tikzrput package.

The command \AR does not appear to be defined. Either way, the text is consumed token by token so \AR is consumed on it's own. Also, the Arabic text following \AR is between braces, so is treated as a single unit and not typeset around the curve. The Arabic text is typeset around the curve if I remove the \AR and the surrounding braces.

The rest I am not sure on.

-