предотвратить разрыв страницы через пару строк после рисунка

предотвратить разрыв страницы через пару строк после рисунка

Я пишу документ, который состоит из повторяющегося формата: текст, рисунок, затем более крупный абзац. Как мне предотвратить разрыв страницымеждукак текста, так и 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}

Я не думаю, что имеет смысл показывать выходные данные; вместо этого вам следует раскомментировать диагностические команды и проверить правильность штрафов, указанных в файле расшифровки.

Связанный контент