我正在尝试使用它enumitem
来制作一个在某个部分连续运行然后重置的列表。
这个问题和接受的答案看起来很有希望:如何使用 chngcntr 和带有简历的 enumitem newlist?,但是当我尝试的时候它似乎并没有起到什么作用。
需要它的作者的要求只是Problems
环境应该可以在同一个部分内多次使用,在部分内连续编号,并在新的部分重置。
有任何想法吗?
\documentclass[a4paper]{article}
\usepackage{enumitem}
\newlist{xxx}{enumerate}{1}
\setlist[xxx]{
label=\thesection.\arabic*.,
% no end dot in ref
ref=\thesection.\arabic*,
resume=myProblems,
}
\usepackage{etoolbox}
\preto\section{%
\restartlist{xxx}%
}
\newenvironment{Problems}{%
\paragraph{\textbf{Exercises}}%
\begin{xxx}}{\end{xxx}}
\begin{document}
\section{test}
\begin{Problems}
\item A
\end{Problems}
\subsection{subtest}
\begin{Problems}
\item B
\end{Problems}
\section{test 2}
\begin{Problems}
\item C
\end{Problems}
\end{document}
答案1
计数器重置(resume=myProblems
)存储在宏中\enit@resume@series@myProblems
。将其重新定义为空似乎有帮助:
\documentclass[a4paper]{article}
\usepackage{enumitem}
\newlist{xxx}{enumerate}{1}
\setlist[xxx]{
label=\thesection.\arabic*.,
% no end dot in ref
ref=\thesection.\arabic*,
resume=myProblems,
}
\usepackage{etoolbox}
\makeatletter
\preto\section{%
\let\enit@resume@series@myProblems\@empty
}
\makeatother
\newenvironment{Problems}{%
\paragraph{\textbf{Exercises}}%
\begin{xxx}}{\end{xxx}}
\begin{document}
\section{test}
\begin{Problems}
\item A
\end{Problems}
\subsection{subtest}
\begin{Problems}
\item B
\end{Problems}
\section{test 2}
\begin{Problems}
\item C
\end{Problems}
\end{document}