[Tex/LaTex] Keep bibliography entry on one page

natbibpage-breaking

I'm using BibTeX and natbib. I have a number of entries in the reference section that start at the bottom of a page and continue on the next e.g. at the bottom of a page I have

Some Author Name, Title of the Article Begins

[NEW PAGE]

Title continues from previous page, Journal Name, Year, Pages

I need the whole entry to appear on the same page. Is there anyway to make this happen?

Best Answer

After loading natbib, use the etoolbox package and its \apptocmd macro to add \interlinepenalty 10000\relax (which forbids page breaks inside paragraphs) to the definition of \thebibliography.

EDIT: Or even easier, redefine natbibs \bibfont macro.

\documentclass{article}

\usepackage{natbib}

% Variant A
% \usepackage{etoolbox}
% \apptocmd{\thebibliography}{\interlinepenalty 10000\relax}{}{}

% Variant B
\renewcommand*{\bibfont}{\interlinepenalty 10000\relax}

\usepackage{lipsum}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {\lipsum*[1]},
}
\end{filecontents}

\begin{document}

\cite{A01}

\vspace{30\baselineskip}% Try 29\baselineskip instead!

\bibliographystyle{plainnat}
\bibliography{\jobname}

\end{document}
Related Question