阿拉伯数字在阿拉伯环境中镜像(ConTeXt)

阿拉伯数字在阿拉伯环境中镜像(ConTeXt)

在我的阿拉伯语环境中,阿拉伯数字是镜像的。最小示例:

\definefont[Sheh][name:Scheherazade*arabic at 18pt]   
\definestartstop[Arab][commands=\setups{Arabic}]
\def\Arab{\doArab}
\def\Arab[#1]{
    \startArab 
            \setupalign[r2l]\Sheh \startalignment [middle] #1 \stopalignment
    \stopArab
    }

\starttext    
\Arab[

إِنَّ مَثَلَ عِيسَىٰ عِندَ ٱللَّـهِ كَمَثَلِ ءَادَمَ خَلَقَهُ مِن تُرَابٍ ثُمَّ قَالَ لَهُ كُن فَيَكُونُ ﴿٥٩﴾
]

The verse-number is wrong, it shows 95, but it is 59 in the code.  
\stoptext

我认为这是的影响\setupalign[r2l],那么如何解决这个问题呢

(٥٩)

确实可以按原样解释(59)。当然,我总是可以自己镜像这些数字,但那不太合适。

答案1

如果我理解正确的话,东方数字的书写方式是 (1) 从左到右 (2) 大端 (千位数字在百位数字之前输入)。它们在输入中以这种方式书写,在输出中以相同的方式排版。

如果我理解的没错的话,您的问题是,ConTeXt 无论是有意还是无意地,都不会自动识别文本中的数字,因此像文本的其余部分一样将它们排版为 r2l。

这也许能解决你的问题:

\setupmathematics[align=l2r]

\Arab[
    \math{٥٩}
]

如果您想要排版数学 r2l,则此解决方案不够用在数学 l2r 中排版数字。这似乎是一个难题:参见

我个人认为,如果可以为此设置\digits命令,该命令将比 更合适\math\digits语义上对应于数字,而\math语义上对应于数学。像这样的东西会很好:

\setupalign[r2l]
\setupdigits[align=l2r]
\digits{٥٩}

-->

٥٩,不是٩٥。

我可以请您注册ntg-context 邮件列表并在那里再次提出您的问题?主要开发人员 Hans Hagen 在该名单上;我相信 Khaled Hosny 和/或 Idris Hamid 也在该名单上。您将得到权威的答案,然后我们可以修改此答案,以造福本网站的未来访问者。

答案2

\setupdirections[bidi=global,method=one]

来源: https://wiki.contextgarden.net/RTL

相关内容