[Tex/LaTex] adjust text’s size in beamer when bibliography is too long

beamerbibliographiesfontsize

Im a using beamer and my bibliogrpahy is too long to fit on one single frame.

My code is very simple :

\begin{frame}%[allowframebreaks=0.9]
\section*{Bibliographie}
\nocite{*}
\printbibliography
\end{frame}

I could use [allowframebreak=0.9] option, for example, to divide it in three frames, but that is not what I want : I would like the text to get smaller so that it fits on one frame. So my case is not this one nor this one.

Beamer's manual (speaks about bibtex, and not biblatex) gives me this great answer :

The environment must be placed inside a frame. If the bibliography does not fit on one frame, you should split it (create a new frame and a second thebibliography environment) or use the allowframebreaks option. Even better, you should reconsider whether it is a good idea to present so many references. (p.101)

Thank you, but I've reconsidered it, and I think it's a good idea. At least, I want to see if it's still readable when reduced before my decision to split it or reduce it.

I've tried something like {\tiny \printbibliography} but it doesn't work.

Can someone help ? Thank you.

Best Answer

To fit an arbitrary amount of text on a frame, you can use the shrink option. Without any value it will not change the linewidth before shrinking, with a value such as shrink=10 it will increase line widths corresponding to that of a 10% reduction before doing the shrinking.

Here is an example with one slide with text generated by the lipsum package, the other from a bibliography. Note \section does not work in a frame, use \frametitle instead.

All this is "evil" in the terminology of the beamer manual.

First sample

Second sample

\documentclass{beamer}

\usepackage{biblatex}
\usepackage{lipsum}
\addbibresource{biblatex-examples.bib}

\begin{document}

\begin{frame}[shrink=30]
  \lipsum[1-4]
\end{frame}

\begin{frame}[shrink=90]
  \frametitle{Bibliography}
  \nocite{*}
  \printbibliography
\end{frame}

\end{document}