如何一次性重置所有计数器?

如何一次性重置所有计数器?

我的 .tex 文件中有多个环境。我想知道是否有办法一次性重置所有计数器?

为了澄清我的意思,假设我们有环境theoremproposition等,而不是使用单独的命令\setcounter{theorem}{0}\setcounter{proposition}{0}等将计数器重置为 0,我想知道是否有办法使用单个命令重置所有计数器。

谢谢

答案1

你不能只是重置全部计数器。嗯,这并不完全正确;但这可能不是您想要的(例如,计数器page很可能不应被重置...)。

您可以创建一个命令,该命令接受计数器列表,以便进行可能的重置。以下是这样的实现:

\usepackage{chngcntr,etoolbox}
\newcounter{resetdummycounter}
\newcommand{\resetcounterlist}[1]{%
  % Add each item to clear-list for resetdummycounter
  \renewcommand*{\do}[1]{\counterwithin*{##1}{resetdummycounter}}%
  \docsvlist{#1}}% Process list
\newcommand{\resetcounters}{\stepcounter{resetdummycounter}}

\resetcounterlist{<CSV list>}需要一<CSV list>组要重置的计数器。然后,发出\resetcounters将计数器重置<CSV list>为零。这是一个完整的示例:

在此处输入图片描述

\documentclass{article}

\newtheorem{theorem}{Theorem}
\newtheorem{proposition}{Proposition}
\newtheorem{corollary}{Corollary}

\usepackage{chngcntr,etoolbox}
\newcounter{resetdummycounter}
\newcommand{\resetcounterlist}[1]{%
  \renewcommand*{\do}[1]{\counterwithin*{##1}{resetdummycounter}}%
  \docsvlist{#1}}
\newcommand{\resetcounters}{\stepcounter{resetdummycounter}}

% These counters should be reset via \resetcounters
\resetcounterlist{theorem, proposition, corollary}

\begin{document}

\begin{theorem} Some theorem \end{theorem}

\begin{proposition} Some proposition \end{proposition}

\begin{theorem} Some theorem \end{theorem}

\begin{proposition} Some proposition \end{proposition}

\begin{corollary} Some corollary \end{corollary}

\noindent\hrulefill

\resetcounters% Reset all counters previously marked

\begin{theorem} Some theorem \end{theorem}

\begin{proposition} Some proposition \end{proposition}

\begin{theorem} Some theorem \end{theorem}

\begin{proposition} Some proposition \end{proposition}

\begin{corollary} Some corollary \end{corollary}

\end{document}

请注意,这可能会引起混淆hyperref

相关内容