一个关于自定义计数器的问题

发布于 2021-03-05 18:54:27

自定义一个名为exercise的计数器,其上级计数器为section。若要求避免在每个\section{section name}后面都使用一次\setcounter{exercise}{1},那么该如何修改代码使得每一节的exercise都从1开始计数?

\documentclass{ctexbook}
\newcounter{exercise}[section]
\renewcommand{\theexercise}{\textbf{\arabic{exercise}.}}
\newcommand{\ex}{\theexercise\addtocounter{exercise}{1}}
\begin{document}
\setcounter{chapter}{1}
\section{第一节}
\ex 第一题

\ex 第二题
\end{document}

1.png

查看更多

关注者
0
被浏览
2.9k
啸行
啸行 2021-03-05
这家伙很懒,什么也没写!
\documentclass{ctexbook}
\newcounter{exercise}[section]
\renewcommand{\theexercise}{\textbf{\arabic{exercise}.}}
\newcommand{\ex}{\addtocounter{exercise}{1}\theexercise}
\begin{document}
\setcounter{chapter}{1}
\section{第一节}
\ex 第一题

\ex 第二题
\section{第二节}
\ex 第一题
\end{document}

捕获.png

4 个回答
Swit
Swit 2021-03-05
LaTeX nubility!

将第四行改为\newcommand{\ex}{\addtocounter{exercise}{1}\theexercise}

LaTeXStudio
LaTeXStudio 2021-03-05
这家伙很懒,什么也没写!

可以用 numberwithin 命令即可,让计数器在一定的范围里,超出了就自动重置。类似如下使用方式:

\numberwithin{exercise}{section}
如果您有什么不同意见,您是对的,我是错的。
这家伙很懒,什么也没写!

不知道你是哪里不懂,是

  • 如何修改代码使得每一节的exercise都从「1」开始计数

还是

  • 如何修改代码使得每一节的exercise都从「1开始」计数

@u20011 说得对,直接调换顺序就好了。

\documentclass{ctexbook}
\newcounter{exercise}[section]
\renewcommand{\theexercise}{\textbf{\arabic{exercise}.}}
\newcommand{\ex}{\addtocounter{exercise}{1}\theexercise}
\begin{document}
\setcounter{chapter}{1}
\section{第一节}
\ex 第一题

\ex 第二题
\section{第一节}
\ex 第一题

\ex 第二题
\end{document}

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览