如何减少 \subsection 和其后文本之间的间距,以及 \subsubsection 之间的间距。目前,它上面有 2 行间距,两个标题前后有 3 行间距。我正在使用\documentclass{scrreprt}
和\usepackage{savetrees}
。
\documentclass{scrreprt}
\usepackage{savetrees}
\usepackage{lipsum}
\begin{document}
\subsection{Indications}
\subsubsection{Prices}
\end{document}
答案1
文档scrreport
类定义宏\subsection
并通过调用具有以下设置的\subsubsection
LaTeX 内核命令:\@startsection
\newcommand\subsection{%
\@startsection{subsection}{\subsectionnumdepth}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
\setlength{\parfillskip}{\z@ plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@subsection
}%
}
\newcommand\subsubsection{%
\@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
\setlength{\parfillskip}{\z@ plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@subsubsection
}%
}
\@startsection
在这两种情况下,第五个参数{1.5ex \@plus .2ex}
-- 控制垂直空间量以下节标题。要将此数量减少一半,即,减少到{0.75ex \@plus .1ex}
,您可以加载etoolbox
包并按如下方式使用它的\patchcmd
宏(在序言中插入代码):
\usepackage{etoolbox}
\makeatletter
\patchcmd{\subsection}{1.5ex \@plus .2ex}{0.75ex \@plus 0.1ex}{}{}
\patchcmd{\subsubsection}{1.5ex \@plus .2ex}{0.75ex \@plus 0.1ex}{}{}
\makeatother
如果你还需要减少空间多于子节和子节标题,您可以通过使用\patchcmd
来改变第四各个\@startsection
命令的参数。
最后一点:由于您也在使用该savetrees
包,因此您需要使用选项加载该包sections=normal
,以使上述代码生效。(如果没有此选项,该savetrees
包将调用该titlesec
包来修改分段标题周围的间距,导致上述代码不执行任何操作。)