
Considere este exemplo
\documentclass{report}
\begin{document}
Some text
\medskip
\textbf{Mini title}
\medskip
\nopagebreak
Some more text
\end{document}
Como posso evitar uma quebra de página entre “Mini título” e “Mais algum texto”. Estou explorando \nopagebreak
para esse fim, mas sem sucesso?
Responder1
Copiei o \medbreak
comando do LaTeX e fiz um arquivo \mednobreak
. Faz um \nopagebreak
e um \medskip
. Ele anexará a primeira linha do parágrafo seguinte ao arquivo \textbf{Mini title}
. Comente a linha marcada para ver o efeito.
\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}
Responder2
Evite usar comandos explícitos de alteração de fonte.
se você usar um comando de título de seção a marcação será mais flexível e o LaTeX automaticamente cuidará de não permitir uma quebra de página após o título
\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}
Responder3
Eu sugiro que você carregue o needspace
pacote e emita a diretiva
\Needspace*{3\baselineskip}
imediatamente antes da primeira \medskip
directiva.
Um MWE completo (exemplo mínimo de trabalho):
\documentclass{report}
\usepackage{needspace}
\begin{document}
\dots
Some text
\Needspace*{3\baselineskip}
\medskip
\textbf{Mini title}
\medskip
Some more text
\end{document}