RTL 阿拉伯语文档中的 LTR 文本中的逗号链接

RTL 阿拉伯语文档中的 LTR 文本中的逗号链接

我在阿拉伯语文本中插入一段英文。如果数字后面有一个逗号,我会得到令人惊讶的结果。逗号位于数字之前,而不是数字之后。

在此处输入图片描述

上面的字体是“Amiri”。我还测试了微软的“arabtype.ttf”(http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm) 并得到了相同的结果。因此我认为这不是一个错误,而是一些重要的功能。

问题 1,并不重要,只是出于好奇:我可以在哪里阅读有关此功能的信息?

一个通用的解决方案是以某种方式script=arabic从 LTR 文本的字体中删除。我怀疑这是一项艰巨的任务。

\hbox{}解决这个具体问题的一个简单方法是在数字后面添加。然后:

问题2:使用时英文文本片段是否还有其他惊喜script=arabic

示例代码:

\documentclass[a4paper]{article}
\usepackage[RTLdocument]{bidi}

\begin{document}

\font\f="Amiri:script=arabic"
\f

\LRE{Print 42, then exit, but not.}

\LRE{Print 42: then exit: but not.}


\end{document}

答案1

您应该使用fontspec选择字体和字体功能。您现在可以使用 更改脚本\addfontfeature{Script=Latin}

为了使事情更方便,可以更新 \LRE

\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont[Script=Arabic]{Amiri}

\usepackage[RTLdocument]{bidi}

\let\oldLRE\LRE
\renewcommand*{\LRE}[1]{\oldLRE{\addfontfeature{Script=Latin} #1}} % <-- Change script to latin within \LRE 

\begin{document}

   \LRE{Print 42, then exit, but not.}

   \LRE{Print 42: then exit: but not.}

\end{document}

这给你:

在此处输入图片描述

相关内容