以下 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}