amsmath:结合 \nonumber 和 \label

amsmath:结合 \nonumber 和 \label

我想写一些东西

\begin{align}
f(x) & = x + 1 \nonumber \\
& =: \eqref{eq:foo} \label{eq:foo} \nonumber \\
g(x) & = x + 2 \nonumber \\
& =: \eqref{eq:bar} \label{eq:bar} \nonumber
\end{align}

但 amsmath 不允许我这样做:

!软件包 amsmath 错误:多个 \label:标签‘eq:foo’将丢失。请参阅 amsmath 软件包文档以获取解释。输入 H 可立即获得帮助....

那么我该怎么做才能解决这个问题呢?

有趣的是

\begin{align}
f(x) & = x + 1 \nonumber \\
& =: \eqref{eq:foo} \label{eq:foo} \nonumber
\end{align}

被 LaTeX 接受,但即使我多次运行 LaTeX,引用始终保持为 (??)。

答案1

我觉得这样做很有争议。无论如何,下面是:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\let\latexlabel\ltx@label
\makeatother
\newcommand{\assignnumber}[1]{%
  \refstepcounter{equation}\latexlabel{#1}\eqref{#1}%
}

\begin{document}
Here's a normal equation
\begin{equation}
0=0
\end{equation}
and now the thing you want
\begin{align*}
f(x) & = x + 1 \\
& =: \assignnumber{eq:foo} \\
g(x) & = x + 2  \\
& =: \assignnumber{eq:bar}
\end{align*}
with another equation to check the assigned numbers are correct
\begin{equation}
1=1
\end{equation}
with references to \eqref{eq:foo} and \eqref{eq:bar}.

\end{document}

大部分是覆盖amsmath分配数字和标签的方式。

在此处输入图片描述

相关内容