ntheorem 中的标记导致方程中的数字出现问题

ntheorem 中的标记导致方程中的数字出现问题

[根据评论进行编辑(谢谢!),即插入一个最小的非工作示例]

我昨天花了一整天时间试图弄清楚以下内容出了什么问题。

\documentclass[draft,twoside,openright,10pt]{book} 
\usepackage{amsmath,amssymb, amsfonts}
\usepackage[amsthm,thmmarks]{ntheorem}
\usepackage{mathtools}
\usepackage[capitalise]{cleveref}

\begin{document}

\begin{equation}
\label{eq:requirementByWeidemaier}
\end{equation}

\begin{gather}
\label{eq:weidemaierVectorValuedFspace}
\begin{split}
\end{split}
\end{gather}

\end{document}

当我尝试在其上运行 pdflatex 时,出现以下错误:

! Package amsmath Error: Multiple \label's: label '{eq:requirementByWeidemaier}
' will be lost.

See the amsmath package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.18 \end{gather}

如果我从“ntheorem”包中删除选项“thmmarks”,那么它就可以正常工作。但是,我需要此选项才能用 qed 结束我的证明。

我真的希望有人知道哪里出了问题(我或许应该说我使用 TexLive 2012)。

答案1

解决方案是也ntheorem使用该选项来加载包amsmath

来自ntheorem文档:

终点标记的激活[thmmarks]启用自动放置结束标记(参见 2.3);当使用 -package 时amsmath[thmmarks] 必须辅之[amsmath](参见 3.2 节)。

因此,修改你的 MWE 为

\documentclass[draft,twoside,openright,10pt]{book}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage[amsmath,amsthm,thmmarks]{ntheorem}
\usepackage{mathtools}
\usepackage[capitalise]{cleveref}

\begin{document}

\begin{equation}
\label{eq:requirementByWeidemaier}
\end{equation}

\begin{gather}
\label{eq:weidemaierVectorValuedFspace}
\begin{split}
\end{split}
\end{gather}

\end{document} 

工作正常。

相关内容