XeLaTeX RTL 文档的颜色无法正常显示?

XeLaTeX RTL 文档的颜色无法正常显示?

以下最小示例产生了所需的结果:

\documentclass{article}
\usepackage[usenames]{color}

\begin{document}
black {\color{red} red} black

black
\end{document}

但是下面的例子,除了它是 RTL 之外,其他都是一样的,并没有产生预期的结果:

\documentclass{article}
\usepackage[usenames]{color}
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\def \hebrewFont{David CLM}
\setmainfont[Mapping=tex-text]{\hebrewFont}
\newfontfamily{\hebrewfont}{\hebrewFont}

\begin{document}
black {\color{red} red} black

black
\end{document}

是我做错了什么吗,还是这只是一个简单的错误?

答案1

这是 XeTeX 继承的一个已知 e-TeX 错误(该bidi软件包的较新版本在某些有限的情况下尝试解决这个问题,但这并不是真正可以用宏代码修复的问题)。

基本上,e-TeX 使用的 TeX-XeT 双向 TeX 扩展在 RTL 模式下反转 TeX 的内部节点列表,以便从右到左排版。这在大多数情况下都很好,但当\special使用成对的 s 时就会中断,例如 color 内部由一对 和 表示\special{color: push …}\special{color pop}因为这种反转会导致pop出现特殊的push导致已观察到的问题的原因之一。

XeTeX 的下一个版本 (0.99992) 尝试修复该问题的根源,但该代码是实验性的,可能最终会出现在发布的版本中,也可能不会。

相关内容