防止图后几行分页

防止图后几行分页

我正在编写一个由重复格式组成的文档:文本、图形,然后是一个较大的段落。如何避免分页之间文本和figure环境,同时不删除自动分页的功能之内第二段文字的正文?

\nopagebreak在环境之后似乎没有任何效果figure。(我认为将其限制为minipage不会允许在第二段中分页。)

我可以接受页面末尾的空白,但我希望每个重复组不一定从新的一页开始。

答案1

也许 OP 正在寻找的只是一个版本,比如center禁止在其自身上方和下方分页的环境;这很容易实现。例如,以下 MWE 定义了一个名为的环境,centernopagebreaks该环境在本地重新定义适当的参数,然后调用该center环境。

笔记:在测试此示例时,我注意到该\captionof命令插入了一个合法的断点之间图形及其标题。我通过将所有内容包装在minipage环境中来弥补这一点,但这不是一个错误吗?

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{caption}
\usepackage{mwe}

\makeatletter
\newenvironment*{centernopagebreaks}{%
  \@beginparpenalty \@M
  \@endparpenalty   \@M
  \@itempenalty     \@M
  \center
}{\endcenter}
\makeatother

\begin{document}
\lipsum[2]
\begin{centernopagebreaks}
    \begin{minipage}[b]{\textwidth}
        \centering
        \includegraphics{image}
        \par\special{comment: Why no penalty below write and rule?}
        \captionof{figure}{An image}
        \label{fig;img}
    \end{minipage}
\end{centernopagebreaks}
\lipsum[1]

% % If you can read the logging info provided by (core) TeX,
% % uncomment the following lines to check the penalties.
% \showboxbreadth = 1000
% \showboxdepth = 5
% \showlists
\end{document}

我认为显示输出是没有意义的;相反,您应该取消注释诊断命令并检查记录文件中报告的惩罚是否正确。

相关内容