防止圖後幾行分頁

防止圖後幾行分頁

我正在編寫一個由重複格式組成的文件:文字、圖形,然後是一個較大的段落。如何防止分頁之間文字和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}

我認為顯示輸出沒有意義;相反,您應該取消註釋診斷命令並檢查記錄文件中報告的處罰是否正確。

相關內容