使用scrbook
,我希望部分在新的奇数页上打开,就像章节一样。我该如何实现?
答案1
只需添加\cleardoublepage
到 的动作即可\section
。
没有包裹:
\long\expandafter\def\expandafter\section\expandafter{%
\expandafter\cleardoublepage\section}
简短:
\usepackage{etoolbox}
\preto\section{\cleardoublepage}
注意:该\section
命令(在标准类和 KoMa 脚本类中)有一个定义没有参数。这些参数被它调用的其他宏吸收。
如果您想尊重openany
或openright
选项,那么\cleardoublepage
就不是正确的命令。因此
\usepackage{etoolbox}
\makeatletter
\preto\section{\if@openright\cleardoublepage\else\clearpage\fi}
\makeatother
应该使用。
此版本的“无包”版本可能是
\makeatletter
\toks0={\if@openright\cleardoublepage\else\clearpage\fi}
\toks2=\expandafter{\section}
\long\edef\section{\the\toks0 \the\toks2 }
\makeatother
答案2
您可以重新定义\section
添加\cleardoublepage
或\clearpage
(取决于openright
或是否openany
处于活动状态)以使其表现为\chapter
:
\documentclass{scrbook}
\usepackage{lipsum}
\makeatletter
\renewcommand\section{%
\if@openright\cleardoublepage\else\clearpage\fi
\@startsection{section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\setlength{\parfillskip}{\z@ \@plus 1fil}%
\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}}
\makeatother
\begin{document}
\section{Test Section One}
\lipsum[1]
\section{Test Section Two}
\lipsum[1]
\end{document}
答案3
\documentclass{scrbook}
\let\mySection\section
\renewcommand\section{\cleardoublepage\mySection}
\begin{document}
\chapter{foo}
text
\section{bar}
text
\end{document}