
我正在編寫一個由重複格式組成的文件:文字、圖形,然後是一個較大的段落。如何防止分頁之間文字和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}
我認為顯示輸出沒有意義;相反,您應該取消註釋診斷命令並檢查記錄文件中報告的處罰是否正確。