amsmath 错误:多个 \label:标签‘xxx’将丢失

amsmath 错误:多个 \label:标签‘xxx’将丢失

这是我的代码:

\documentclass{article}
\usepackage{mathtools}
\newcounter{rulec}
\renewcommand\therulec{R\arabic{rulec}}
\newcommand\trule[1]{\refstepcounter{rulec}\label{r:#1}\therulec: }
\begin{document}
\begin{equation}
\begin{split}
& \trule{foo} Foo \\
& \trule{bar} Bar \\
\end{split}
\end{equation}
\end{document}

我越来越:

! Package amsmath Error: Multiple \label's: label 'r:foo' will be lost.

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

l.12 \end{split}

哪里出了问题以及如何修复?

答案1

\label在同一环境中不能有两个不同的命令split

amsmath包经过调整\label以满足其需求,因此在对齐环境中重新定义。但其原始版本仍可用作\ltx@label

\documentclass{article}
\usepackage{mathtools}

\newcounter{rulec}
\renewcommand\therulec{R\arabic{rulec}}
\makeatletter
\newcommand\trule[1]{\refstepcounter{rulec}\ltx@label{r:#1}\textup{\therulec: }}
\makeatother

\begin{document}

\ref{r:foo}, \ref{r:bar}

\begin{equation}
\begin{split}
& \trule{foo} Foo \\
& \trule{bar} Bar
\end{split}
\end{equation}

\end{document}

在此处输入图片描述

相关内容