有没有什么办法可以钩住计数器的进步?

有没有什么办法可以钩住计数器的进步?

问题标题确实说明了一切 - 你能抓住

\stepcounter{mycounter}

这可能归结为(我很可能错了)

\advance \mycounter by 1

这是可以钩住的东西吗?

编辑:

我不确定这是否有帮助,但用 LaTeX3 回答也是可以的:)

答案1

在这个特定情况下,是的,但你需要确定这个进步的基本组件。涉及的宏包括和\refstepcounter。以下是它们的定义,取自\stepcounter\addtocounterlatex.ltx

\def\refstepcounter#1{\stepcounter{#1}%
    \protected@edef\@currentlabel
       {\csname p@#1\endcsname\csname the#1\endcsname}%
}

\def\stepcounter#1{%
  \addtocounter{#1}\@ne
  \begingroup
    \let\@elt\@stpelt
    \csname cl@#1\endcsname
  \endgroup}

\def\addtocounter#1#2{%
  \@ifundefined{c@#1}%
    {\@nocounterr{#1}}%
    {\global\advance\csname c@#1\endcsname #2\relax}}

\refstepcounter用于\stepcounter进步,\stepcounter用于\addtocounter进步。所以,利用\addtocounter是最好的。您可以更新它以连接到参数#1(计数器)或#2(数量/数字)。


如果您尝试接入页面计数器,则应考虑使用\label-\pageref系统,因为输出例程具有异步特性。为此,使用refcount它提供了\setcounterpageref\getpagerefnumber,这两者都可能有帮助。

相关内容