6

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}
Thorsten
  • 12,872
  • The command \transduration accepts overlay specs such as \transduration<2>{1}. Can you try with different overlay options such as <2-4> or <2->? You might also want to move its position down as the last item in the frame. – percusse Apr 09 '12 at 00:41
  • Thanks for your answer. But unfortunately this doesn't work either. I tried both to put it at the end of the frame or to put some overlay options. But in my opinion overlay options aren't a good idea here, because [allowframebreaks] says: Overlays are not supported. – Bertram Nudelbach Apr 09 '12 at 00:50
  • Hmm, that makes sense I've overlooked it apparently. – percusse Apr 09 '12 at 01:00

2 Answers2

4

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.)

diabonas
  • 25,784
2

I believe that the short answer to your question is, sadly, "No".

A slightly longer version of the same answer: \transduration can be applied to overlays of a frame; if no overlay is specified, the \transduration macro applies to the entire frame. Note that there's no provision for making the macro apply to consecutive frames. Now if you use the allowframebreaks option to break up some longish material that won't fit into a single frame (such as a bibliography) into several separate frames, beamer is creating separate frames and not separate overlays of the same frame. The beamer package's user guide notes this fact explicitly on p. 59: "You can use the option allowframebreaks to cause the [frame environment's material] to be split among several slides, though you cannot use overlays then." And since you cannot use overlays, the \transduration command has no chance of achieving what you'd like it to do.

Mico
  • 506,678