scrbook
我正在使用中的类编写文档KOMA-script
。我的问题是我想要一个chapter
命令,无论我是否使用选项,它都会在空白页上水平和垂直居中显示章节标题twocolumn
。我已经有一些代码,当它是单列布局时可以正常工作。
所以我眼前的问题是试图找到一个可行的方法\KOMAoptions{twocolumn}
,然后我就可以解决剩下的问题,可能使用一些条件代码,这样无论它是否是两列都可以工作(这是我的想法)。
这是我用于普通单列文档的(工作)代码:
\DeclareDocumentCommand\chapterheadstartvskip {}{\vspace*{-\topskip}\vfill}
\DeclareDocumentCommand\chapterheadendvskip {}{\vfill\clearpage}
\DeclareDocumentCommand\chaptermarkformat {}{}
\DeclareDocumentCommand\chapterformat {}{}
\DeclareDocumentCommand\chapterlinesformat {mmm} {%
#2\par
{\centering #3}
}
当我切换到双栏布局时,\KOMAoptions{twocolumn}
我发现它不再这样工作了。我认为这是因为\clearpage
毕竟只会清除一页,但即使添加多页也\null\newpage
不会添加新页面,而只是在章节标题下方添加一些空白。
我尝试使用\onecolumn
和\twocolumn
切换,但它在重新定义各种命令时不起作用\chapter
。以下是 MWE 的说明:
\documentclass[oneside]{scrbook}
\KOMAoptions{twocolumn}
\usepackage{xparse}
\usepackage{blindtext}
\DeclareDocumentCommand\chapterheadstartvskip {}{%
\onecolumn
\vspace*{-\topskip}\vfill
}
\DeclareDocumentCommand\chapterheadendvskip {}{%
\vfill\clearpage
\twocolumn %if this omitted, chapter text simply disappears
}
\DeclareDocumentCommand\chaptermarkformat {}{}
\DeclareDocumentCommand\chapterformat {}{}
\DeclareDocumentCommand\chapterlinesformat {mmm} {%
#2\par
{\centering #3}
}
\begin{document}
%Works fine, display "Test" vertically centered
\onecolumn
\vspace*{-\topskip}\vfill
Test
\vfill\clearpage
\twocolumn
%Works fine, display "Test" vertically centered
\vspace*{-\topskip}\vfill
Test
\vfill\cleardoublepage
%Doesn't display "Chapter" on a single page horizontally and vertically centered.
\chapter{Chapter}
\blindtext
\end{document}
我怎样才能达到预期的效果?
我的第二个问题是,如果我省略开关\twocolumn
,\chapterheadendvskip
那么章节文本就会消失,为什么?
答案1
您可以将style
部分级别更改chapter
为part
:
\documentclass[oneside]{scrbook}
\KOMAoptions{twocolumn}
\usepackage{xparse}
\usepackage{blindtext}
\DeclareDocumentCommand\chaptermarkformat {}{}
\DeclareDocumentCommand\chapterformat {}{}
\RedeclareSectionCommand[
style=part,
innerskip=0pt,
beforeskip=\fill,
afterskip=\fill
]{chapter}
\begin{document}
% Works fine, display "Test" vertically centered
\onecolumn
\vspace*{-\topskip}\vfill
Test
\vfill\clearpage
\twocolumn
\chapter{Chapter}
\blindtext
\end{document}