[Tex/LaTex] Is it possible to define transduration for frames created with allowframebreaks

beamerbibliographies

is there any way to define transduration for the whole bibliography? The following doesn't work, just the first of the created frames has the expected behavior.

\begin{frame}[allowframebreaks]{Bibliography}
  \transduration{2}
  \bibliographystyle{plainnat}
  \bibliography{literature}
\end{frame}

Best Answer

As Mico pointed out, \transduration is designed to work with overlays of a single frame, not between several frames. It is reset at the beginning of each new frame, so that's why it has no effect when used on frames split with allowframebreaks.

To overcome this, \transduration has to be repeated on each frame. This can be done by adding it to the background canvas template:

{
\addtobeamertemplate{background canvas}{\transduration{2}}{}
\begin{frame}[allowframebreaks]{Bibliography}
  \bibliographystyle{plainnat}
  \bibliography{literature}
\end{frame}
}

The curly braces are for keeping the redefinition local, otherwise every frame following the bibliography would also be shown only for two seconds.

Example presentation

\documentclass{beamer}
\usepackage{lipsum}
\begin{document}
\begin{frame}
  My \uncover<2>{Presentation}
\end{frame}
{
\addtobeamertemplate{background canvas}{\transduration{2}}{}
\begin{frame}[allowframebreaks]{Bibliography}
  \lipsum
\end{frame}
}
\begin{frame}[allowframebreaks]
  \lipsum
\end{frame}
\end{document}

(The lipsum package is used to generate dummy text for making a self-contained example. You can remove it and replace \lipsum with your own bibliography, of course.)

Related Question