我正在使用scrbook
文档类并使用章节和节。章节和节之间的间距很大,对我来说太大了(在章节和节之前和之后)。所以我的问题是如何减少这个间距?(看到了一些非 KOMA 文档类的变体,但这些变体似乎不适用于此类)。
\documentclass[11pt,a4paper,BCOR10mm,DIV11,toc=listof,parskip=full]{scrbook}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{multicol}
\twocolumn
\raggedright
\Chapter{chap1}
\Section{sec1}
blaahblah
\Section{sec2}
Blah
\Chapter{chap2}
BlahBlah
\Chapter{chap3}
Blah
编辑:应用 Werner 提到的更改后,我出现了以下现象(代码摘录和屏幕截图是为了展示我在评论中试图描述的内容):
“种类”为一章,“应用”为一节,优点和缺点各为小节。
缺点的代码摘录(1 个输入位于小节之前和之后):
all perception rolls.
\subsection{Disadvantages}
\noindent\textbf{Bestial psychology and territorial instincts}: Dragons despite their intellect are part beast. This means that they have strong territo
章节部分的代码摘录:
\chapter{Species template}
\section{Applying the template}
\subsection{Advantages}
\noindent\textbf{Dragons bodies}: +5.....
答案1
在scrbook
/中scrreport
,章节前/章节末尾的跳过定义为
\renewcommand*{\chapterheadstartvskip}{%
\vspace*{2.3\baselineskip}%
}%
\renewcommand*{\chapterheadendvskip}{%
\vspace{1.725\baselineskip
\@plus .115\baselineskip \@minus .192\baselineskip}%
}%
根据你的喜好进行调整。就\section
s 而言,KOMA 脚本bundle 仍然使用\@startsection
(参见在哪里可以找到类似\@startsection
LaTeX 的命令的帮助文件或文档?)的定义如下\section
:
\newcommand\section{%
\@startsection{section}{\sectionnumdepth}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
\setlength{\parfillskip}{\z@ plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@section}%
}
调整两个橡胶长度(参数#4
和#5
至\@startsection
)以满足您的需要。
这是一个最小的例子,其中提到的长度已经调整:
\documentclass[11pt,a4paper,BCOR10mm,DIV11,toc=listof,parskip=full,twocolumn]{scrbook}
\usepackage{etoolbox}
\makeatletter
\renewcommand{\chapterheadstartvskip}{\vspace{0pt}}
\renewcommand{\chapterheadendvskip}{\vspace{\baselineskip}}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\section}{-3.5ex \@plus -1ex \@minus -.2ex}{-\baselineskip}{}{}
\patchcmd{\section}{2.3ex \@plus .2ex}{.5\baselineskip}{}{}
\makeatother
\begin{document}
\raggedright
\chapter{chap1}
\section{sec1}
blaahblah
\section{sec2}
Blah
\chapter{chap2}
BlahBlah
\chapter{chap3}
Blah
\end{document}
当然,以上仅提及对\chapter
和 的更改\section
。您必须以类似的方式调整较低级别的分段单元。例如,这里有一个选项可以删除分段单元周围的更多间距,这次包括 的间距\subsection
:
\usepackage{etoolbox}
\makeatletter
\renewcommand{\chapterheadstartvskip}{\vspace{0pt}}
\renewcommand{\chapterheadendvskip}{\vspace{\baselineskip}}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\section}{-3.5ex \@plus -1ex \@minus -.2ex}{-\z@}{}{}
\patchcmd{\section}{2.3ex \@plus .2ex}{1sp}{}{}
\patchcmd{\subsection}{-3.25ex\@plus -1ex \@minus -.2ex}{-\z@}{}{}
\patchcmd{\subsection}{1.5ex \@plus .2ex}{1sp}{}{}
\patchcmd{\@xsect}{\ignorespaces}{\vspace*{-.5\baselineskip}\ignorespaces}{}{}
\makeatother