如何在双列文档(KOMA 类 scrbook)的单独页面上显示章节标题?

如何在双列文档(KOMA 类 scrbook)的单独页面上显示章节标题?

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}

MWE 章节页面

我怎样才能达到预期的效果?

我的第二个问题是,如果我省略开关\twocolumn\chapterheadendvskip那么章节文本就会消失,为什么?

答案1

您可以将style部分级别更改chapterpart

\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}

在此处输入图片描述

相关内容