计数器不从设定值开始

计数器不从设定值开始

我已创建以下计数器。

\documentclass{article}

\newcounter{CounterOne}

\newcounter{CounterTwo}[CounterOne]

\setcounter{CounterTwo}{1}

\newcommand{\One}{\stepcounter{CounterOne}{\textbf{\theCounterOne.\theCounterTwo}}}

\newcommand{\Two}{\stepcounter{CounterTwo}{\textbf{\theCounterOne.\theCounterTwo}}}

\begin{document}

\One

\One

\Two

\Two

\end{document}

一切正常,只是第二个计数器没有像我设置的那样从 1 开始。这是为什么?我该如何修复?

答案1

你可能不明白 then 的意思\newcounter。它有以下接口(见source2e, 部分21.1 环境计数器宏,第 133 页):

\newcounter{<newctr>}[<oldctr>]
定义为计数器,当计数器步进<newctr>时重置。<oldctr>

这里最重要<newctr>的是重置什么<oldctr>时候踏步. 只需删除可选的<oldctr>

1.1
2.1
2.2
2.3

\documentclass{article}

\newcounter{CounterOne}

\newcounter{CounterTwo}%[CounterOne]

\setcounter{CounterTwo}{1}

\newcommand{\One}{\stepcounter{CounterOne}{\textbf{\theCounterOne.\theCounterTwo}}}

\newcommand{\Two}{\stepcounter{CounterTwo}{\textbf{\theCounterOne.\theCounterTwo}}}

\begin{document}

\One

\One

\Two

\Two

\end{document}

答案2

你的\setcounter位置不对。它应该位于CounterOne\One之后\stepcounter,因为你需要在每次重置第一个计数器时设置它(TeX 从 0 开始)。

\documentclass{article}

\newcounter{CounterOne}

\newcounter{CounterTwo}[CounterOne]


\newcommand{\One}{\stepcounter{CounterOne}\setcounter{CounterTwo}{1}{\textbf{\theCounterOne.\theCounterTwo}}}

\newcommand{\Two}{\stepcounter{CounterTwo}{\textbf{\theCounterOne.\theCounterTwo}}}

\begin{document}

\One

\One

\Two

\Two

\end{document}

相关内容