乌尔都语目录中的 RTL 编号部分编号和参考资料

乌尔都语目录中的 RTL 编号部分编号和参考资料

我正在使用 polyglossia 包用乌尔都语写一本书。乌尔都语文本从右到左书写,但数字从左到右书写。除目录和参考文献中的章节编号外,数字格式在任何地方都是正确的。重现错误的最小示例如下

\documentclass{book}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{urdu}
\def\urdunumber#1{\protect\farsidigits{\number#1}}
\setotherlanguage{english}
\setmainfont[
    Script=Arabic,
    Extension=.ttf,
    Scale=1.0]{JameelNooriNastaleeq}

\setmonofont{DejaVu Sans Mono}
\let\urdufontt\ttfamily

\author{احمد}

\title{کتاب}

\begin{document}
\sloppy

\frontmatter

\maketitle


\tableofcontents
\pagestyle{empty}
\chapter{دیباچہ}

\mainmatter

\pagestyle{headings}

\chapter{پہلا}
\section{حصہ اول}
\section{حصہ دوم}
\begin{equation}
a+b
\end{equation}
\begin{equation}
\label{test}
    a+c
\end{equation}
دوسری مساوات \ref{test}

\backmatter
\end{document}

目录中的章节编号遵循 RTL 方向。 在此处输入图片描述

\ref 生成的参考也遵循 RTL 方向。 在此处输入图片描述

任何帮助都将不胜感激

答案1

似乎是报告的一个错误这里. 按照建议在开头使用 \setlatin这里,问题解决了。

\documentclass{book}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{polyglossia}
\setmainlanguage{urdu}
\def\urdunumber#1{\protect\farsidigits{\number#1}}
\setotherlanguage{english}
\setmainfont[
    Script=Arabic,
    Extension=.ttf,
    Scale=1.0]{JameelNooriNastaleeq}

\setmonofont{DejaVu Sans Mono}
\let\urdufontt\ttfamily

\setlatin
%fix equation numbering for formulas
\makeatletter
\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}}
\makeatother

\author{احمد}

\title{کتاب}

\begin{document}
\sloppy

\frontmatter

\maketitle


\tableofcontents
\pagestyle{empty}
\chapter{دیباچہ}

\mainmatter

\pagestyle{headings}

\chapter{پہلا}
\section{حصہ اول}
\section{حصہ دوم}
\begin{equation}
a+b
\end{equation}
\begin{equation}
\label{test}
    a+c
\end{equation}
دوسری مساوات \ref{test}

\backmatter
\end{document}

在此处输入图片描述

在此处输入图片描述

编辑(amsmath 包)

使用 amsmath 包时,括号会用 \setlatin 反转;我们需要添加\setlatin 后面跟着以下内容可以解决这个问题

%fix equation numbering for formulas
\makeatletter
\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}}
\makeatother

相关内容