为什么在这个聚集环境中会有多个标签?

为什么在这个聚集环境中会有多个标签?

控制台显示此代码中有多个标签:

\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。我认为gatheralign不应该嵌套,因为它们启动了自己的数学环境,而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}

相关内容