删除章节标题前的空格 - 使用 KOMA 脚本 (scrbook)

删除章节标题前的空格 - 使用 KOMA 脚本 (scrbook)

我正在使用 KOMA 脚本文档类scrbook。是否有任何方法可以仅使用 KOMA 使章节标题准确显示在页面主体的顶部(而不使用titlesecfancyhdrfncychap、 ...,因为它们会弄乱文档中的其他内容)?是否有任何方法可以更改章节标题和以下文本之间的间距?

答案1

更新

自从KOMA-Script 版本 3.26您可以选择afterindent=false避免章节标题后第一行文本的段落缩进。

\documentclass{scrbook}
\usepackage{blindtext}
\usepackage{showframe}
\RedeclareSectionCommand[
  beforeskip=0pt,
  afterindent=false% <- added
  ]{chapter}
\begin{document}
\chapter{foo}
\blindtext
\end{document}​

结果和下面的原始答案相同。

使用afterindent=falseafterindent=true负值会beforeskip导致章节标题上方的负跳过(需要 3.26 或更新版本)。

注意:使用KOMA-Script 版本 3.22 - 3.25您必须将其设置beforeskip为负值,以避免章节标题后的第一行文本出现段落缩进:beforeskip=-1sp。有关更多信息,请参阅文档或使用 koma-script 调整章节/小节标题周围的间距


原始答案

KOMA-Script 版本 3.15 或更新版本您可以使用\RedeclareSectionCommand\RedeclareSectionCommands更改章节标题上方或下方的空间。

\RedeclareSectionCommand[beforeskip=0pt]{chapter}

在此处输入图片描述

代码:

\documentclass{scrbook}
\usepackage{blindtext}% dummy text
\usepackage{showframe}% to show the page layout
\RedeclareSectionCommand[beforeskip=0pt]{chapter}
\begin{document}
\chapter{foo}
\blindtext
\end{document}​

答案2

以下可能就是您想要的:

在此处输入图片描述

\documentclass{scrreprt}
\usepackage{blindtext,showframe}
\renewcommand{\chapterheadstartvskip}{}
\begin{document}
\chapter{foo} \blindtext \blindtext
\end{document}​

设置\chapterheadstartvskip为无操作将删除任何垂直跳过以在第一行设置章节标题。

showframe只是为了突出显示文本块而加载的blindtext提供虚拟文本。

答案3

我遇到了完全相同的问题,我认为这实际上是 KOMA 章节处理中的问题。请看以下 MWE:

\documentclass[
paper=a4,
twoside,
scrbook,
fontsize=11pt,
DIV=12,
headings=small,
usegeometry=true]{scrbook}
\usepackage[showframe=true]{geometry}

% I would expect that now chapter has no top vskip, just like section
\RedeclareSectionCommand[beforeskip=0pt]{chapter}
\renewcommand{\chapterheadstartvskip}{}%

\begin{document}
\cleardoubleevenpage
\section*{\usekomafont{chapter}The Section is Correct}
Baz bar.

\clearpage
\chapter*{The Chapter Still Has a Gap Above}
You can see some additional handling in the KOMA scrbook class:\\ 
\textbackslash{}renewcommand*\{\textbackslash{}scr@chapter@beforeskip\}{-2.8\textbackslash{}baselineskip-\textbackslash{}parskip\}\\%
However, I have no idea how to get rid of it and why it is there.
\end{document}

我预计 chapter* 和 section* 现在都具有零顶部 vspace。如果您查看 scrbook.cls,您会发现使用 scr@chapter@beforeskip 进行了特殊处理,而 section 命令则不存在这种处理。

也许 Markus Kohm 可以澄清这种差异的目的,并给出如何克服这个问题的提示。这里有一篇有点相关的帖子:中间的章节和章节表

MWE 显示 chapter* 和 section* 之间的差异,且 beforeskip 为零

相关内容