Forçar o parágrafo a permanecer na mesma página onde começou

Forçar o parágrafo a permanecer na mesma página onde começou

Estou organizando vários resumos para um livreto de conferência; alguns deles são muito longos, induzindo uma quebra de página.

Depois de terminar a diagramação do livreto vou editar os resumos para torná-los mais curtos e garantir que cada um ocupe apenas uma página, mas por enquanto gostaria deforçacada resumo permaneça dentro de sua própria página, mesmo que isso signifique que o texto irá "sangrar" abaixo da página atual.

Isso é possível em LaTeX?

Responder1

Você pode usar \filbreak(The TeXbook, página 111).

A macro mais interessante que o TeX simples fornece para a criação de páginas é chamada \filbreak. Significa, aproximadamente, “Quebre a página aqui e preencha a parte inferior com espaço em branco, a menos que haja espaço para mais cópias seguidas por \filbreak.” Assim, se você colocar \filbreakno final de cada parágrafo, e se seus parágrafos não forem muito longos, cada quebra de página ocorrerá entre os parágrafos, e o TeX caberá tantos parágrafos quanto possível em cada página. O significado preciso de \filbreaké

\vfil\penalty-200\vfilneg

de acordo com o Apêndice B; e esta simples combinação de primitivas do TeX produz o resultado desejado: Se uma pausa for feita no \penalty-200, o anterior \vfilpreencherá a parte inferior da página com espaço em branco, e o \vfilnegserá descartado após o intervalo; mas se nenhuma pausa for feita na penalidade, os \vfile \vfilnegse cancelarão e não terão efeito.

Aqui está uma implementação.

\documentclass{article}
\usepackage{lipsum} % for mock text

\newenvironment{abs}[2]
 {% #1 = title, #2 = author
  \par\vspace{\bigskipamount}\filbreak
  {\centering\textbf{#1}\par\vspace{1ex}\textit{#2}\par\vspace{1ex}}%
 }
 {\par}

\begin{document}

\begin{abs}{A title}{John Doe}
\lipsum*[1][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[2][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[1][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[2][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3-5]
\end{abs}

\end{document}

insira a descrição da imagem aqui

informação relacionada