避免在段落之間使用 \medskip 進行分頁

避免在段落之間使用 \medskip 進行分頁

考慮這個例子

\documentclass{report}
\begin{document}
Some text

\medskip
\textbf{Mini title}
\medskip

\nopagebreak
Some more text
\end{document}

如何避免「迷你標題」和「更多文字」之間的分頁符號。我正在\nopagebreak為此探索但無濟於事?

答案1

\medbreak從 LaTeX 複製了命令並製作了一個\mednobreak.它執行 a\nopagebreak和 a \medskip。它將把以下段落的第一行附加到\textbf{Mini title}.註解標記的行以查看效果。

\documentclass{report}
\usepackage{lipsum}
\def\mednobreak{\par\ifdim\lastskip<\medskipamount
  \removelastskip\nopagebreak\medskip\fi}
\begin{document}
\lipsum[1-4]
\lipsum[2]

another line % comment to see difference

\medskip
\textbf{Mini title}
\mednobreak
\lipsum[1]
\end{document}

答案2

避免使用顯式的字體更改命令。

如果您使用節標題命令,標記會更加靈活,並且 LaTeX 會自動處理不允許在標題後出現分頁符

\documentclass{report}
\begin{document}
Some text

\vspace{40\baselineskip}% heading and text stay on this page
%\vspace{41\baselineskip}% heading and text go to next page

Some text

\subsection*{Mini title}

Some more text
\end{document}

答案3

我建議你加載needspace包並發出指令

\Needspace*{3\baselineskip}

緊接在第一個\medskip指令之前。


完整的 MWE(最小工作範例):

\documentclass{report}
\usepackage{needspace}
\begin{document}
\dots 

Some text

\Needspace*{3\baselineskip}
\medskip
\textbf{Mini title}
\medskip

Some more text
\end{document}

相關內容