bidi 和 xetex 更新后印度数字(mashriq 形式)出现问题

bidi 和 xetex 更新后印度数字(mashriq 形式)出现问题

经过一些更新(bidi、latex、xetex……)后,我在数字方面遇到了问题。或者 - 以前没有发生过这种情况,编号方向在 maghrib 形式 0,1,2,...,9 中是正确的,但在 mashriq 形式 ٠,١,٢,٣,٤,٥,٦,٧,٨,٩ 中,编号方向不会随着命令(\setlatin - \setnonlatin)而改变

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{bidi}
\setmainfont[Script=Arabic]{Amiri}
\parindent=0pt

\begin{document}

\setRTL
\setnonlatin

\section{text}
\subsection{text text}
\subsection{text text}

1.23 % change direction with \setnonlatin - \setlatin 

١.٢٣ <-- % do not change direction with \setnonlatin - \setlatin


\hrulefill

\setlatin

1.23

١.٢٣

\end{document}

在此处输入图片描述

来自日志文件

这是 XeTeX,版本 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX)(预加载格式=xelatex 2019.10.16)2019 年 11 月 3 日

软件包:bidi 2019/10/19 v35.10 在纯 TeX 和 LaTeX 中进行双向排版

答案1

发布的代码包含 Unicode 0661、0662、0663。这是阿拉伯-印度语数字一。但是,bidi检查 06F1 至 06F9,这是扩展阿拉伯-印度数字一到九。因此,在源代码中更改这些内容,它就会按预期工作。

梅威瑟:

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{bidi}
\setmainfont[Script=Arabic]{Amiri}
\parindent=0pt

\begin{document}

\setRTL
\setnonlatin

\section{text}
\subsection{text text}
\subsection{text text}
1.23\par % change direction with \setnonlatin - \setlatin 
١.٢٣ <-- \par % Arabic Indic Digits do not change direction with \setnonlatin - \setlatin
۱.۲۳ \par % Extended Arabic-Indic Digits
\hrulefill

\setlatin
1.23 \par
١.٢٣ \par
۱.۲۳ \par

\end{document}

结果:

在此处输入图片描述

或者,您可以将非扩展的阿拉伯-印度语数字添加到数字字符类中:

\usepackage{bidi}
\makeatletter
\bidi@digits=1633 \loop \XeTeXcharclass \bidi@digits \bidi@digits@charclass \ifnum\bidi@digits<1641 \advance\bidi@digits \@ne \repeat
\makeatother
\setmainfont[Script=Arabic]{Amiri}

在此处输入图片描述

相关内容