在我的文档中,scrreprt
我用 更改了段落之间的距离\setlength{\parskip}{9pt}
。但\parskip
也更改了章节标题和段落之间的距离。
我如何改变章节标题和段落之间的距离?
答案1
这titlesec
包裹提供
\titlespacing{<command>}{<left>}{<before-sep>}{<after-sep>}[<right>]
允许在任何截面周围留出间距(<command>
例如\part
,,,等)。前两个截面命令需要使用附加命令(请参阅\chapter
\section
\titleformat
包装文档)。因此,修改<after-sep>
应该适合您的需要。
以下最小示例,更改为<after-sep>
等于\parskip
,5\baselineskip
并150pt
说明了变化(从左到右):
\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}
这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\baselineskip
。0.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}