我正在使用依赖于 scrbook 的 labbook 文档类。它为每个章节开始一个新页面,而我并不想发生这种情况。有没有办法强制它在上一章结束的同一页面上继续新章节?
我试过
\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{}
\makeatother
但它没有作用。
以下是 MWE:
\documentclass[oneside]{labbook}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{}
\makeatother
\begin{document}
\labday{Monday}
First day in the lab.
\labday{Tuesday}
Second day in the lab.
\end{document}
有什么建议么?
答案1
因为\labday
使用了\addchap
(KOMA-Script
的无编号版本\chapter
),所以您必须修补此命令。我\par
在更改的定义开头添加了一个,以防(如您的示例所示)在文档主体\par
之前没有添加行或添加空行。\labday
\documentclass[oneside]{labbook}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\addchap}{\if@openright\cleardoublepage\else\clearpage\fi}{\par}{}{}
\makeatother
\begin{document}
\labday{Monday}
First day in the lab.
\labday{Tuesday}
Second day in the lab.
\end{document}
答案2
自 2015 年起,KOMA-Script 提供了\RedeclareSectionCommand
将分段命令的样式\chapter
从更改style=chapter
为 的命令style=section
:
\RedeclareSectionCommand[style=section,indent=0pt]{chapter}
请注意,stylesection
需要一个值,indent
但 stylechapter
不知道这个选项。
\documentclass[oneside]{labbook}
\RedeclareSectionCommand[style=section,indent=0pt]{chapter}
\begin{document}
\labday{Monday}
First day in the lab.
\labday{Tuesday}
Second day in the lab.
\end{document}
结果是