我有一份需要多层级分段的文档。我有章节、小节和小子章节,但需要再低一层。我无法将章节改为部分并将所有内容上移一层,因为此文档最终将包含在另一份已有部分/章节的文档中。
我看到该\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}