6

I would like to generate a PDF document with 6 frames on the same page. What I mean is that I have a Beamer presentation with a Frame on every slide, and I want to get something like this : http://alumni.media.mit.edu/~maov/classes/vision09/lect/09_Image_Filtering_Edge_Detection_09.pdf

is it possible ? any idea from where to start ?

2

3 Answers 3

8

You can first define a "6 on 1" pgf page layout, then activate it in, say, the handout mode. I use the code below -- I've probably modified it from somewhere but I can't remember. Perhaps you can fine tune it further for your own needs:

\documentclass[handout]{beamer}
\usetheme{Dresden}
\usepackage{pgfpages}


\pgfpagesdeclarelayout{6 on 1}
{
  \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default
  \edef\pgfpageoptionwidth{\the\paperheight}
  \def\pgfpageoptionborder{0pt}
  \def\pgfpageoptionfirstshipout{1}
}
{
  \pgfpagesphysicalpageoptions
  {%
    logical pages=6,%
    physical height=\pgfpageoptionheight,%
    physical width=\pgfpageoptionwidth,%
    current logical shipout=\pgfpageoptionfirstshipout%
  }
  \ifdim\paperheight>\paperwidth\relax
    % put side-by-side
    \pgfpageslogicalpageoptions{1}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.1667\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{3}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.5\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{5}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.8333\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{2}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.1667\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{4}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.5\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{6}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.8333\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
  \else
    % stack on top of one another
    \pgfpageslogicalpageoptions{1}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.25\pgfphysicalwidth}{.8333\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{3}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{5}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.25\pgfphysicalwidth}{.1667\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{2}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.75\pgfphysicalwidth}{.8333\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{4}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{6}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.75\pgfphysicalwidth}{.1667\pgfphysicalheight}%
    }%
  \fi
}



\mode<handout>{
    \pgfpagesuselayout{6 on 1}[a4paper, border shrink=8mm]
    \pgfpageslogicalpageoptions{1}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{2}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{3}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{4}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{5}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{6}{border code=\pgfusepath{stroke}}
}

\begin{document}

\begin{frame}{First}
lala
\end{frame}

\begin{frame}{Second}
lala
\end{frame}

\begin{frame}{Third}
lala
\end{frame}

\begin{frame}{Fourth}
lala
\end{frame}

\begin{frame}{Fifth}
lala
\end{frame}

\begin{frame}{Sixth}
lala
\end{frame}


\end{document}
5

If you do not mind using a second file to create the document, you can use something like the following. This assumes that mypresentation-h.pdf is your beamer presentation created in handout mode.

\documentclass[a4paper]{article}
\usepackage{pdfpages}
        \includepdfset{pages=-,nup=2x3,frame,noautoscale=false,delta=5mm 5mm,pagecommand={\thispagestyle{plain}}}% adjust the pagestyle etc. as desired

\geometry{vscale=.75,hscale=.925}% if you are not using A4, you might need to adjust this to get things looking right
\usepackage{parskip}

\begin{document}

\includepdf[scale=.9]{mypresentation-h.pdf}% beamer presentation created in handout mode (to flatten slides). Also consider using a black and white theme if printing or copying greyscale

\end{document}
1
  • great solution, I adapted it to 2x4 layout \includepdfset{pages=-,nup=2x4,frame,noautoscale=false,delta=20mm 5mm,pagecommand={\thispagestyle{plain}}}
    – doctorate
    Commented Jun 4, 2021 at 16:26
4

A 6 on 1 layout is now included in version 3.1 or later of pgf (available from https://sourceforge.net/p/pgf/git/ci/master/tree/)

With this the nice answer of LianTze Lim can be simplified to:

\documentclass[handout]{beamer}
\usetheme{Dresden}
\usepackage{pgfpages}

\mode<handout>{
    \pgfpagesuselayout{6 on 1}[a4paper, border shrink=8mm]
}

\begin{document}

\begin{frame}{First}
lala
\end{frame}

\begin{frame}{Second}
lala
\end{frame}

\begin{frame}{Third}
lala
\end{frame}

\begin{frame}{Fourth}
lala
\end{frame}

\begin{frame}{Fifth}
lala
\end{frame}

\begin{frame}{Sixth}
lala
\end{frame}

\end{document}
1
  • LianTze Lim changed their name to @imnothere .
    – ahorn
    Commented Oct 22, 2020 at 14:42

You must log in to answer this question.