0

I have a bibliography that would fit perfectly on a number of pages except that there is one single entry too much. So LaTeX starts a new page just for that single entry.

In a normal document we can use \enlargethispage{\baselineskip} to tell LaTeX to "try a bit harder" to squeeze everything on one page. This works well and I have used it a number of times.

Can something similar be done for the bibliography? I just have the commands

\bibliography{someReferences}
\printbibliography

Putting the command right after that doesn't seem to work... Is something like this possible?

I don't want to change the general distance settings/font size of the bibliography. However I can see on some pages that there is more space left than on other pages so in theory the entries could be squeezed a bit more.

EDIT: it would be sufficient if the \enlargethispage{\baselineskip} is added just at the end of the bbl file, so right before the \end{thebibliography}. Is this possible without using a post-build script?

While the method by barbara beeton works, I would prefer a solution that works automatically...

3
  • Although it would get wiped out the next time you process the file, you could add the \enlargethispage to your .bbl file in the most appropriate place, usually the page with the widest gaps between bib entries. And don't rerun bibtex. Jun 15 at 19:02
  • I've been thinking about this problem a bit and I'm wondering whether a preamble-based setting for adjusting page sizes by page number. e.g., for each page you want to adjust you would put in the preamble, \EnlargePage{47}{12pt} or \EnlargePage{23}{-12pt}. It's a non-trivial change as I dig through source2e, but I think it is manageable. It would definitely require writing a new package.
    – Don Hosek
    Jul 19 at 20:53
  • (since the problem you encounter also comes up with any automatically generated extended text such as tables of contents, lists of figures, indices, etc. etc.)
    – Don Hosek
    Jul 19 at 20:53
4
+50

You can add to the bibenvironment definition:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\textheight4cm

\defbibenvironment{bibliography}
{\list{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\enlargethispage{3cm}\endlist} %or some other value
{\item}
\begin{document}
\cite{doody,herrmann}

\printbibliography
\end{document}
3
  • This is quite strange. If I use more citations, for example \cite{testArticle1}, \cite{testArticle2}, \cite{testArticle3}, \cite{testArticle4}, \cite{testArticle5} instead of \cite{doody,herrmann}, then only the first two are on the same page, somehow a new page is started for the references 3-5. Also I can't find the \enlargethispage command anywhere in the bbl file...
    – SampleTime
    Jul 23 at 18:27
  • well I did set \textheight=4cm for the test. And no the command doesn't go in the bbl. Jul 23 at 18:39
  • Ok got it, I didn't notice this was for testing only.
    – SampleTime
    Jul 23 at 18:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.