我已创建以下计数器。
\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}