3

Suppose I have a Beamer presentation with 20 slides, and I need to make a poster out of them in 5 minutes.

Is it possible to have Beamer output the slides into a 5x4 grid on an a0 sized pdf?

I'm not really sure how I'd go about doing this, but I have a hunch that it should be possible. Any thoughts?

  • 4
    Take a look at pgfpages (in the pgf manual). That should give you a starting point. – Loop Space Oct 17 '12 at 14:49
  • @lockstep answered. Defining the layout is a pain without a loop so I figured it worth answering. – Loop Space Nov 4 '12 at 19:06
2

This is eminently possible using pgfpages. It doesn't have a 20 on 1 layout built in (the biggest being 16 on 1) but it's not hard to define one (a bit tedious without a for loop).

\documentclass{beamer}
%\url{http://tex.stackexchange.com/q/78041/86}

\usepackage{pgffor}
\usepackage{pgfpages}
\usepackage{pgf}

\pgfpagesdeclarelayout{20 on 1}
{
  \edef\pgfpageoptionheight{\the\paperheight}
  \edef\pgfpageoptionwidth{\the\paperwidth}
  \edef\pgfpageoptionborder{0pt}
}
{
  \pgfpagesphysicalpageoptions
  {
    logical pages=20,
    physical height=\pgfpageoptionheight,
    physical width=\pgfpageoptionwidth
  }
  \def\pgfpgtemp{}
  \foreach \i in {1,...,4} {
    \foreach \j in {1,...,5} {
      \pgfmathtruncatemacro\n{(\i-1)*5 + \j}
      \pgfmathsetmacro\ri{1 - (\i - .5)/4}
      \pgfmathsetmacro\rj{(\j - .5)/5}
      \edef\temp{%
        \noexpand\pgfpageslogicalpageoptions{\n}
      {
        border code=\noexpand\pgfsetlinewidth{2pt}\noexpand\pgfstroke,
        border shrink=\noexpand\pgfpageoptionborder,
        resized width=.25\noexpand\pgfphysicalwidth,
        resized height=.2\noexpand\pgfphysicalheight,
        center=\noexpand\pgfpoint{\rj\noexpand\pgfphysicalwidth}{\ri\noexpand\pgfphysicalheight}
      }
      }
      \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter\pgfpgtemp\expandafter\expandafter\expandafter{\expandafter\pgfpgtemp\temp}
    }
  }
  \pgfpgtemp
}

\pgfpagesuselayout{20 on 1}[a0paper, border shrink=5mm,landscape]

\begin{document}

\foreach \k in {1,...,20} {

\begin{frame}{Frame \k}

This is frame \k.
It is exciting.
\end{frame}
}
\end{document}

pgfpages 20 on 1 layout

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.