在不失去联系的情况下对阿拉伯元音/标记进行着色

在不失去联系的情况下对阿拉伯元音/标记进行着色

在阿拉伯文字中,您会在辅音上方/下方添加短元音/变音符号(标记)。您如何(根据具体情况)为它们着色,而不会失去连接/破坏单词中的字母/元音?

在下面的 MWE 中,我尝试为b(音译)单词中的字母着色balad,而不为a单词中辅音上方的字母着色。

最后,在下面的小示例中,我设法通过在字母上添加扩展/延长b(使用_并添加“零宽度连接”Unicode 字符\char"200D后缀)来获得一个可行的解决方案,但这有点儿像黑客手段,会在文本中添加不必要的(和不需要的)笔画。

平均能量损失

\documentclass[a4paper,12pt,twoside]{memoir}
\usepackage{xcolor}

\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{arabxetex}
\let\textarabic\relax      % required for polyglossia/arabxetex
\let\Arabic\relax          %
\setotherlanguages{arabic}

\begin{document}

1. 
\begin{arab}[voc]
balad
\end{arab}

2. 
\begin{arab}[voc]
\textcolor{red}{b_}\char"200D alad
\end{arab}


\end{document}

我找到了这个 (关联) 旧帖子使用pdfLaTeX,使用包arabtex和样式acolor.sty,以更通用的方式解决它(其中所有元音/标记都是彩色的)。但是我似乎无法在上面的 MWE 中实现这一点,并且不确定此解决方案是否arabtex也适用于上面的 MWEarabxetex

XeLaTeXmemoirOverleaf 中输入。

答案1

arabluatex可以做到这一点。当然,您需要使用lualatex来编译您的文档。请参阅文档(目前为第 7 节第 35 页) 了解更多信息。

\documentclass[12pt]{article}

\usepackage{arabluatex}

\begin{document}

\begin{arab}
  \arbcolor[red]{b}.alad
\end{arab}

\end{document}

在此处输入图片描述

答案2

我知道它并不适用于所有阿拉伯字母和所有情况,但这只是一个开始:

\def\red#1#2{\hspace{5pt}\char"200D #2\hspace{-5pt}\textcolor{red}{#1-}-}

\documentclass[a4paper,12pt,twoside]{memoir}
\usepackage{xcolor}

\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{arabxetex}
\let\textarabic\relax      % required for polyglossia/arabxetex
\let\Arabic\relax          %
\setotherlanguages{arabic}


\def\red#1#2{\hspace{5pt}\char"200D #2\hspace{-5pt}\textcolor{red}{#1-}-}
\begin{document}

\begin{arab}[voc]
balad

\red balad


\end{arab}



\end{document}

在此处输入图片描述

相关内容