如果我不使用 amsmath 包,如何在本地更改方程编号的位置?

如果我不使用 amsmath 包,如何在本地更改方程编号的位置?

我正在写一本书,我想展示公式编号的格式;我的意思是,我想告诉学生,他们可以在论文或作业等文件中将编号放在公式行的开头或结尾。

因此,在一个示例中,我想将方程编号放在方程的右侧,而在另一个示例中,我想在行首的方程左侧显示方程编号。我确实尝试了以下答案,但它们会更改整个文档中的编号格式。我如何在本地执行此操作?

将方程式编号放在右边

我怎样才能将方程式编号始终置于左侧?

这是我根据以下情况尝试的评论对于我的问题以及与使用 amsmath 包相关的问题:

在同一文档中切换 leqno 和 reqno 选项(amsmath 的)

%pdflatex
\documentclass{article}
\usepackage[leqno]{amsmath}

\makeatletter
\newcommand{\leqnomode}{\tagsleft@true}
\newcommand{\reqnomode}{\tagsleft@false}
\makeatother

\begin{document}
\reqnomode
\begin{align}\tag{1}
\frac{{{\partial ^2}u}}{{\partial {r^2}}} + \frac{1}{r}\frac{{\partial u}}{{\partial r}} - \frac{u}{{{r^2}}} = \frac{1}{{{c_1}^2}}\frac{{{\partial ^2}u}}{{\partial {t^2}}}
\end{align}
\\[-10pt]
\leqnomode
\begin{align}\tag{1}
\frac{{{\partial ^2}u}}{{\partial {r^2}}} + \frac{1}{r}\frac{{\partial u}}{{\partial r}} - \frac{u}{{{r^2}}} = \frac{1}{{{c_1}^2}}\frac{{{\partial ^2}u}}{{\partial {t^2}}}
\end{align}
\end{document}

在此处输入图片描述

但是,当我第一次编写文件时,我没有使用 amsmath 包,因为在我的文档中,我只有两个方程式作为示例。我并不打算使用该包编写复杂的数学方程式。因此,我正在寻找一种简单的方法来制作此类方程式的标签。

答案1

其他人现在已经发布了答案,但据记录,这是我的想法。它适用于所有标准类(、、article等),但如果加载则不行,因此 AMS 类,请参见下文。memoirscrartclamsmath

示例输出

\documentclass{article}

\makeatletter
\let\r@eqnnum\@eqnnum
\input{leqno.clo}
\let\l@eqnnum\@eqnnum
\newcommand{\leqnos}{\let\@eqnnum\l@eqnnum}
\newcommand{\reqnos}{\let\@eqnnum\r@eqnnum}
\reqnos
\makeatother

\begin{document}

\begin{equation}
  \label{eq:x}
  x = y
\end{equation}

\begingroup\leqnos
\begin{equation}
  \label{eq:a}
  a = b
\end{equation}\endgroup
and
\begin{equation}
  \label{eq:b}
  b = a.
\end{equation}

\end{document}

如果您加载amsmath(直接或间接,例如通过mathtoolsAMS documentclass),那么正如 Silvio Levy 指出的那样,标签的位置由不同的变量控制。在这种情况下,您可以使用以下内容:

\documentclass{article}

\usepackage{amsmath}
\makeatletter
\newcommand{\leqnos}{\tagsleft@true\let\veqno\@@leqno}
\newcommand{\reqnos}{\tagsleft@false\let\veqno\@@eqno}
\reqnos
\makeatother

\begin{document}

\begin{equation}
  \label{eq:x}
  x = y
\end{equation}

\begingroup\leqnos
\begin{equation}
  \label{eq:a}
  a = b
\end{equation}\endgroup
and
\begin{equation}
  \label{eq:b}
  b = a.
\end{equation}

\end{document}

答案2

仔细查看类选项leqno可以发现,它leqno.clo仅需一次重新定义即可加载:

\ProvidesFile{leqno.clo}
        [1998/08/17 v1.1c Standard LaTeX option
                                   (left equation numbers)]
\renewcommand\@eqnnum{\hb@[email protected]\p@{}%
                      \rlap{\normalfont\normalcolor
                        \hskip -\displaywidth(\theequation)}}
\endinput

下面的例子只是本地加载leqno.clo以获取其中一个示例左侧的方程编号:

\documentclass{article}

\begin{document}
\noindent
First example with equation number to the right (default):
\begin{equation}
  \frac{\partial ^2 u}{\partial r^2} + \frac{1}{r}
  \frac{\partial u}{\partial r} - \frac{u}{r^2}
  = \frac{1}{c_1^2}\frac{\partial^2 u}{\partial t^2}
\end{equation}
Second example applies class option \texttt{leqno} in a group:
\begingroup
  \makeatletter
  \input{leqno.clo}
  \makeatother
  \begin{equation}
    \frac{\partial ^2 u}{\partial r^2} + \frac{1}{r}
    \frac{\partial u}{\partial r} - \frac{u}{r^2}
    = \frac{1}{c_1^2}\frac{\partial^2 u}{\partial t^2}
  \end{equation}
\endgroup
\end{document}

结果

答案3

每当您的文档包含大量数学内容时,您都应该加载amsmath

但是,为了回答你的问题,最简单的方法是一生使用一次“禁忌” $$。毕竟,我们知道在这个特定情况下我们在做什么。

\documentclass[leqno]{article}

\usepackage{lipsum}

\begin{document}

\lipsum*[2]
\begin{equation}
\frac{\partial^2u}{\partial r^2} +
  \frac{1}{r}\frac{\partial u}{\partial r} -
  \frac{u}{r^2} =
\frac{1}{c_1^2}\frac{\partial^2u}{\partial t^2}
\end{equation}
\lipsum*[3]
$$
\frac{\partial^2u}{\partial r^2} +
  \frac{1}{r}\frac{\partial u}{\partial r} -
  \frac{u}{r^2} =
\frac{1}{c_1^2}\frac{\partial^2u}{\partial t^2}
\refstepcounter{equation}
\label{whatever}
\eqno{(\theequation)}
$$
\lipsum[2]

\end{document}

在此处输入图片描述

注意。你的牙套太多了。而且{c_1}^2想要c_1^2:真的。

相关内容