问题出在计数器‘jrule’中,如下所示: 为什么‘分裂’与我的反击冲突?
我有这个文件:
\documentclass{article}
\usepackage{mathtools}
\usepackage[capitalize]{cleveref}
\begin{document}
\newcounter{rule}
\newcommand\rrule[1]{{\bfseries\sffamily R\ref{rule:#1}}}
\makeatletter\newcommand\jrule[1]{%
\refstepcounter{rule}%
\ltx@label{rule:#1}%
\text{\rrule{#1}}}\makeatother%
\section{Intro}
\subsection{Overview}
\begin{equation*}
\dfrac{x + y}{z - f}\jrule{1}
\end{equation*}
\end{document}
但如果我删除\usepackage[capitalize]{cleveref}
,它就可以正常工作:
我怎样才能解决这个问题而不删除“cleveref”包?
答案1
该cleveref
包重新定义了标准label
命令以具有可选参数。 仅在以后才amsmath
这样做\let\ltx@label=\label
。
\documentclass{article}
\usepackage{mathtools}
\usepackage[capitalize]{cleveref}
\newcounter{rule}
\crefname{rule}{rule}{rules}
\Crefname{rule}{Rule}{Rules}
\newcommand\rrule[1]{{\bfseries\sffamily R\ref{rule:#1}}}
\makeatletter
\newcommand\jrule[1]{%
\refstepcounter{rule}%
\ltx@label[rule]{rule:#1}%
\textnormal{\rrule{#1}}%
}
\makeatother
\begin{document}
\section{Intro}
\subsection{Overview}
\begin{equation*}
\dfrac{x + y}{z - f}\jrule{1}
\end{equation*}
See~\cref{rule:1}.
\end{document}
避免在之后定义命令\begin{document}
。