在使用该alignat
环境时,我遇到了一个奇怪的方程编号问题。这很难描述,但这里有一个 MWE。我在下面描述了输出。
\documentclass[]{memoir}
\usepackage{amsmath}
\listfiles
\begin{document}
\frontmatter
\mainmatter
\begin{alignat}{2}
1 & = 2 \\ \nonumber
1 & = 2
\label{eqn1}
\end{alignat}
This calls equation~\eqref{eqn1}.
\begin{alignat}{2}
2 & = 3 \\ \nonumber
2 & = 3
\label{eqn2}
\end{alignat}
This calls equation~\eqref{eqn2}.
\begin{equation}
3 = 4
\label{eqn3}
\end{equation}
This calls equation~\eqref{eqn3}.
\end{document}
输出结果正确地对方程进行了编号。但是,第一句读作“这调用方程 (2)”。第二句读作“这调用方程 (??)”。第三句正确地读作“这调用方程 (3)”。
编译时日志记录以下内容:
LaTeX Warning: Reference `eqn2' on page 1 undefined on input line 25.
我检查了正在访问的样式文件版本列表,它们都来自最新的 TeX 发行版(几周前我更新过)。换句话说,所有内容都来自主 TeX 发行版树:/usr/local/texlive/2012/texmf-dist/tex/latex/...
即便如此,这里是日志文件中的文件列表:
*File List*
memoir.cls 2011/03/06 v3.6j configurable book, report, article document cl
ass
ifpdf.sty 2011/01/30 v2.3 Provides the ifpdf switch (HO)
ifetex.sty 2011/12/15 v1.2 ifetex
ifxetex.sty 2010/09/12 v0.6 Provides ifxetex conditional
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
mem10.clo 2008/01/30 v0.3 memoir class 10pt size option
mempatch.sty 2009/07/24 v6.0f Patches for memoir class v1.6180339
amsmath.sty 2000/07/18 v2.13 AMS math features
amstext.sty 2000/06/29 v2.01
amsgen.sty 1999/11/30 v2.0
amsbsy.sty 1999/11/29 v1.2d
amsopn.sty 1999/12/14 v2.01 operator names
***********
我在 Mac OS X 10.6.8 上通过 TexShop 运行。如能得到任何帮助,我将不胜感激。(注意:我没有足够的声誉点来创建新标签,alignat
但有的话可能会有用。)
答案1
您必须标记没有 的线\nonumber
。正如您所做的那样,您正在标记一个没有任何数字的等式。
\begin{alignat}{2}
1 & = 2
\label{eqn1} \\
1 & = 2
\nonumber
\end{alignat}
在这些环境中,每行(缺少\nonumber
或\notag
)都会收到一个数字,并且可以标记。我说“行”,因为在您的例子中,每行(输出)可能有两个方程式;输入与它无关:命令\label
应该前命令\\
。