我正在使用这个memoir
课程。
我试图确保新章节与上一章出现在同一页面上,除非章节标题的部分内容分布在两页上。
这是我尝试过的:
\renewcommand{\clearforchapter}{}
这给了我这个:
但还有这个:
是否有一个简单的解决方案,以便新章节从新的一页开始,除非其中一部分会分成两页,在这种情况下会有分页符?
注意:这是我的自定义章节标题代码,尽管它可能完全不相关,并且不是我的问题的一部分但为了完整性,仍将其包括在内:
\chapterstyle{default}
\renewcommand*{\chapterheadstart}{\vspace*{\beforechapskip}
\mbox{}\\\mbox{}\rule[0pt]{\textwidth}{0.4pt}\par}
\setlength{\beforechapskip}{0pt}
\renewcommand*{\printchaptername}{}
\renewcommand*{\chapternamenum}{}
\renewcommand*{\chapnumfont}{\itshape\large}
\settoheight{\midchapskip}{\chapnumfont 1}
\renewcommand*{\printchapternum}{\centering \chapnumfont Chapter \thechapter}
\renewcommand*{\afterchapternum}{\par\nobreak\vskip 0.5\onelineskip}
\renewcommand*{\printchapternonum}{\centering \vphantom{\chapnumfont 1}\afterchapternum}
\renewcommand*{\chaptitlefont}{\scshape\Large}
\renewcommand*{\printchaptertitle}[1]{\centering \chaptitlefont #1
\\\mbox{}\rule[5pt]{\textwidth}{0.4pt}}
\setlength{\afterchapskip}{1\onelineskip}
答案1
您可以使用\needspace
宏(直接在中可用memoir
,对于其他类,还有needspace
包)。
\documentclass[b5paper]{memoir}
\usepackage{lipsum}
\renewcommand{\clearforchapter}{}
\pagestyle{plain}
\chapterstyle{default}
\renewcommand*{\chapterheadstart}{%
\par
\needspace{10\onelineskip}
\vspace{\beforechapskip}
\mbox{}\\\mbox{}\rule[0pt]{\textwidth}{0.4pt}\par}
\setlength{\beforechapskip}{0pt}
\renewcommand*{\printchaptername}{}
\renewcommand*{\chapternamenum}{}
\renewcommand*{\chapnumfont}{\itshape\large}
\settoheight{\midchapskip}{\chapnumfont 1}
\renewcommand*{\printchapternum}{\centering \chapnumfont Chapter \thechapter}
\renewcommand*{\afterchapternum}{\par\nobreak\vskip 0.5\onelineskip}
\renewcommand*{\printchapternonum}{\centering \vphantom{\chapnumfont 1}\afterchapternum}
\renewcommand*{\chaptitlefont}{\scshape\Large}
\renewcommand*{\printchaptertitle}[1]{\centering \chaptitlefont #1
\\\mbox{}\rule[5pt]{\textwidth}{0.4pt}}
\setlength{\afterchapskip}{1\onelineskip}
\begin{document}
\chapter{Justin narrates the manner of his conversion}
\lipsum[1]
\chapter{Justin describes his studies in philosophy}
\lipsum[2]
\chapter{Justin does some other things}
\lipsum[2]
\end{document}