The problem appears to be related to the \title
command. When I compile a document using \title
then it hangs, and when I compile it without then it works just fine. There's a bit of a tangled web of definitions and redefinitions going on that is a bit hard to track. One method that worked for me was to copy out the (re)definition of \title
from tufte-common.def
and stick it in after the call to beamerarticle
. Thus my main file looks like this:
\documentclass{tufte-handout}
\usepackage{beamerarticle}
\makeatletter
\renewcommand{\title}[2][]{%
\gdef\@title{#2}%
\begingroup%
% TODO store contents of \thanks command
\renewcommand{\thanks}[1]{}% swallow \thanks contents
\protected@xdef\thanklesstitle{#2}%
\endgroup%
\ifthenelse{\isempty{#1}}%
{\renewcommand{\plaintitle}{\thanklesstitle}}% use thankless title
{\renewcommand{\plaintitle}{#1}}% use provided plain-text title
\@ifpackageloaded{hyperref}{\hypersetup{pdftitle={\plaintitle}}}{}% set the PDF metadata title
}
\makeatother
\input{tufteMain}
Of course, that means that the title doesn't get "beamerified", but as this is only for the article version, that doesn't matter.
I tried storing the old definition of \title
before calling beamerarticle
and resetting it afterwards, but that didn't work:
\documentclass{tufte-handout}
\let\tufteTitle=\title
\usepackage{beamerarticle}
\let\title=\tufteTitle
\input{tufteMain}
still hung.
In general, TeX hangs like that when it enters an infinite loop, so my guess is that somehow the definition and redefinition of \title
mean that it ends up calling itself again and again. Also, when TeX enters an infinite loop then the logfile contains the last thing that it did okay, so removing stuff that has appeared in the logfile isn't an optimal strategy (you may happen on whatever it was that created the loop, but there's no guarantee).
Best Answer
In
handout
mode, beamer tries to combine all steps of an animation into one sline. If you explicitly give<handout:xxx>
overlay specs, this does add frames in handout mode. To constrain this, just pass an additional overlay spec (<handout:2>
) to theframe
environment:If you have complex frames with many overlay specifications, it can become a bit tedious to specify them twice – especially, if you don't know in the beginning, which parts of the animation should become distinct slides in handout mode. In such cases, I usually specify all overlays as
<all:xxx>
, so that each step of an animation would also be there inhandout
mode and just constrain them by the frame's overlay specification:Complete MWE: