当文档的语言为希伯来语时,类似方程式的环境会在页面的错误一侧显示不等式数字

当文档的语言为希伯来语时,类似方程式的环境会在页面的错误一侧显示不等式数字

以下 LaTeX 代码保存在 中~/Test.tex

\documentclass{article}
%\usepackage[bidi=basic,hebrew,provide=*]{babel}
%\babelfont{rm}[Renderer=HarfBuzz]{FreeSans}

\usepackage{amsmath}

\usepackage{aliascnt}
\newaliascnt{inequality}{equation}
\aliascntresetthe{inequality}

\makeatletter
\def\inequality{$$\refstepcounter{inequality}}
\def\endinequality{\eqno\hbox{\@eqnnum}$$\@ignoretrue}
\makeatother
\begin{document}
\begin{equation}\label{eq}
    1=1
\end{equation}
\begin{inequality}\label{ineq}
1\neq2
\end{inequality}
\end{document}

代码使用中描述的方法这个答案创建一个equation名为 的新环境inequality,其计数器别名为环境的计数器equation。此技巧旨在与cleveref交叉引用结合使用,但对于这个问题而言,交叉引用是多余的,因此未在上面的 MWE 中使用。

然后在终端中执行以下命令:

> cd ~
> lualatex Test

因此,在 处生成了一个 PDF 文件~/Test.pdf。在 PDF 查看器中打开时,文件显示如下。(我仅截取了显示的相关部分。)

英文文件中的不平等

可以看出,等式和不等式的数字都出现在文本区域的右侧。

现在取消了两行注释的 LaTeX 代码,将希伯来语设为文档的主要语言,并重新编译代码。生成的 PDF 文件如下所示。

希伯来语文档中的不平等现象

可以看出,不等式的数字换了边,现在是左对齐,而等式的数字仍然右对齐。

这种行为是不可取的。不等式的数字应该右对齐,以匹配等式的数字的对齐方式。如何实现这一点?

答案1

您的代码是低级的(\eqno并不是\hbox真正的 LaTeX 命令)。我不确定您定义的目的是什么,但请尝试:

\newenvironment{inequality}
  {\[%
   \refstepcounter{inequality}%
   \tag{\theinequality}}
  {\]\ignorespacesafterend}

编辑。将环境替换equation\[... \](参见评论)。

答案2

\def$$\eqno低级 tex 原语。当然,如果您在该级别上切入 latex 界面和代码,则可能需要“手动”完成更多工作。此处更改\eqno\leqno取决于方向性。

在此处输入图片描述

\documentclass{article}
\usepackage[bidi=basic,hebrew,provide=*]{babel}
\babelfont{rm}[Renderer=HarfBuzz]{FreeSans}

\usepackage{amsmath}

\usepackage{aliascnt}
\newaliascnt{inequality}{equation}
\aliascntresetthe{inequality}

\makeatletter
\def\inequality{$$\refstepcounter{inequality}}
\def\endinequality{\leqno\hbox{\@eqnnum}$$\@ignoretrue}
\makeatother
\begin{document}
\begin{equation}\label{eq}
    1=1
\end{equation}
\begin{inequality}\label{ineq}
1\neq2
\end{inequality}
\end{document}

相关内容