# Force paragraph to stay on same page where it began

I am organizing several abstracts for a conference booklet; some of them are too long, thus inducing a page break.

After finishing the booklet layout I am going to edit the abstracts to make them shorter and ensure that each occupies only one page, but for now I would like to force each abstract to stay inside its own page even if this means that the text will "bleed" below the current page.

Is this attainable in LaTeX?

## 1 Answer

You can use \filbreak (The TeXbook, page 111).

The most interesting macro that plain TeX provides for page make-up is called \filbreak. It means, roughly, “Break the page here and fill the bottom with blank space, unless there is room for more copy that is itself followed by \filbreak.” Thus if you put \filbreak at the end of every paragraph, and if your paragraphs aren’t too long, every page break will occur between paragraphs, and TeX will fit as many paragraphs as possible on each page. The precise meaning of \filbreak is

\vfil\penalty-200\vfilneg


according to Appendix B; and this simple combination of TeX’s primitives produces the desired result: If a break is taken at the \penalty-200, the preceding \vfil will fill the bottom of the page with blank space, and the \vfilneg will be discarded after the break; but if no break is taken at the penalty, the \vfil and \vfilneg will cancel each other and have no effect.

Here's an implementation.

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