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 \nopagebreak
con este fin pero fue en vano?
Respuesta1
Copié el \medbreak
comando de LaTeX e hice un archivo \mednobreak
. Hace a \nopagebreak
y 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 needspace
paquete y emita la directiva.
\Needspace*{3\baselineskip}
inmediatamente antes de la primera \medskip
directiva.
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}