Vermeiden Sie Seitenumbrüche zwischen Absätzen mit \medskip dazwischen

Vermeiden Sie Seitenumbrüche zwischen Absätzen mit \medskip dazwischen

Betrachten Sie dieses Beispiel

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

\medskip
\textbf{Mini title}
\medskip

\nopagebreak
Some more text
\end{document}

Wie kann ich einen Seitenumbruch zwischen „Minititel“ und „Noch etwas Text“ vermeiden? Ich versuche \nopagebreakdies, aber ohne Erfolg.

Antwort1

Ich habe den \medbreakBefehl aus LaTeX kopiert und ein erstellt \mednobreak. Es führt ein \nopagebreakund ein aus \medskip. Es hängt die erste Zeile des folgenden Absatzes an das an \textbf{Mini title}. Kommentieren Sie die markierte Zeile, um den Effekt zu sehen.

\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}

Antwort2

Vermeiden Sie die Verwendung expliziter Befehle zum Ändern der Schriftart.

Wenn Sie einen Abschnittsüberschriftsbefehl verwenden, ist die Auszeichnung flexibler und LaTeX sorgt automatisch dafür, dass nach der Überschrift kein Seitenumbruch zulässig ist

\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}

Antwort3

Ich schlage vor, Sie laden das needspacePaket und geben die Direktive aus

\Needspace*{3\baselineskip}

unmittelbar vor der ersten \medskipRichtlinie.


Ein vollständiges MWE (Minimum Working Example):

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

Some text

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

Some more text
\end{document}

verwandte Informationen