\newcounter 与 \newcount

\newcounter 与 \newcount

\newcounter和有什么区别\newcount

就我所知,我所掌握的知识\newcounter来自 LaTeX 和 \newcountTeX。此外,我发现 \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 方式使用它。

相关内容