在带标签的方程式中包含带标签的脚注

在带标签的方程式中包含带标签的脚注

我需要在等式中添加脚注,事实证明我需要引用等式和脚注,所以我需要\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(第二种解决方法)。

相关内容