开始新的章节、小节等时,\subsubsubsection 计数不会重置

开始新的章节、小节等时,\subsubsubsection 计数不会重置

我正在尝试在报告中使用 subsubsubsection,并且使用的代码已在这个网站上给出

以下是我的 MWE:

\documentclass[a4paper,11pt,french]{report}
\usepackage[francais]{babel}

\usepackage{titlesec}
\titleclass{\subsubsubsection}{straight}[\subsection]

\newcounter{subsubsubsection}
\renewcommand\thesubsubsubsection{\thesubsubsection.\arabic{subsubsubsection}}
\renewcommand\theparagraph{\thesubsubsubsection.\arabic{paragraph}} % optional; useful if paragraphs are to be numbered

\titleformat{\subsubsubsection}
  {\normalfont\normalsize\bfseries}{\thesubsubsubsection}{1em}{}
\titlespacing*{\subsubsubsection}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{5}{\z@}%
  {3.25ex \@plus1ex \@minus.2ex}%
  {-1em}%
  {\normalfont\normalsize\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{6}{\parindent}%
  {3.25ex \@plus1ex \@minus .2ex}%
  {-1em}%
  {\normalfont\normalsize\bfseries}}
\def\toclevel@subsubsubsection{4}
\def\toclevel@paragraph{5}
\def\toclevel@paragraph{6}
\def\l@subsubsubsection{\@dottedtocline{4}{10em}{5em}}
\def\l@paragraph{\@dottedtocline{5}{10em}{5em}}
\def\l@subparagraph{\@dottedtocline{6}{14em}{6em}}
\makeatother

\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

\begin{document}

\tableofcontents

\pagebreak

\section{test}
\subsubsubsection{test11}
\subsubsubsection{test12}
\subsubsubsection{test13}

\section{test2}
\subsubsubsection{test21}
\subsubsubsection{test22}
\subsubsubsection{test23}

\end{document}

正如您所注意到的,这两个部分之间的子子子部分没有被重置。

请问我该如何修复它?

请问我该如何修复?提前感谢您的帮助。

答案1

计数器subsubsubsection重置为subsubsection。在您的示例中,subsubsection计数器从未改变。(它始终保持在零。)

(更准确地说,仅当在父计数器上调用\stepcounter或时才会触发重置命令。由于从未发出任何命令,因此计数器从未逐步增加,并且从未调用重置命令。)\refstepcounter\subsubsection

即使没有定义自己的新部分级别,您也可以看到问题。如果您编译以下 MWE:

\documentclass{article}
\begin{document}

\section{Test}
\subsubsection{test2}
\section{test3}
\subsubsection{test4}
\subsection{test 5}
\subsubsection{test6}
\end{document}

您将看到test2标记为1.0.1test4标记为2.0.2。但是一旦您增加subsection计数器(当我输入 时test 5),计数器现在就会正常运行:test62.1.1

顺便说一句,这不仅仅发生在分段命令中。如果您使用\numberwithinAMS 包中的命令来设置方程的级别,或者使用命令amsthm将定理编号与分段级别联系起来,则您永远不应该将重置与无法可靠递增的计数器联系起来。

给出了可能的解决方法这里:在你的序言中添加

\makeatletter
\@addtoreset{subsubsubsection}{section}
\@addtoreset{subsubsubsection}{subsection}
\makeatother

这将使增加的部分和小节也触发重置代码。

相关内容