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
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.
-
8It'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).– mpgNov 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. 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 Oct 14, 2011 at 20:00
-
@MYaseen208: This I don't know. I suppose you could tweak the package. You might ask Guido Diepen. 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 VMar 23, 2018 at 12:47
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:
(In my actual documents, I have that page layout saved in a style file which gets loaded between loading pgfpages
and the \pgfpagesuselayout
command.)
-
-
@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
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?– EspenJKJun 14, 2017 at 12:44