我正在使用 Koma Scriptscrbook
编写文档。我想在章节标题上方插入一些文本,可以这样做:
\documentclass[chapterprefix=true]{scrbook}
\begin{document}
\setchapterpreamble[o]{Text above chapter title}
\chapter{Chapter title}
\end{document}
现在我想增加和之间的垂直距离(假设20\baselineskip
)。我该怎么做?Text above chapter title
Chapter title
我知道该命令\chapterheadstartvskip
存在,但它并没有实现我想要的功能:
\documentclass[chapterprefix=true]{scrbook}
\renewcommand*{\chapterheadstartvskip}{\vspace*{20\baselineskip}}
\begin{document}
\setchapterpreamble[o]{Text above chapter title}
\chapter{Chapter title}
\end{document}
而不是有这样的输出:
20\baselineskip
Text above chapter title
Chapter title
我想要这样的输出:
Text above chapter title
20\baselineskip
Chapter title
Text above chapter title
应该停留在页面的上部,而不是向下移动。
顺便说一句,我知道从印刷的角度来看这没有多大意义,但在我的用例中,这是必需的。
答案1
章节序言插入在章节标题上方空间的底部。因此,如果您的序言只有一行,并且应该有 20\baselineskip 的空间,则可以使用以下方法调整章节上方的空间
\RedeclareSectionCommand[beforeskip=-21\baselineskip]{chapter}
然后您可以使用\parbox
具有相同高度、外部对齐b
ottom 和内部对齐t
op 的。
\setchapterpreamble[o]{%
\parbox[b][21\baselineskip][t]{\linewidth}{%
\strut Text above chapter title}}
\chapter{Chapter title}
代码:
\documentclass{scrbook}
\RedeclareSectionCommand[beforeskip=-21\baselineskip]{chapter}
\begin{document}
\setchapterpreamble[o]{%
\parbox[b][21\baselineskip][t]{\linewidth}{%
\strut Text above chapter title}}
\chapter{Chapter title}
Normal text
\end{document}
或者
\documentclass{scrbook}
\RedeclareSectionCommand[beforeskip=-21\baselineskip]{chapter}
\newcommand\mychapterpreamble[1]{%
\parbox[b][21\baselineskip][t]{\linewidth}{\strut\ignorespaces#1}}
\begin{document}
\setchapterpreamble[o]{\mychapterpreamble{ Text above chapter title}}
\chapter{Chapter title}
Normal text
\end{document}
或者只针对一个章节
\documentclass{scrbook}
\begin{document}
{
\RedeclareSectionCommand[beforeskip=-21\baselineskip]{chapter}
\setchapterpreamble[o]{%
\parbox[b][21\baselineskip][t]{\linewidth}{%
\strut Text above chapter title}}
\chapter{Chapter title}
}
\chapter{Second chapter title}
\end{document}