程序包 amsmath 错误:多个 \labels

程序包 amsmath 错误:多个 \labels

我看到这个话题被讨论过几次,但通常的原因是“哦,我用了 align* 和 \label”。我的情况有点不同,这是一个最小的例子

\documentclass{article}
\usepackage{amsmath}
\usepackage[thmmarks, amsthm]{ntheorem}

\begin{document}
\begin{equation}\label{eq:a}
a=b
\end{equation}

\begin{align}
a &=b  \label{eq:something_different}
\end{align}
\ref{eq:a} and \ref{eq:something_different}
\end{document} 

当我编译此程序时,我收到错误消息“软件包 amsmath 错误:多个 \label:标签‘eq:a’将丢失。\end{align}”。实际上,标签“eq:a”未定义,在文本中引用为“??”。当我将“align”更改为“equation”(并删除 & 符号)时,它起作用,当我删除“ \label{eq:something_different”时,它也能起作用。有人能解释为什么会出现这种情况以及我应该怎么做才能避免此错误消息吗?

非常感谢。

此致,

马库斯

答案1

来自该包的用户指南第 4 页ntheorem

在此处输入图片描述

因此,替换

\usepackage{amsmath}
\usepackage[thmmarks, amsthm]{ntheorem}

\usepackage{amsmath}
\usepackage[thmmarks, amsmath, amsthm]{ntheorem}

如果你因为某些难以捉摸的原因不是如果要amsmath在加载时设置选项ntheorem,则必须ntheorem在之前加载,而不是之后amsmath。但这不是推荐的路线。

相关内容