如何突出显示阿拉伯文本并允许换行?

如何突出显示阿拉伯文本并允许换行?

我想强调一些文本。对于拉丁文本,\hl命令灵魂该包运行良好,但不适用于阿拉伯文本。

\hl{SOME ARABIC TEXT}只有很小的线作为 pdf 文件中的输出。)

我可以使用\colorbox{yellow}{ARABIC TEXT},但它不允许换行。

\uline(命令乌莱姆该包也适用于阿拉伯语文本,因此获得“阿拉伯语”可能并不那么困难\hl?)

(也许Leo Liu 的密码可能会有帮助:它制作一些黄色的盒子,覆盖阿拉伯语文本。

我正在使用 xelatex (TeX Live 2012)。这是一个最简单的例子:

\documentclass{article}
\usepackage{xcolor} 
\usepackage{ulem,soul}
%\usepackage{fontspec,color,xcolor,hyperref,xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\setotherlanguages{german}
\newfontfamily\arabicfont[Script=Arabic]{Times New Roman}

\begin{document}

\begin{german}
Highlighting works for \hl{latin texts}.
\end{german}

\hl{عربي} % you will just see a vertical small yellow line

\end{document}

编辑:使用此代码:

\documentclass{article}
\usepackage{xcolor} 
\usepackage[normalem]{ulem}
%\usepackage{fontspec,color,xcolor,hyperref,xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\setotherlanguages{german}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Times New Roman}
\newcommand\hl{\bgroup\markoverwith % 
  {\textcolor{yellow}{\rule[-.5ex]{2pt}{2.5ex}}}\ULon}


\begin{document}
\begin{german}
Test \hl{for highlighting} text. %correct
\end{german}
\hl{عربي} % correct

\hl{عربي} % result: yellow box covers the word
\end{document}

我得到的结果:

阿拉伯语测试

因此,第一行中阿拉伯文本的突出显示是正确的 - 有人知道如何修改代码以使第二行中的突出显示也正确吗?

答案1

正如评论中提到的:

\special由于TeX--XeT 在 RTL 模式下存在错误/问题,因此您不太可能做到这一点。

XeTeX 使用的 TeX-XeT 模型(当前)处理特殊的方式意味着这实际上无法做到。

相关内容