6

I am making a presentation using Beamer and I would like for most of my slides to have an itemize list on the presentation slide that is uncovered using the <+-> style. On the associated notes slide, I would like pretty much the same list, just more wordy, and uncovered in a synchronized fashion. I tried to do this using the code below, but for some reason the first two notes appear at the same time (i.e. with the first presentation item), then when I get to the last presentation item, all items on the notes slide disappear.

\documentclass[]{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen=left}
\beamerdefaultoverlayspecification{<+->}

\begin{document}

\begin{frame}{Naive HDR Combination}

\begin{itemize}
        \item My first point
                \note[item]{A note about my first point}
        \item My second point
                \note[item]{A note about my second point}
        \item My third point
                \note[item]{A note about my third point}
\end{itemize}

\end{frame}

\end{document}

Is there a way to get this working? I realize I can manually set slide numbers for each \note, e.g. \note[item]<2->, but a) that's irritating and b) if I later decide to add a new item mid-list, I have to renumber all following notes. Thanks.

1 Answer 1

6

I can't explain exactly the behaviour that you are seeing, but my experiments lead me to conclude that it is coming from an interaction between the \beamerdefaultoverlayspecification command and the rest of the set-up. What appears to be happening is that the \items that appear in the list in the notes are sensitive to the overlay. So they inherit the setting of \beamerdefaultoverlayspecification. Your list of notes is thus equivalent to:

\begin{enumerate}
\item<+-> A note about my first point
\item<+-> A note about my second point
\item<+-> A note about my third point
\end{enumerate}

Where this gets confusing is exactly how the overlays are determined on the note slide. This I don't quite understand.

The \note<overlay> specification works by putting the note command in an \only at the point of call. So that is independent of the behaviour in the note slide. Indeed, I'd be tempted to call it a bug that \item is overlay-aware in the notes.

So when using notes, I would recommend not using \beamerdefaultoverlayspecification. To get the same effect, you can put \begin{itemize}[<+->].

This still doesn't solve your problem, though, as that now means that the all the notes for a frame appear on every slide of that frame. One way to fix this which avoids the issue you refer to is to write \note<.->[item]{note text}. The <.-> syntax means "from this slide on" (NB: outside an itemize, you might have to offset it by 1, so \note<.(1)->[item]{note text}.) This at least fixes issue (b) with specifying an explicit overlay since then reordering the list also reorders the notes.

To remove the necessity for using any overlay specification, one could hack the \note command so that it took a default overlay specification. We'd want to be sure that it wasn't the same as that set by the \beamerdefaultoverlayspecification as we don't want it to interfere with the normal operation of the frame. Here's a working example, but I don't guarantee that it works in all situations!

\documentclass[]{beamer}
%\url{http://tex.stackexchange.com/q/28972/86}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen=left}

\makeatletter
\def\beamerdefaultnoteoverlay#1{%
  \beamer@ifempty{#1}%
  {%
    \def\beamer@gdefaultnotespec{<*>}%
    \def\beamer@defaultnotespec{<*>}}%
  {%
    \def\beamer@gdefaultnotespec{#1}%
    \def\beamer@defaultnotespec{#1}%
  }%
}
\beamerdefaultnoteoverlay{}

%% Hack to avoid bug in \renewcommand (fixed in latest version)
 \expandafter\let\csname beamerx@\string\beamer@inframenote\endcsname\relax
 \newcommand<>{\beamer@inframenote}[2][]{%
   \ifbeamer@inlecture%
  \beamer@ifempty{#3}%
  {%
   \let\note@ospec=\beamer@defaultnotespec
  }{%
   \def\note@ospec{#3}%
  }%
     \expandafter\only\note@ospec{%
       \def\beamer@temp{#1}%
       \ifx\beamer@temp\beamer@itemtext%
         \expandafter\gdef\expandafter\beamer@noteitems%
         \expandafter{\beamer@noteitems\item#2}%
       \else
         \expandafter\gdef\expandafter\beamer@notes%
           \expandafter{\beamer@notes#2}%
       \fi%
     }%
   \fi%
   }
\makeatother

\beamerdefaultnoteoverlay{<.->}

\begin{document}

\begin{frame}{Naive HDR Combination}

\begin{itemize}[<+->]
        \item My first point
                \note[item]{A note about my first point}
        \item My second point
                \note[item]{A note about my second point}
        \item My third point
                \note[item]{A note about my third point}
\end{itemize}

\end{frame}
\end{document}

You must log in to answer this question.

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