![为什么“分割”环境与我的柜台冲突?](https://linux22.com/image/456783/%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%9C%E5%88%86%E5%89%B2%E2%80%9D%E7%8E%AF%E5%A2%83%E4%B8%8E%E6%88%91%E7%9A%84%E6%9F%9C%E5%8F%B0%E5%86%B2%E7%AA%81%EF%BC%9F.png)
以下是代码:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\newcounter{rule}
\newcommand\jrule{
\refstepcounter{rule}
\label{foo}
\text{R\ref{foo}}}
\section{Intro}
\subsection{Overview}
\begin{equation*}
\begin{split}
& \jrule \\
\end{split}
\end{equation*}
\end{document}
它打印R1.1
而不是R1
。
但是,如果我不使用split
环境,它会打印R1
。问题是什么?
答案1
这是你想要的吗?
\documentclass{article}
\usepackage{mathtools}
\newcounter{rule}
\makeatletter
\newcommand\jrule{%
\refstepcounter{rule}%
\ltx@label{R@\roman{rule}}%
(\mathrm{R}\ref{R@\roman{rule}})%
}
\makeatother
\begin{document}
\section{Intro}
\subsection{Overview}
\begin{equation*}
\begin{split}
x&=y \\
&=\jrule
\end{split}
\end{equation*}
\end{document}
请注意,我没有使用不起作用的固定标签。
如果你希望能够引用数字,你可以添加一个可选参数\jrule
;你不能\label
在此上下文中使用,因为amsmath
在其各种数学显示环境中重新定义它以获得正确的引用。
\documentclass{article}
\usepackage{mathtools}
\newcounter{rule}
\makeatletter
\NewDocumentCommand\jrule{o}{%
\refstepcounter{rule}%
\IfNoValueTF{#1}{% no optional argument, use a generated label
\ltx@label{R@\roman{rule}}%
(\mathrm{R}\ref{R@\roman{rule}})%
}{% optional argument, use it for the label
\ltx@label{#1}%
(\mathrm{R}\ref{#1})%
}%
}
\makeatother
\begin{document}
\section{Intro}
\subsection{Overview}
\begin{equation*}
\begin{split}
x&=y \\
&=\jrule \\
&=\jrule[foo]
\end{split}
\end{equation*}
\ref{foo}
\end{document}