这是我的代码:
\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}