# Self-scrolling formulas and text in Beamer?

For a presentation with Beamer, I would like to have a slide where a long list of formulas (maybe mixed with text) scrolls automatically within a certain part of the slide. This should look like e.g. closing credits in movies.

I have tried the idea from here based on animateinline from the animate package, but whenever I use environments like $$...$$ or commands like \textcolor{red}{...} I get an error:

TeX capacity exceeded, sorry [main memory size=3000000]. \end{frame}


Ideally, the formulas/the text should be given within the document itself, but if a solution with an external PDF works fine, I'll take it!

Any ideas how that might work?

Synposis:

%put a longer paragraph of text in a box
\newsavebox\lipsumbox
\begin{lrbox}{\lipsumbox}%
\begin{minipage}{\textwidth}%
\strut
\lipsum
\strut
\end{minipage}
\end{lrbox}

%scroll the box content within a viewport of limited height
\smoothscroll[autoplay]{\lipsumbox}{0.93\textheight}{400}{25}


Usage:

\smoothscroll[autoplay]
{<box number>}       %filled box
{<viewport height>}
{<steps>}            %increase to enhance smoothness
{<steps per sec>}    %adjust scrolling speed (not more than 25)


Complete example:

\documentclass[a5paper]{scrartcl}
\usepackage{lipsum}
\usepackage{animate}

\makeatletter
\newcommand\smoothscroll[5][]{%
% [#1] autoplay
% #2 <boxnum>
% #3 <viewport height>
% #4 <steps>
% #5 <steps per sec>
\edef\mywd{\the\wd#2}%
\edef\myht{\the\ht#2}%
\edef\mytht{\the\dimexpr\ht#2+\dp#2\relax}%
\@anim@reset%
\@anim@xform{}{}{#2}% distill box into re-usable PDF XObject
\edef\myxform{\@anim@lastxform}%
\edef\portht{\the\dimexpr#3\relax}%
\begin{animateinline}[#1,width=\mywd,height=\portht,loop]{#5}
\multiframe{#4}{dRaiseLen=-\myht+\dimexpr(\mytht+\portht)/#4\relax}{%
\begin{minipage}[b][#3][b]{\mywd}%
\raisebox{\dRaiseLen}[0pt][0pt]{\@anim@refxform\myxform}%
\end{minipage}%
}%
\end{animateinline}%
}
\makeatother

\begin{document}\huge
\newsavebox\lipsumbox
\begin{lrbox}{\lipsumbox}%
\begin{minipage}{\textwidth}
\strut Lipsum:\\

\lipsum[1]
$$E=mc^2$$
\centerline{* * *}\strut
\end{minipage}
\end{lrbox}

\noindent Read this if you can:\\[1ex]
\smoothscroll[autoplay]{\lipsumbox}{0.93\textheight}{400}{25}
\end{document}

• That's exactly what I was looking for. Thanks for figuring this out for me! Great job. – Robert Speck Nov 7 '14 at 19:53