\newcounter
和有什么区别\newcount
?
就我所知,我所掌握的知识\newcounter
来自 LaTeX 和 \newcount
TeX。此外,我发现 \newcounter
具有可选的自动重置机制。因此,如果我定义\newcounter{mycounter}[section]
,则每次计数器递增mycounter
时都会重置为零。section
两者之间还有其他区别吗?它们的使用是否有特定的场所或情况?在内部,到底用什么\newcounter
?实际上是吗\newcount
?
答案1
的定义\newcounter
是
\expandafter\@ifdefinable\csname c@#1\endcsname{\@definecounter{#1}}
\@ifnextchar[{\@newctr{#1}}{}
哪里\@definecounter
\expandafter\newcount\csname c@#1\endcsname
\setcounter{#1}\z@
\global\expandafter\let\csname cl@#1\endcsname\@empty
\addtoreset{#1}{@ckpt}
\global\expandafter\let\csname p@#1\endcsname\@empty
\expandafter\gdef\csname the#1\expandafter\endcsname\expandafter{\expandafter\@arabic\csname c@#1\endcsname}
所以,是的,确实在内部\newcounter
使用\newcount
。它还将新计数器设置为零(使用简写\z@
)并定义一个\the...
命令,该命令将计数器打印为阿拉伯数字,并且如您所提到的,具有可选的重置机制。
由于内部\newcounter
使用\newcount
,后者可以替换为前者。LaTeX 命令\newcounter{counter}
声明了一个名为的 TeX 计数\c@counter
,可以按通常的 TeX 方式使用它。