如何在 \subsubsection 下添加带有标题的额外层级

如何在 \subsubsection 下添加带有标题的额外层级

我有一份需要多层级分段的文档。我有章节、小节和小子章节,但需要再低一层。我无法将章节改为部分并将所有内容上移一层,因为此文档最终将包含在另一份已有部分/章节的文档中。

我看到该\paragraph命令用于定义 subsubsection 下面的节级别,但它不会像 subsection 和 subsubsection 那样生成标题。有没有办法 (1) 更改命令,\paragraph使其像 subsubsection 一样工作,但只添加另一个数字 - 即 1.2.3.4 或 (2) 创建一个\subsubsubsection命令来执行相同的操作?

答案1

您可以使用titlesec包来改变\paragraph标题的格式,并将计数器设置secnumdepth为四以获得段落的编号:

\documentclass{article}
\usepackage{titlesec}

\setcounter{secnumdepth}{4}

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

\begin{document}

\section{Test Section}
test
\subsection{Test Subsection}
test
\subsubsection{Test Subsubsection}
test
\paragraph{Test Modified Paragraph}
test

\end{document}

在此处输入图片描述

如果你想定义一个新的分段命令,你可以看看定义自定义切片命令

\subsubsection如果您要在 之下、但在 之上定义一个全新的部分单元\paragraph,那么您将不得不做更多的工作:必须创建一个新的计数器并适当地定义它的表示;还必须重新定义部分单元\paragraph和,以及它们对应的命令(控制如果值增加,将在目录中如何排版);此外,还必须考虑 toclevel(用于最终的书签)。\subparagraph\l@...tocdepth

下面是一个示例,展示如何获取这个新的分段单元,现在您可以选择使用\part\section\subsection、、和:\subsubsection\subsubsubsection\paragraph\subparagraph

\documentclass{article}
\usepackage{titlesec}
\usepackage{hyperref}

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

\newcounter{subsubsubsection}[subsubsection]
\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}{7em}{4em}}
\def\l@paragraph{\@dottedtocline{5}{10em}{5em}}
\def\l@subparagraph{\@dottedtocline{6}{14em}{6em}}
\makeatother

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

\begin{document}

\tableofcontents
\section{Test Section}
test
\subsection{Test Subsection}
test
\subsubsection{Test Subsubsection}
test
\subsubsubsection{Test Subsubsubsection}
test
\paragraph{Test Paragraph}
test
\subparagraph{Test Subparagraph}
test

\end{document}

在此处输入图片描述

答案2

这是一个不需要使用专门的包(例如titlesec或 )的解决方案sectsty。(没有什么错本身,显然,使用包来实现某个目标;尽管如此,我认为有时了解如何直接操作 LaTeX 的一些内置命令还是很有启发的。)

如果使用article文档类,命令输出的默认外观\subsubsection设置\paragraph如下:

\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
                {-3.25ex\@plus -1ex \@minus -.2ex}%
                {1.5ex \@plus .2ex}%
                {\normalfont\normalsize\bfseries}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                {3.25ex \@plus1ex \@minus.2ex}%
                {-1em}%
                {\normalfont\normalsize\bfseries}}

为了使\paragraph命令的行为更像\subsubsection命令,但节标题行上方和下方的垂直间距较小,您可以修改命令\paragraph以使其输出的行为就像“subsubsubsection”一样。以下 MWE 说明了一种可能的设置。

\documentclass{article}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
            {-2.5ex\@plus -1ex \@minus -.25ex}%
            {1.25ex \@plus .25ex}%
            {\normalfont\normalsize\bfseries}}
\makeatother
\setcounter{secnumdepth}{4} % how many sectioning levels to assign numbers to
\setcounter{tocdepth}{4}    % how many sectioning levels to show in ToC

\begin{document}
\tableofcontents
\section{A}
\subsection{B}
\subsubsection{C1}
\paragraph{D1}
\paragraph{D2}
\subsubsection{C2}
\end{document}

在此处输入图片描述

答案3

我知道这是一个老问题,但我用谷歌找到了它,我认为解决方案太复杂了。

对我来说,这是子子部分最简单的方法:

\newcommand{\subsubsubsection}[1]{\paragraph{#1}\mbox{}\\}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

此后,可以使用

\subsubsubsection{Navigator}

答案4

这个非常优秀的答案还可以非常轻松地扩展以添加\subsubsubsection\subsubsubsubsection命令:

截屏

\documentclass{article}

\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

\makeatletter
\newcommand\subsubsubsection{\@startsection{paragraph}{4}{\z@}{-2.5ex\@plus -1ex \@minus -.25ex}{1.25ex \@plus .25ex}{\normalfont\normalsize\bfseries}}
\newcommand\subsubsubsubsection{\@startsection{subparagraph}{5}{\z@}{-2.5ex\@plus -1ex \@minus -.25ex}{1.25ex \@plus .25ex}{\normalfont\normalsize\bfseries}}
\makeatother

\begin{document}

\tableofcontents

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}
\subsubsubsection{subsubsubsection}
\subsubsubsubsection{subsubsubsubsection}

\end{document}

相关内容