[Tex/LaTex] Beamer handout mode: explicitly printing “half-way” frames

beamer

I have some fairly complex slides where I'd like to have an intermediate slide on the handout. (In order that I can have separate \note pages for two parts of the slide. Here's an MWE showing what the problem is:

\documentclass[handout]{beamer}

\begin{document}
\begin{frame}<1>[label=foo]
foo\pause bar
\end{frame}
\end{document}

Handout mode is printing "foobar" since it is ignoring the overlay specifications. This is normally fine, but I'd like a way to explicitly say "Hey, handout mode, this time, I really do mean just print slide 1 of this frame! Replacing <1> with <1|handout:1> doesn't work. Any advice?

In the real test case, there's some againframe trickery to talk through half the slide, move onto a little tangent, then back for the second half of the first slide. I'd like to have a "halfway" slide on the handout so that it can be followed by my notes relating to what I should have said by that point (just before the tangent).


Edit: Note that this doesn't seem to depend on how the slides are incremented. That is, it isn't due to any weird behaviour of \pause. \onslide<2> and \onslide<+> both produce the same behaviour.

Best Answer

The following works:

\documentclass[handout]{beamer}

\begin{document}
\begin{frame}<handout:1>[label=foo]
  foo\onslide<all:2>bar
\end{frame}
\end{document}

The point is that you have two levels of overlay specifications:

  • Local overlay specs that influence the content of a frame, given by \pause, \only, overlay-aware commands and so on. These define the set of slides a frame consists of.

  • The global overlay spec you can give to the frame environment or command. This further filters the set of slides defined by the local ones.

However, in handout mode, beamer basically collapses all local overlay specifications to a single slide (unless explicitly told so by local handout: or all: alternatives, as in the code above). Hence, the filter on "global level" does not have any effect – it can only reduce the set of slides, not extend it.

A possible workaround is what I have sketched above: During development, use <all:...> overlay specs to have each and every slide also in the handout. When the lecture is almost complete, add the global ones to decide what actually should be part of the handout. I have been using this strategy for a while and it works quite well.