控制台显示此代码中有多个标签:
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\begin{document}
TEST
\begin{gather}
A \equiv X + Y \nonumber \\
\begin{align}
&= C + D + E + F + G \nonumber \\
&= E. \label{some label}
\end{align}
\end{gather}
\end{document}
这个环境有什么问题吗?
我需要对最后一个等式进行编号,并贴上标签,而其他行则不需要编号。
答案1
我不认为应该将align
环境放入环境中gather
,但你可以使用aligned
。我认为gather
和align
不应该嵌套,因为它们启动了自己的数学环境,而aligned
恰恰是为了align
在另一个数学环境中拥有一个数学类型环境而制作的。
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\begin{document}
TEST
\begin{gather}
A \equiv X + Y \nonumber \\
\begin{aligned}[b]\label{some label}
&= C + D + E + F + G \\
&= E.
\end{aligned}
\end{gather}
ANOTHER TEST
\begin{align}
\MoveEqLeft A \equiv X + Y \notag \\
&= C + D + E + F + G \notag\\
&= E. \label{some label}
\end{align}
\end{document}
答案2
这是一个已知问题,请参阅https://github.com/latex3/latex2e/issues/15
手册amsmath
明确指出align
能嵌套于gather
,参见第 26 页:
然而,“登记册”并未在适当的时间清除,并There were multiply-defined labels
发出了虚假但无害的警告;这是与有关的情况\nonumber
。
在我的实验中,修补\endalign
解决了这个问题。
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\endalign}
{\restorealignstate@}
{\global\let\df@label\@empty\restorealignstate@}
{}{}
\makeatother
\begin{document}
TEST
\begin{gather}
A \equiv X + Y \nonumber \\
\begin{align}
&= C + D + E + F + G \nonumber \\
&= E. \label{some label}
\end{align}
\end{gather}
\end{document}