在阿拉伯文字中,您会在辅音上方/下方添加短元音/变音符号(标记)。您如何(根据具体情况)为它们着色,而不会失去连接/破坏单词中的字母/元音?
在下面的 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
XeLaTeX
在memoir
Overleaf 中输入。
答案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}