我想调整未编号章节前的垂直间距仅有的。我喜欢默认的编号章节,但我需要单页摘要,而大的垂直跳跃占用了太多空间。我尝试了类似这样的方法:
\documentclass{scrbook}
\begin{document}
\frontmatter{}
\RedeclareSectionCommand[beforeskip=0pt]{addchap}
\addchap{Abstract}
Hello, world!
\mainmatter{}
\chapter{Introduction}
Goodbye!
\end{document}
...但\addchap
无法独立修改。我看到两种合理的解决方法:
创造一些类似于
frontchap
的完美副本,\chapter
但没有beforeskip
也没有数字的东西。\RedeclareSectionCommand
在 frontmatter 的开头使用来beforeskip
更改\chapter
,在 mainmatter 的开头使用 来返回默认值。
但我不能 100% 确定我将如何实现。是否有用于“基于现有命令创建分段命令”的 KOMA 命令?或者“返回默认值”?我宁愿避免对特定的 beforeskip 值进行硬编码,而是使用基于当前字体大小等计算的值。
谢谢你!
答案1
您可以使用\frontmatter\renewcommand*\chapterheadstartvskip{}
删除前言中章节标题前的垂直空间并\mainmatter\KOMAoptions{headings=big}
恢复默认设置。
例子:
\documentclass{scrbook}
\usepackage{showframe}% to show the page layout
\begin{document}
\frontmatter
\renewcommand*\chapterheadstartvskip{}% removes space before chapter titles
\chapter{Abstract}
Hello, world!
\mainmatter
\KOMAoptions{headings=big}% restores default space before chapter titles
\chapter{Introduction}
Goodbye!
\end{document}
请注意,前言中的章节默认没有编号。
您还可以定义一个新的切片命令\frontchap
:
例子:
\documentclass{scrbook}[2020/01/24]
\usepackage{showframe}% to show the page layout
\DeclareTOCStyleEntry[
level:=chapter,
indent:=chapter,
numwidth:=chapter,
beforeskip:=chapter
]{chapter}{frontchap}
\DeclareNewSectionCommand[
style=chapter,
level=\chapternumdepth,
beforeskip=0pt,
afterindent=false
]{frontchap}
\BeforeTOCHead{\let\chapter\frontchap}
\let\frontchapmark\chaptermark
\let\frontchapmarkformat\chaptermarkformat
\makeatletter
\let\c@frontchap\c@chapter% use the same counter
\def\cl@frontchap{\cl@chapter}% use the same reset list
\makeatother
\begin{document}
\frontmatter
\frontchap{Abstract}
Hello, world!
\mainmatter
\chapter{Introduction}
Goodbye!
\end{document}