7

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 \begin{equation} ... \end{equation} 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?

1 Answers1

13

Synopsis:

%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}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{xsavebox} \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}% \xsavebox{scrollbox}{\usebox{#2}}% make re-usable PDF XObject \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]{\thescrollbox}% \end{minipage}% }% \end{animateinline}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

\lipsum[1]
\begin{equation}
  E=mc^2
\end{equation}
\centerline{* * *}\strut

\end{minipage} \end{lrbox}

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

AlexG
  • 54,894