使用笔记时 Beamer 中的 Hyperref 问题

使用笔记时 Beamer 中的 Hyperref 问题

已添加更新和 MWE

这是我第一次使用 Beamer,我想使用笔记页来提示自己。但是,当我使用 或 来打开它们时\documentclass[notes]{beamer}\setbeameroption{show notes on second screen=left}大多数应该产生超链接的项目(例如章节、引文、章节链接)都会产生 pdflatex 错误destination with the same identifier has already been used

以下是一个 MWE 示例,我在 Windows 7 上使用 MikTeX 2.9(带有最近更新的软件包)进行编译。您可以看到,我可能想要合并注释的几种不同方式。在这个 MWE 中,选项 2-4 给出警告和错误链接,而在我的完整文档中,选项 1 也是如此。在这个 MWE 中,如果我使用 BibTeX 添加参考书目,那么选项 1 也会在引用中给出链接错误。

% In this MWE, options 2-4 all cause hyperlink problems. In my full presentation, option 1 does as well. 
% The only one that works is option 5, which had no notes in any form. 

%% 1. DUAL-DISPLAY NOTES:
%\documentclass[hyperref={bookmarks=false}]{beamer}
%\usepackage{pgfpages}
%\setbeameroption{show notes on second screen=left}

% 2. NOTES ON SEPARATE SLIDES:
\documentclass[notes]{beamer}

% 3. NOTES ONLY:
%\documentclass[notes=only]{beamer}

% 4. HANDOUTS:
%\documentclass[handout,notes]{beamer}

% 5. NO NOTES: ONLY ONE THAT BUILDS WITHOUT WARNINGS
%\documentclass[hide notes]{beamer}

\mode<presentation>{
  \usetheme{Warsaw}
  \setbeamercovered{transparent}
}

\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}

\title[Pres\hspace{2em}\insertframenumber/
\inserttotalframenumber]{My Presentation}
\author[Me Me] {Me}
\institute[Univ.]{University}
\date[Sep. 14, 2011]{September 14$^{\text{th}}$, 2011}

% Makes TOC show at beginning og each section:
\AtBeginSubsection[]
{
  \begin{frame}<beamer>{Outline}
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}
    \note{}
}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}
\note{}

\begin{frame}{Outline}
  \tableofcontents
\end{frame}
\note{}

\section{Introduction}

\begin{frame}{A content frame }
\begin{itemize}[<+->]
        \item Here is some content.
                \note[item]{And here is a related note.}
        \item More content.
                    \note[item]{Another note. }
        \item Yet more content.
                    \note[item]{Yet again a note.}
\end{itemize}
\end{frame}

\begin{frame}{A second content frame}
\begin{itemize}
        \uncover<1->{
        \item Indented content:
        \begin{itemize}
                \item First piece.
                \note[item]<1->{Note about first piece. }
        \end{itemize}
        }
        \uncover<2->{
        \item More content.
        \begin{itemize}
                \item More indented content.
                \note[item]<2-> {Note about this second piece of content. }
        }
        \end{itemize}
\end{itemize}
\end{frame}

\end{document}

我的问题是,使用注释页时是否可以有可用的超链接,或者通过添加注释对页码的固有修改是否会阻止这种情况发生?我希望我只是以错误的顺序加载了一些包或类似的东西。

更新

根据下面 percusse 的回答,对于选项 2-4,可以通过使用较新的 notes 选项(例如,show notes而不仅仅是)来解决该问题notes,如下所示:

%% 1. DUAL-DISPLAY NOTES:
%\documentclass[hyperref={bookmarks=false}]{beamer}
%\usepackage{pgfpages}
%\setbeameroption{show notes on second screen=left}

% 2. NOTES ON SEPARATE SLIDES:
\documentclass[show notes]{beamer}

% 3. NOTES ONLY:
%\documentclass[show only notes]{beamer}

% 4. HANDOUTS:
%\documentclass[handout,show notes]{beamer}

% 5. NO NOTES: ONLY ONE THAT BUILDS WITHOUT WARNINGS
%\documentclass[hide notes]{beamer}

然而,他们坚持使用选项 1(双显示)。这似乎与插入到注释页面右上角的迷你幻灯片有关;显然,迷你幻灯片与主幻灯片中的标签重复。解决此问题的一个方法是改为使用,show notes on second screen=right这样右侧幻灯片就会获得断开的链接,而左侧幻灯片(演示幻灯片)会获得正常工作的链接。

消除警告的另一个部分解决方案是从注释页中删除该小幻灯片,beamerouterthemedefault.sty方法是删除以下几行\defbeamertemplate*{note page}{default}

  \hfill\insertslideintonotes{0.5}\hskip-\Gm@rmargin\hskip0pt%
  \vskip-0.25\paperheight%
  \nointerlineskip

