章节标题和文本之间的距离

章节标题和文本之间的距离

在我的文档中,scrreprt我用 更改了段落之间的距离\setlength{\parskip}{9pt}。但\parskip也更改了章节标题和段落之间的距离。

我如何改变章节标题和段落之间的距离?

答案1

titlesec包裹提供

\titlespacing{<command>}{<left>}{<before-sep>}{<after-sep>}[<right>]

允许在任何截面周围留出间距(<command>例如\part,,,等)。前两个截面命令需要使用附加命令(请参阅\chapter\section\titleformat包装文档)。因此,修改<after-sep>应该适合您的需要。

以下最小示例,更改为<after-sep>等于\parskip5\baselineskip150pt说明了变化(从左到右):

\documentclass{scrreprt}
\usepackage{titlesec}% http://ctan.org/pkg/titlesec
\usepackage{lipsum}% http://ctan.org/pkg/lipsum

\titleformat{\chapter}{\Huge\bfseries}{\chaptername\ \thechapter}{0pt}{\vskip 20pt\raggedright}%
% Alter <after-sep> in the macro below to vary the separation after the \chapter title.
\titlespacing{\chapter}{0pt}{50pt}{<after-sep>}% \titlespacing{<command>}{<left>}{<before-sep>}{<after-sep>}[<right>]
\begin{document}

\chapter{First chapter}
\lipsum[1-5]
\end{document}

使用 titlesec 与章节标题有不同间距

lipsum包裹仅提供一些虚拟文本,乱数风格。

答案2

不要改变\parskip长度,而是使用类选项parskip=full。(除其他外,这将删除现在多余的段落缩进。)如果您不想在章节标题后立即出现“额外”的 parskip,请更改宏\chapterheadendvskip

\documentclass[parskip=full]{scrreprt}

\renewcommand*{\chapterheadendvskip}{%
  \vspace{0.725\baselineskip plus 0.115\baselineskip minus 0.192\baselineskip}%
}

\usepackage{blindtext}

\begin{document}

\chapter{foo}

\blindtext

\blindtext

\end{document}

(这盲文包仅用于向示例添加一些虚拟文本。)

编辑:我对 的重新定义\chapterheadendvskip与原始定义类似,只是我用 替换了1.725\baselineskip0.725\baselineskip希望这将准确抵消 增加的空间parskip=full

答案3

应该\renewcommand放在序言中。它在这里只是为了在正文中演示。

\documentclass[parskip]{scrreprt}
\begin{document}

\chapter{foo}
bar

\setlength\parskip{40pt}
\renewcommand*\chapterheadendvskip{\vspace{-\normalbaselineskip}}    
\chapter{foo}
bar

baz
\end{document}

相关内容