Here's a sneaky way to accomplish this without using any external tools. It's a "proof of concept" more than a complete solution, but I think it would be usable if a little rough around the edges.
It uses an enhanced pgfpages
. The enhancement means that when pgfpages
comes to lay out its logical pages on a physical page, it can do so on more than one physical page. So what we do is we gather together the notes page and the next frame page then typeset them as usual: notes followed by frame (since the frame is the next one), but with a little extra: we also put the frame page in the top corner of the notes page.
Modulo a little trickery to ensure that we start and end at the right points, and that we actually don't want to use the full frame but only its contents (ie not the background), this isn't overly complicated. It does mean we get two extra slides: one at the start and one at the end, but even that could be dealt with without too much extra hassle.
The enhanced pgfpages
is called pgfmorepages.sty
(CTAN and github). With that, the following code works-for-me:
\documentclass{beamer}
%\url{http://tex.stackexchange.com/q/33051/86}
\usepackage{pgfmorepages}
\setbeameroption{show notes}
\makeatletter
\defbeamertemplate{note page}{lookahead}
{%
{%
\scriptsize
\insertvrule{.25\paperheight}{white!90!black}
\vskip-.25\paperheight
\nointerlineskip
\vbox{
\hfill\insertslideintonotes{0.25}\hskip0.25\paperwidth\hskip-\Gm@rmargin\hskip0pt%
\vskip-0.25\paperheight%
\nointerlineskip
\begin{pgfpicture}{0cm}{0cm}{0cm}{0cm}
\begin{pgflowlevelscope}{\pgftransformrotate{90}}
{\pgftransformshift{\pgfpoint{-2cm}{0.2cm}}%
\pgftext[base,left]{\footnotesize\the\year-\ifnum\month<10\relax0\fi\the\month-\ifnum\day<10\relax0\fi\the\day}}
\end{pgflowlevelscope}
\end{pgfpicture}}
\nointerlineskip
\vbox to .25\paperheight{\vskip0.5em
\hbox{\insertshorttitle[width=8cm]}%
\setbox\beamer@tempbox=\hbox{\insertsection}%
\hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip4pt\raise3pt\hbox{\vrule
width0.4pt height7pt\vrule width 9pt
height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsection\end{minipage}}\fi%
}%
\setbox\beamer@tempbox=\hbox{\insertsubsection}%
\hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip17.4pt\raise3pt\hbox{\vrule
width0.4pt height7pt\vrule width 9pt
height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsubsection\end{minipage}}\fi%
}%
\setbox\beamer@tempbox=\hbox{\insertshortframetitle}%
\hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip30.8pt\raise3pt\hbox{\vrule
width0.4pt height7pt\vrule width 9pt
height0.4pt}}\hskip1pt\hbox{\insertshortframetitle[width=7cm]}\fi%
}%
\vfil}%
}%
\vskip.25em
\nointerlineskip
\insertnote
}
\pgfpagesdeclarelayout{notes page with look ahead}%
{%
\edef\pgfpageoptionheight{\the\paperwidth}
\edef\pgfpageoptionwidth{\the\paperheight}
\def\pgfpageoptionborder{0pt}
\def\pgfpageoptionfirstshipout{1}
\def\pgfpageoptioninitialshipout{2}
}%
{%
\pgfpagesphysicalpageoptions
{%
logical pages=3,%
physical pages=2,%
physical height=\the\paperheight,%
physical width=\the\paperwidth,%
current logical shipout=2,%
last logical shipout=2,%
}
\pgfpagesphysicalpage{1}{%
skip code={\ifnum\the\pgfactualpage=1\relax\pgfpagesshipfalse\fi}
}%
\pgfpageslogicalpageoptions{1}%
{
resized width=\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{3}%
{
resized width=.25\pgfphysicalwidth,%
resized height=.25\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.875\pgfphysicalwidth}{.875\pgfphysicalheight},%
border code={\color[gray]{0.8}\pgfusepath{stroke}},%
skip code={%
\ifvoid\csname pgfpages@box@2\endcsname\else
\setbox\csname pgfpages@box@3\endcsname=\copy\beamer@frameboxcopy\fi
}
}
\pgfpagesphysicalpage{2}{%
skip code={\ifvoid\csname pgfpages@box@2\endcsname\pgfpagesshipfalse\fi}%
}%
\pgfpageslogicalpageoptions{2}%
{
resized width=\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
}
\makeatother
\setbeamertemplate{note page}[lookahead]
\pgfpagesuselayout{notes page with look ahead}
\begin{document}
\begin{frame}{The first frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\begin{frame}{The second frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\begin{frame}{The third frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\begin{frame}{The fourth frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\end{document}
Of course, one ought to hide that horrible stuff in another .sty
file. Also, I've no doubt that there are better layouts - I just hacked the current one that puts the image of the previous slide in the top corner.
This produces the following.

Edit 2014-09-20
In response to anderfo's comment (which I never got round to looking at) and a similar question by email, I proffer the following. First, I should say that as it has been a long time since I looked at this code, I find I no longer fully understand it! However, by my usual 'hack and see' approach, I've managed to get something that (I think!) simulates the "show notes on second screen=left" layout. It also corrects the offset that Jim points out (again by "magic numbers", not by understanding what's going on).
(One minor annoyance is that on the last slide, a "next slide" still appears. I've not figured out how to get rid of that.)

\documentclass{beamer}
%\url{http://tex.stackexchange.com/q/33051/86}
\usepackage{pgfmorepages}
\setbeameroption{show notes}
\makeatletter
\defbeamertemplate{note page}{lookahead}
{%
{%
\scriptsize
\insertvrule{.25\paperheight}{white!90!black}
\vskip-.25\paperheight
\nointerlineskip
\vbox{
\hfill\insertslideintonotes{0.25}\hskip0.25\paperwidth\hskip-\Gm@rmargin\hskip0pt%
\vskip-0.25\paperheight%
\nointerlineskip
\begin{pgfpicture}{0cm}{0cm}{0cm}{0cm}
\begin{pgflowlevelscope}{\pgftransformrotate{90}}
{\pgftransformshift{\pgfpoint{-2cm}{0.2cm}}%
\pgftext[base,left]{\footnotesize\the\year-\ifnum\month<10\relax0\fi\the\month-\ifnum\day<10\relax0\fi\the\day}}
\end{pgflowlevelscope}
\end{pgfpicture}}
\nointerlineskip
\vbox to .25\paperheight{\vskip0.5em
\hbox{\insertshorttitle[width=8cm]}%
\setbox\beamer@tempbox=\hbox{\insertsection}%
\hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip4pt\raise3pt\hbox{\vrule
width0.4pt height7pt\vrule width 9pt
height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsection\end{minipage}}\fi%
}%
\setbox\beamer@tempbox=\hbox{\insertsubsection}%
\hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip17.4pt\raise3pt\hbox{\vrule
width0.4pt height7pt\vrule width 9pt
height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsubsection\end{minipage}}\fi%
}%
\setbox\beamer@tempbox=\hbox{\insertshortframetitle}%
\hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip30.8pt\raise3pt\hbox{\vrule
width0.4pt height7pt\vrule width 9pt
height0.4pt}}\hskip1pt\hbox{\insertshortframetitle[width=7cm]}\fi%
}%
\vfil}%
}%
\vskip.25em
\nointerlineskip
\insertnote
}
\pgfpagesdeclarelayout{notes page with look ahead}%
{%
\edef\pgfpageoptionheight{\the\paperwidth}
\edef\pgfpageoptionwidth{\the\paperheight}
\def\pgfpageoptionborder{0pt}
\def\pgfpageoptionfirstshipout{1}
\def\pgfpageoptioninitialshipout{2}
}%
{%
\pgfpagesphysicalpageoptions
{%
logical pages=3,%
physical pages=2,%
physical height=\the\paperheight,%
physical width=\the\paperwidth,%
current logical shipout=2,%
last logical shipout=2,%
}
\pgfpagesphysicalpage{1}{%
skip code={\ifnum\the\pgfactualpage=1\relax\pgfpagesshipfalse\fi}
}%
\pgfpageslogicalpageoptions{1}%
{
resized width=\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{3}%
{
resized width=.25\pgfphysicalwidth,%
resized height=.25\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.875\pgfphysicalwidth}{.875\pgfphysicalheight},%
border code={\color[gray]{0.8}\pgfusepath{stroke}},%
skip code={%
\ifvoid\csname pgfpages@box@2\endcsname\else
\setbox\csname pgfpages@box@3\endcsname=%
\hbox to \pgfphysicalwidth{%
\hskip-.6in% No idea why this is the right value
\vbox to \pgfphysicalheight{%
\vskip-1in%
\copy\beamer@frameboxcopy}}\fi
}%
}
\pgfpagesphysicalpage{2}{%
skip code={\ifvoid\csname pgfpages@box@2\endcsname\pgfpagesshipfalse\fi}%
}%
\pgfpageslogicalpageoptions{2}%
{
resized width=\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
}
\pgfpagesdeclarelayout{notes page on second screen left with look ahead}%
{%
\edef\pgfpageoptionheight{\the\paperwidth}
\edef\pgfpageoptionwidth{\the\paperheight}
\def\pgfpageoptionborder{0pt}
\def\pgfpageoptionfirstshipout{1}
\def\pgfpageoptioninitialshipout{2}
}%
{%
\pgfpagesphysicalpageoptions
{%
logical pages=3,%
physical pages=1,%
physical height=\the\paperheight,%
physical width=2\paperwidth,%
current logical shipout=1,%
last logical shipout=2,%
}
\pgfpagesphysicalpage{1}{%
}%
\pgfpageslogicalpageoptions{2}%
{
resized width=\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{3}%
{
resized width=.25\pgfphysicalwidth,%
resized height=.25\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.4375\pgfphysicalwidth}{.875\pgfphysicalheight},%
border code={\color[gray]{0.8}\pgfusepath{stroke}},%
skip code={%
\ifvoid\csname pgfpages@box@2\endcsname\else
\setbox\csname pgfpages@box@3\endcsname=%
\hbox to \pgfphysicalwidth{%
\hskip-.6in% No idea why this is the right value
\vbox to \pgfphysicalheight{%
\vskip-1in%
\copy\beamer@frameboxcopy}}\fi
}%
}
\pgfpageslogicalpageoptions{1}%
{
resized width=.5\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
border shrink=\pgfpageoptionborder,%
center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
}
\makeatother
\setbeamertemplate{note page}[lookahead]
\pgfpagesuselayout{notes page on second screen left with look ahead}
%\pgfpagesuselayout{notes page with look ahead}
\begin{document}
\begin{frame}{The first frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\begin{frame}{The second frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\begin{frame}{The third frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\begin{frame}{The fourth frame}
\begin{enumerate}
\item An item
\note[item]{with a note}
\item Another item
\note[item]{with another note}
\end{enumerate}
\vfill
Something near the bottom
\end{frame}
\end{document}
You do need to tell beamer
what you want to appear in each frame of the handout
version. You can use \onslide
specifications to do this so that you do not need to modify the existing overlay specifications at all. (I'm not sure this is what you want - probably not.)
The following code modifies your MWE so that, in presentation
mode, there would actually be 10 slides within the frame. These are then placed on slides 1 or 2 of the handout
. This is a waste of code: if you only want to show slide 5 and slide 10, you do not need two \againframe
but only one. But, anyway, with the two:
\documentclass[handout]{beamer}
\begin{document}
\begin{frame}<1-| handout:0>[label=foo]{My only frame}
\begin{enumerate}[<+->]% or whatever you like for presentation mode
\onslide<1-| handout:1-2>
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\onslide<1-| handout:2>
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\end{enumerate}
\end{frame}
\againframe<0| handout:1>{foo}
\againframe<0| handout:2>{foo}
\end{document}

More efficiently with only one repeat:
\documentclass[handout]{beamer}
\begin{document}
\begin{frame}<1-| handout:1>[label=foo]{My only frame}
\begin{enumerate}[<+->]% or whatever you like for presentation mode
\onslide<1-| handout:1-2>
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\onslide<1-| handout:2>
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\item Item \arabic{enumi}
\end{enumerate}
\end{frame}
\againframe<0| handout:2>{foo}
\end{document}
I'm not sure how this could apply to article
mode since then there are no frames or slides.
Best Answer
A note page isn't implemented as a normal
beamer
frame, but typeset using its own code which can be found in beamerbasenotes.sty (cf.\beamer@outsideframenote
, ll. 59-103). Therefore, using normal frame options likeshrink
orallowframebreaks
isn't possible.