然后,选项 1 编译时没有任何警告,但演示文稿幻灯片中的各种导航链接(例如幻灯片顶部的大纲、右下角的导航键)仍然不起作用。

所以我的更新(完善)的问题是,是否可以使用该选项进行构建\setbeameroption{show notes on second screen=left},并且在演示幻灯片中仍然保留有效的链接?

答案1

我已经尝试了所有选项,正如它所抱怨的那样,你只是使用了过时的选项版本notes,请确保你编译两次以确保警告。以下案例在 Win7 64 位、Texniccenter 2 Alpha3、Miktex 2.9 上完全正常运行,没有任何错误或警告。

% 2. NOTES ON SEPARATE SLIDES:
\documentclass[show notes]{beamer}

% 3. NOTES ONLY:
\documentclass[show only notes]{beamer}

% 4. HANDOUTS:
\documentclass[handout,show notes]{beamer}

我尝试添加新部分,一切(超链接等)看起来都正常。我使用了手册第 102 页的示例参考书目(v.3.12),它也没有任何错误和失误。如果您觉得仍有一些问题,请进一步编辑您的问题。

以下是我曾经使用过的方法,以防万一:

%% 1. DUAL-DISPLAY NOTES:
%\documentclass[
                                                        %hyperref={bookmarks=false}
                                                        %]{beamer}
%\usepackage{pgfpages}
%\setbeameroption{show notes on second screen=left}

% 2. NOTES ON SEPARATE SLIDES:
\documentclass[show notes]{beamer}

% 3. NOTES ONLY:
%\documentclass[show only notes]{beamer}

% 4. HANDOUTS:
%\documentclass[handout,show notes]{beamer}

% 5. NO NOTES: ONLY ONE THAT BUILDS WITHOUT WARNINGS
%\documentclass[hide notes]{beamer}

\mode<presentation>{
  \usetheme{Warsaw}
  \setbeamercovered{transparent}
}

\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}

\title[Pres\hspace{2em}\insertframenumber/
\inserttotalframenumber]{My Presentation}
\author[Me Me] {Me}
\institute[Univ.]{University}
\date[Sep. 14, 2011]{September 14$^{\text{th}}$, 2011}

% Makes TOC show at beginning og each section:
\AtBeginSubsection[]
{
  \begin{frame}<beamer>{Outline}
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}
    \note{}
}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}
\note{}

\begin{frame}{Outline}
  \tableofcontents
\end{frame}
\note{}

\section{Introduction}

\begin{frame}{A content frame }
\begin{itemize}[<+->]
        \item Here is some content.
                \note[item]{And here is a related note.}
        \item More content.
                    \note[item]{Another note. }
        \item Yet more content.
                    \note[item]{Yet again a note.}
\end{itemize}
\end{frame}

\begin{frame}{A second content frame}
\begin{itemize}
        \uncover<1->{
        \item Indented content:
        \begin{itemize}
                \item First piece.
                \note[item]<1->{Note about first piece. }
        \end{itemize}
        }
        \uncover<2->{
        \item More content.
        \begin{itemize}
                \item More indented content.
                \note[item]<2-> {Note about this second piece of content. }
        }
        \end{itemize}
\end{itemize}
\end{frame}
\section{Section 2}
\begin{frame}
\begin{block}{citation}it cites \cite{Salomaa1973}\end{block}
\end{frame}
\subsection{Subsection1}
\begin{frame}
\begin{block}{block1}content 1\end{block}
\end{frame}
\subsection{Subsection2}
\begin{frame}
\begin{block}{block 2}content 2\end{block}
\end{frame}

\begin{frame}
\begin{thebibliography}{Dijkstra, 1982}
\bibitem[Salomaa, 1973]{Salomaa1973}
A.~Salomaa.
\newblock {\em Formal Languages}.
\newblock Academic Press, 1973.
\bibitem[Dijkstra, 1982]{Dijkstra1982}
E.~Dijkstra.
102
\newblock Smoothsort, an alternative for sorting in situ.
\newblock {\em Science of Computer Programming}, 1(3):223--233, 1982.
\end{thebibliography}
\end{frame}
\end{document}

编辑:后来我发现我没有尝试使用选项 1。我能够重现警告。我会尝试看看是否能想出办法。

编辑2:我已经切换了演示文稿和注释的位置,至少它能正常工作。我猜想问题在于 hyperref 只为左侧部分定义了超链接,然后在注释角落创建那个小型迷你页面时,会出现混乱,因为它们已经在演示文稿主体中定义过了。

\documentclass[hyperref={bookmarks=false}]{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen=left}

这仍然会给您警告,但演示可以正常工作。

相关内容