为了使文档中的所有内容保持整洁(特别是关于到处浮动的浮动元素),我希望每个子部分都以 \clearpage 结尾。我最初对子部分命令进行了以下重新定义:
\let\oldsubsection\subsection
\renewcommand{\subsection}{
\clearpage
\oldsubsection
}
但是,这会将分页符放在小节标题之前,这意味着节标题和第一个小节标题之间存在分隔符。
有什么方法可以强制在结尾该小节的?
答案1
\clearpage
仅当子部分计数器不为零时,您才可以发出。但首先检查\FloatBarrier
从placeins
包中获取是否是更好的选择。
答案2
我想您可能不会自动将其放在\clearpage
小节末尾,因为您不使用任何类似\endsubsection
命令的东西。但您可以尝试重新定义\section
命令,以标记节标题后的位置并避免在该节的第一个小节的开头中断,然后重新定义subsection
以取消标记。例如,
\let\oldsection\section
\let\oldsubsection\subsection
\def\section{\let\subsectionclearpage\empty\oldsection}
\def\subsection{\subsectionclearpage\let\subsectionclearpage\clearpage\oldsubsection}
您可能还想在定义\clearpage
之前添加或采用匹配和命令的方式。\let
\section
\sectionclearpage
\section
\chapter
另外,请注意,这种方式\subsection
以前\section
是行不通的。如果你想这样做,你必须添加
\let\subsectionclearpage\empty
或者
\let\subsectionclearpage\clearpage
进入序言。