31

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?

20

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.

  • 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 '10 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 '10 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 '11 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 '11 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 '18 at 12:47
23

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.)

  • How do I include the "4 on 1 boxed" code in my main document? – csgillespie Nov 10 '10 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? – Loop Space Nov 10 '10 at 20:07
  • Yes that does help. It was the style file bit I was after. Many thanks. – csgillespie Nov 10 '10 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. – Gabriel Devillers Sep 20 '17 at 21:43
5

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

  • Best Answer, best output. – Thanos Apr 8 '17 at 20:47
2

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]
  • 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 '17 at 12:44

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.