为什么“分割”环境与我的柜台冲突?

为什么“分割”环境与我的柜台冲突?

以下是代码:

\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}

在此处输入图片描述

相关内容