每个定理中的方程编号

每个定理中的方程编号

我希望每个定理中的方程都编号。因此,每个定理中的第一个方程都编号为 (1),一直到它的证明。例如,

定理:方程

(1)x+y=z

是 ...

证明:我们有

(2)x=zy

所以 ...

但在下一个定理中,编号又从 (1) 重新开始。如何产生这样的编号?

答案1

您可以加载etoolbox包并在序言中提供以下命令——最好任何与定理相关的包,例如amsthmntheorem,都已加载,并设置了类似定理的环境。

\usepackage{etoolbox}
\AtBeginEnvironment{theorem}{\setcounter{equation}{0}}

我忍不住注意到,这样的设置很可能会让读者感到困惑,因为可能会有多个方程 (1)、(2) 等,对吧?你如何交叉引用定理 3、4 和 5 中出现的多个方程 (2)?

假设您的文档中的方程式仅出现在定理及其证明的陈述中,并且进一步假设您还加载了该amsmath包,那么您可能希望发出命令

\numberwithin{equation}{theorem}

这将把定理 1 的方程编号为 (1.1)、(1.2)...,将定理 2 的方程编号为 (2.1)、(2.2)...,等等。

附录部分原因在于 @egreg 的评论:第一种方法除了可能引起读者的困惑之外,如果您恰好也加载了该hyperref包,还可能导致一些奇怪的事情。默认情况下,Hyperref 的机制会尝试将所有交叉引用链接到equation (1)文档中的第一个这样的方程式,即使交叉引用命令中使用的标签实际上引用了其他方程式,而这些方程式恰好也编号为“1”。可以通过 @egreg 推荐的方法解决这个直接问题,即使用

\renewcommand{\theHequation}{\thetheorem.\arabic{equation}}

但是,当你的读者遇到诸如“由前面定理中的方程式 (1)、(1) 和 (1) 确定,...”这样的陈述时,你仍然会面临让读者感到非常困惑的风险。

相关内容