我正在尝试在报告中使用 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.1
,test4
标记为2.0.2
。但是一旦您增加subsection
计数器(当我输入 时test 5
),计数器现在就会正常运行:test6
为2.1.1
。
顺便说一句,这不仅仅发生在分段命令中。如果您使用\numberwithin
AMS 包中的命令来设置方程的级别,或者使用命令amsthm
将定理编号与分段级别联系起来,则您永远不应该将重置与无法可靠递增的计数器联系起来。
给出了可能的解决方法这里:在你的序言中添加
\makeatletter
\@addtoreset{subsubsubsection}{section}
\@addtoreset{subsubsubsection}{subsection}
\makeatother
这将使增加的部分和小节也触发重置代码。