我想强调一些文本。对于拉丁文本,\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 模型(当前)处理特殊的方式意味着这实际上无法做到。