我怎样才能告诉 LaTeX 仅在新的章节上进行分页?

我怎样才能告诉 LaTeX 仅在新的章节上进行分页?

我正在处理一份文档,其中各个部分位于同一页面非常重要。

我怎样才能告诉 LaTeX 仅在我写新内容时进行分页(如果需要),\section而无需手动添加\newpages

答案1

\section可以重新定义宏来添加\newpage\clearpage。后者还强制放置待处理的浮动对象。

% Save the old meaning of \section in \OrgSection
\newcommand*{\OrgSection}{}%
\let\OrgSection\section
% Redefine \section to add \clearpage at the beginning
\renewcommand*{\section}{%
  \clearpage
  \OrgSection
}

答案2

minipage通过某些安排,只要该部分不超过一页,就可以使用环境来完成。在其他情况下,文本填充底部边距而不分页,如 MWE 的最后一节(见下文)。

不过,我认为一个一般的经验法则是建议 LaTeX 在哪里分页,通过\pagebreak[3]每个部分之前的 a(或少于 3 个),以及在哪里不分页,在 \clubpenalty和中设置高值\windowpenalty,但让 LaTeX 找到更好的分页位置。然后,如果真的是最终如果结果在某些时候不令人满意,您总是可以在真正需要的地方(且仅在真正需要的地方)使用蛮力(a \pagebreak[4],或a\newpage\clearpage如果有浮点数,如 Heiko Oberdiek 所述)。

\documentclass{article}
\usepackage{lipsum} % dummy text


\makeatletter
\renewcommand{\section}{
~\par\@startsection
{section}%                   % the name
{1}%                         % the level
{0mm}%                       % the indent
{2\baselineskip}%            % the before skip
{1\baselineskip}%          % the after skip
{\Large\bfseries}} % the style
\makeatother

\begin{document}

\section{Lore ipsum}
\lipsum[1]

\noindent\begin{minipage}{\textwidth}
\setlength{\parindent}{2em}
\section{Lore ipsum}
\lipsum[2-5]
\end{minipage}

\noindent\begin{minipage}{\textwidth}
\setlength{\parindent}{2em}
\section{Lore ipsum}
\lipsum[6]
\end{minipage}

\noindent\begin{minipage}{\textwidth}
\setlength{\parindent}{2em}
\section{Lore ipsum}
\lipsum[7]
\end{minipage}

% Ooops .... too long for a **mini** page
\noindent\begin{minipage}{\textwidth}
\setlength{\parindent}{2em}
\section{Lore ipsum}
\lipsum[8-15]
\end{minipage}

\end{document}

相关内容