我需要在等式中添加脚注,事实证明我需要引用等式和脚注,所以我需要\label
它们。
以下是我想做的事情:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\label{eq:sum}
1+1=2\footnote{\label{fn:hello}Hello.}
\end{equation}
\end{document}
结果如下:
./test.tex:6: Package amsmath Error: Multiple \label's: label 'eq:sum' will be lost.
有什么解决方法吗?
答案1
A解决方法是将 拆分\footnote
为\footnotemark
和\footnotetext
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\label{eq:sum}
1+1=2\footnotemark
\end{equation}
\footnotetext{\label{fn:hello}Hello.}% <-- This % is important :)
See equation~\eqref{eq:sum} and footnote~\ref{fn:hello}.
\end{document}
另一种方法是预先将的定义复制\label
到另一个位置,并在等式中使用新名称:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\let\LTXlabel\label
\begin{equation}
\label{eq:sum}
1+1=2\footnote{\LTXlabel{fn:hello}Hello.}
\end{equation}
See equation~\eqref{eq:sum} and footnote~\ref{fn:hello}.
\end{document}
amsmath.sty
将显示数学模式下的宏重新定义\label
为:
\def\label@in@display{%
\ifx\df@label\@empty\else
\@amsmath@err{Multiple \string\label's:
label '\df@label' will be lost}\@eha
\fi
\gdef\df@label
}
这是为了确保标签的数量与方程的数量相同(例如,对于对齐的方程)。
但这没有考虑到,例如,脚注可能使用标签,这仍然是有效的,并将产生正确的输出。这就是为什么需要将使用外部化\label
(如第一个解决方法)或使用真实的 \label
(第二种解决方法)。