35

I want to print handouts of a Beamer presentation. I am using psnup to a create a copy with multiple slides per pages. I notice that there is a lot of empty space on the top of each slide and the actual printed material takes a small proportion of the space allocated to each slide. Is there a way I can fix this?

4 Answers 4

22

I use the following preamble, making use of the package handoutWithNotes:

% \documentclass{beamer}
% \usepackage{beamerthemeclassic}
% \documentclass[handout]{beamer}
% \mode<presentation>
% {
%    \usetheme{classic}
% }
%  Leaving the lines above commented and uncommenting the following
%  produces slides four to a page, with or without space for notes;
%  the selection is made with the command
%
%      \pgfpagesuselayout{...}
%
%  a few lines below.
\documentclass[handout]{beamer}
\usepackage{handoutWithNotes}
%
%  Load other packages you may need here
% 
% \pgfpagesuselayout{4 on 1}[a4paper,landscape,border shrink=5mm
\pgfpagesuselayout{4 on 1 with notes}[a4paper,border shrink=5mm]
%
% .....

It produces rather nicely formatted output four slides to a page, either in landscape format or in portrait format, with space for notes --something my students like.

Look to the blog of Guido Diepen for more info and an example.

5
  • 8
    It's worth noting that handoutWithNotes.sty is not on CTAN, hence not included in MikTeX or TeX Live, which make its use less easy, especially when it comes do sharing documents. I would rather use it as an inspiration, copying the definition of the needed layout in my preamble (and/or gently pressure the author of that he puts this resource on CTAN; it could even be included in beamer if the maintainers agrees).
    – mpg
    Nov 1, 2010 at 12:16
  • @mpg: Thank you for pointing this. It is true that having the package pre-installed in a standard distribution would make its use easier.
    – F. Tusell
    Nov 2, 2010 at 8:36
  • @F.Tusell: Awesome. I need to ask you one question. Suppose if I've 10 slides in all and after using \pgfpagesuselayout{4 on 1 with notes}[a4paper,border shrink=5mm] I get Notes even for slides 11 and 12. I wonder how to skip Notes for empty slides. Thanks
    – MYaseen208
    Oct 14, 2011 at 20:00
  • @MYaseen208: This I don't know. I suppose you could tweak the package. You might ask Guido Diepen.
    – F. Tusell
    Oct 16, 2011 at 7:48
  • It also has a slight issue with respect to 16:9 aspect ratio; clipping the edge off the slide itself.
    – The V
    Mar 23, 2018 at 12:47
24

I second the use of pgfpages instead of psnup. To make the slides more clearly delimited, I use a variation of the 4 on 1 style that puts a border around each frame.

Here's a minimal working example:

\documentclass[handout]{beamer}

\mode<handout>
{
  \usepackage{pgf}
  \usepackage{pgfpages}

\pgfpagesdeclarelayout{4 on 1 boxed}
{
  \edef\pgfpageoptionheight{\the\paperheight} 
  \edef\pgfpageoptionwidth{\the\paperwidth}
  \edef\pgfpageoptionborder{0pt}
}
{
  \pgfpagesphysicalpageoptions
  {%
    logical pages=4,%
    physical height=\pgfpageoptionheight,%
    physical width=\pgfpageoptionwidth%
  }
  \pgfpageslogicalpageoptions{1}
  {%
    border code=\pgfsetlinewidth{2pt}\pgfstroke,%
    border shrink=\pgfpageoptionborder,%
    resized width=.5\pgfphysicalwidth,%
    resized height=.5\pgfphysicalheight,%
    center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}%
  }%
  \pgfpageslogicalpageoptions{2}
  {%
    border code=\pgfsetlinewidth{2pt}\pgfstroke,%
    border shrink=\pgfpageoptionborder,%
    resized width=.5\pgfphysicalwidth,%
    resized height=.5\pgfphysicalheight,%
    center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}%
  }%
  \pgfpageslogicalpageoptions{3}
  {%
    border code=\pgfsetlinewidth{2pt}\pgfstroke,%
    border shrink=\pgfpageoptionborder,%
    resized width=.5\pgfphysicalwidth,%
    resized height=.5\pgfphysicalheight,%
    center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}%
  }%
  \pgfpageslogicalpageoptions{4}
  {%
    border code=\pgfsetlinewidth{2pt}\pgfstroke,%
    border shrink=\pgfpageoptionborder,%
    resized width=.5\pgfphysicalwidth,%
    resized height=.5\pgfphysicalheight,%
    center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}%
  }%
}


  \pgfpagesuselayout{4 on 1 boxed}[a4paper, border shrink=5mm, landscape]
  \nofiles
}

