我正在编写一个由重复格式组成的文档:文本、图形,然后是一个较大的段落。如何避免分页之间文本和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}
我认为显示输出是没有意义的;相反,您应该取消注释诊断命令并检查记录文件中报告的惩罚是否正确。