为我创建的计数器创建子计数器

为我创建的计数器创建子计数器

我创建了一个计数器,将其称为ncnewcounter:

\newcounter{nc}

我想创建一个“子计数器”,让我称其snc为子新计数器,其行为模仿subsection“子计数器”的方式section。我该怎么做?

如果我问的不清楚,这里有一个例子:如果的值为nc4,那么我希望的值为snc4.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}

两种样式均产生以下输出:

在此处输入图片描述

相关内容