When trying to color words in arabic (transliteration), LaTeX wants me to be in mathmode (Missing $ inserted.), as there is an underscore in the transliteration. This is of course completely wrong as it is not math rather than arabxetex’s convention for some arabic letters.
The problem only occurs if I try to color it using a macro, the version using the \color command directly works without any problems. However, to me the two are seemingly identical, yet to LaTeX they obviously are not.
If I force the following code (ignoring all errors), I get this output:

The first line is “Try No. 1” and the second one “Try No. 2” and how it should actually look. I suspect the problem might lie in my macro but I fail to see where the error is.
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{fontspec,xltxtra,xunicode}
\setromanfont[Mapping=tex-text]{Linux Libertine O}
\setsansfont[Mapping=tex-text]{Linux Biolinum O}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.5]{Scheherazade}
\usepackage{arabxetex}
\SetTranslitConvention{dmg}
\newcommand*{\place}[1]{{\color{cyan} #1}}
\begin{document}
\place{\textarab[trans]{\UC ya_trib}}% Try No. 1
{\color{cyan} \textarab[trans]{\UC ya_trib}}% Try No. 2
\end{document}
underscorepackage. – Aditya Feb 5 at 14:00transoption on and I have the correct output. Again, convenience ;) – brian-ammon Feb 13 at 12:54