
Я пишу документ, который состоит из повторяющегося формата: текст, рисунок, затем более крупный абзац. Как мне предотвратить разрыв страницымеждукак текста, так и figure
окружения, не исключая при этом возможность автоматического разрыва страницыв пределахосновная часть второго текста?
\nopagebreak
похоже, не оказывает никакого эффекта после figure
окружения. (И я предполагаю, что ограничение его до a 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}
Я не думаю, что имеет смысл показывать выходные данные; вместо этого вам следует раскомментировать диагностические команды и проверить правильность штрафов, указанных в файле расшифровки.