Evite saltos de página entre párrafos con \medskip en el medio

Evite saltos de página entre párrafos con \medskip en el medio

Considere este ejemplo

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

\medskip
\textbf{Mini title}
\medskip

\nopagebreak
Some more text
\end{document}

¿Cómo puedo evitar un salto de página entre "Mini título" y "Algo de texto más"? ¿Estoy explorando \nopagebreakcon este fin pero fue en vano?

Respuesta1

Copié el \medbreakcomando de LaTeX e hice un archivo \mednobreak. Hace a \nopagebreaky a \medskip. Adjuntará la primera línea del siguiente párrafo al archivo \textbf{Mini title}. Comenta la línea marcada para ver el efecto.

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

Respuesta2

Evite el uso de comandos explícitos de cambio de fuente.

Si usa un comando de encabezado de sección, el marcado es más flexible y LaTeX automáticamente se encarga de no permitir un salto de página después del encabezado.

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

Respuesta3

Le sugiero que cargue el needspacepaquete y emita la directiva.

\Needspace*{3\baselineskip}

inmediatamente antes de la primera \medskipdirectiva.


Un MWE completo (ejemplo de trabajo mínimo):

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

Some text

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

Some more text
\end{document}

información relacionada