\begin{document}
\begin{frame}
Frame One
\end{frame}
\begin{frame}
Frame Two
\end{frame}
\begin{frame}
Frame Three
\end{frame}
\begin{frame}
Frame Four
\end{frame}
\end{document}

which produces:

alt text

(In my actual documents, I have that page layout saved in a style file which gets loaded between loading pgfpages and the \pgfpagesuselayout command.)

4
  • How do I include the "4 on 1 boxed" code in my main document? Nov 10, 2010 at 15:04
  • @csgillespie: I've edited my answer to make it easier to cut-and-paste into another document (I agree that my original answer wasn't clear on what should go where). Does that help? Nov 10, 2010 at 20:07
  • Yes that does help. It was the style file bit I was after. Many thanks. Nov 10, 2010 at 20:45
  • Info for newbies like me: adding/removing the [handout] option one first line enable/disable the handout mode. Also this code drops all intermediate slides generated by the \pause command, which is what you want most of the time I guess. Sep 20, 2017 at 21:43
7

I found the solution in the user guide, section 4.6.2. One has to use the pgfpages package.

1
  • Best Answer, best output.
    – Thanos
    Apr 8, 2017 at 20:47
3

I'm using beamer to write my lecture notes. I want to be provide handouts for my students which box the slide AND have lines for their own notes - a combination of Andrew's code above and Guido's handoutWithNotes.sty.

Here's the code that does the work:

\mode<handout>
{
\usepackage{pgf}
\usepackage{pgfpages}

\pgfpagesdeclarelayout{2 on 1 boxed with notes}
{
\edef\pgfpageoptionheight{\the\paperheight} 
\edef\pgfpageoptionwidth{\the\paperwidth}
\edef\pgfpageoptionborder{0pt}
}
{
\setkeys{pgfpagesuselayoutoption}{landscape}
\pgfpagesphysicalpageoptions
    {%
        logical pages=4,%
        physical height=\pgfpageoptionheight,%
        physical width=\pgfpageoptionwidth,%
        last logical shipout=2%
    }
\pgfpageslogicalpageoptions{1}
    {%
    border code=\pgfsetlinewidth{1pt}\pgfstroke,%
    scale=1,
    center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
\pgfpageslogicalpageoptions{2}
    {%
    border code=\pgfsetlinewidth{1pt}\pgfstroke,%
    scale=1,
    center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
\pgfpageslogicalpageoptions{3}
    {%
    border shrink=\pgfpageoptionborder,%
    resized width=.7\pgfphysicalwidth,%
    resized height=.5\pgfphysicalheight,%
    center=\pgfpoint{.75\pgfphysicalwidth}{.29\pgfphysicalheight},%
    copy from=3
    }%
\pgfpageslogicalpageoptions{4}
    {%
    border shrink=\pgfpageoptionborder,%
    resized width=.7\pgfphysicalwidth,%
    resized height=.5\pgfphysicalheight,%
    center=\pgfpoint{.75\pgfphysicalwidth}{.79\pgfphysicalheight},%
    copy from=4
    }%

\AtBeginDocument
    {
    \newbox\notesbox
    \setbox\notesbox=\vbox
        {
            \hsize=\paperwidth
            \vskip-1in\hskip-1in\vbox
            {
                \vskip1cm
                Notes\vskip1cm
                        \hrule width\paperwidth\vskip1cm
                    \hrule width\paperwidth\vskip1cm
                        \hrule width\paperwidth\vskip1cm
                    \hrule width\paperwidth\vskip1cm
                        \hrule width\paperwidth\vskip1cm
                    \hrule width\paperwidth\vskip1cm
                    \hrule width\paperwidth\vskip1cm
                    \hrule width\paperwidth\vskip1cm
                        \hrule width\paperwidth
            }
        }
        \pgfpagesshipoutlogicalpage{3}\copy\notesbox
        \pgfpagesshipoutlogicalpage{4}\copy\notesbox
    }
}
}

\pgfpagesuselayout{2 on 1 boxed with notes}[letterpaper,border shrink=5mm]
1
  • I want to make a handout with 4 slides on each handout, but I get an error message when I try to add "boxed" to the command pgfpagesuselayout, it's like it does not recognize the command,. The error says: 'Page layout 4 on 1 boxed undefined'... Here's what I put in the preamble: \documentclass[handout]{beamer} \usepackage{pgf} \usepackage{pgfpages} \pgfpagesdeclarelayout{4 on 1 boxed} \pgfpagesuselayout{4 on 1 boxed}[a4paper,landscape,border shrink=5mm] ... various packages \begin{document}.... What is wrong?
    – EspenJK
    Jun 14, 2017 at 12:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .