我创建了一个计数器,将其称为nc
newcounter:
\newcounter{nc}
我想创建一个“子计数器”,让我称其snc
为子新计数器,其行为模仿subsection
“子计数器”的方式section
。我该怎么做?
如果我问的不清楚,这里有一个例子:如果的值为nc
4,那么我希望的值为snc
4.0,下一次调用的snc
值为 4.1,等等。
这当然是众所周知的,但我简单搜索了一下却找不到明确的答案。
答案1
应该从其他计数器重置的计数器通常用重置计数器的\newcounter{snc}[nc]
位置来定义。nc
但是,这不提供所请求的格式,即nc.snc
,因此\renewcommand{\thesnc}{\thenc.\arabic{snc}
是需要的。
计数器本身不能具有浮点值1.1
——它们的输出是相关宏中定义的一些计数器值的组合\the...
。
\documentclass{article}
\newcounter{nc}
\newcounter{snc}[nc]
\renewcommand{\thesnc}{\thenc.\arabic{snc}}
\begin{document}
\setcounter{nc}{4}
\thenc\ and \thesnc
\stepcounter{snc}
Now snc has the value \thesnc.
Let's step nc and look what happens:\stepcounter{nc}
Now snc has the value \thesnc.
\end{document}
使用chngcntr
包可以稍微简化一点,例如,如果[nc]
忘记了snc
计数器的定义,则可以使用命令完成此操作和格式更改\counterwithin{snc}{nc}
。 但是,\newcounter{scn}
仍然是必要的。
\documentclass{article}
\usepackage{chngcntr}
\newcounter{nc}
\newcounter{snc}
\counterwithin{snc}{nc}
\begin{document}
\setcounter{nc}{4}
\thenc\ and \thesnc
\stepcounter{snc}
Now snc has the value \thesnc.
Let's step nc and look what happens:\stepcounter{nc}
Now snc has the value \thesnc.
\end{document}
两种样式均产生以下输出: