我正在尝试创建一个新的部分,以使用相关标签自动更新计数器。
newcommand-stepcounter有点像我想做的事,但不完全是。
当我使用下面的代码时,标题为“Eq”的部分上的计数器会按照我希望的方式进行更新,但如果我尝试使用\label
它们,则会使用部分编号而不是新命令上的计数器。
请问使用时如何使用相关计数器label
。
\documentclass{report}
\newcounter{mycounter}
\newcommand{\step}{\stepcounter{mycounter}\subsubsection*{Eq \themycounter}}
\begin{document}
\section{}
\subsection{}
\step\label{eq:one}
\section{}
\subsection{}
\step
As seen in Eq~\ref{eq:one}
\end{document}
产生
答案1
您只要改为\stepcounter
即可\refstepcounter
。
\documentclass{report}
\newcounter{mycounter}
\newcommand{\step}{\refstepcounter{mycounter}\subsubsection*{Eq \themycounter}}
\begin{document}
\section{}
\subsection{}
\step\label{eq:one}
\section{}
\subsection{}
\step
As seen in Eq~\ref{eq:one}
\end{document}
\stepcounter
只是添加1
到计数器但\refstepcounter
使其\@currentlabel
成为该计数器:
\def\refstepcounter#1{\stepcounter{#1}%
\protected@edef\@currentlabel
{\csname p@#1\endcsname\csname the#1\endcsname}%
}
因此,当您使用\label
s 时,\stepcounter
单独使用是不够的,因为 LaTeX 不知道计数器是一个标签。