避免在 Beamer 中跨越多个帧的参考资料中对帧进行编号

避免在 Beamer 中跨越多个帧的参考资料中对帧进行编号

我正在使用 Beamer 创建演示文稿,其中的引用跨越多个帧。为了让引用自动拆分为多个帧,我使用了参数allowframebreaks

另外,我不想在帧编号中包含参考帧。因此,我尝试使用两种不同的方法来忽略这些帧:

通过使用addtocounter减少总帧数

\begin{frame}[plain, allowframebreaks]
    \frametitle{References}
    \bibliographystyle{abbrv}
    {\tiny \bibliography{bibliography}}
    \addtocounter{framenumber}{-1}  % <---- HERE
\end{frame}

通过使用noframenumbering自 v. 3.08 起可用)简单地忽略框架

\begin{frame}[plain, allowframebreaks, noframenumbering] % <---- HERE
    \frametitle{References}
    \bibliographystyle{abbrv}
    {\tiny \bibliography{bibliography}}
\end{frame}

我面临的问题是,无论使用哪种方法,都只会忽略第一个参考帧。其他参考帧(通过使用 自动拆分allowframebreaks)始终计入总帧数(使用 检查\inserttotalframenumber)。

我将非常感激任何帮助指出我做错的事情的帮助。:)

答案1

我发现此主题这与我的问题非常相似,尽管它是关于附录框架而不是参考书目框架。

在答案中,这个表示该参数noframenumbering不被添加的附加帧继承allowframebreaks,并建议在前言中添加如下代码:

\usepackage{etoolbox}
\makeatletter
\preto{\appendix}{%
  \patchcmd{\beamer@continueautobreak}{\refstepcounter{framenumber}}{}{}{}}
\makeatother

我尝试根据自己的需要执行类似操作(即更改\appendix\bibliography),但未能成功。出现如下错误,表明该\bibliography命令可能不具有与该命令类似的结构\appendix

\bibliography 的参数有一个额外的 } ...reak}{\refstepcounter{framenumber}}{}{}{}}

然而我尝试过另一个答案建议将这些帧作为备份帧进行处理。首先,建议在前言中添加以下宏:

\newcommand{\backupbegin}{
   \newcounter{framenumberappendix}
   \setcounter{framenumberappendix}{\value{framenumber}}
}
\newcommand{\backupend}{
   \addtocounter{framenumberappendix}{-\value{framenumber}}
   \addtocounter{framenumber}{\value{framenumberappendix}} 
}

然后它建议使用这些宏来封闭您不想对帧编号产生影响的帧的定义。

因此,我这样定义我的参考框架:

\backupbegin
\begin{frame}[plain, allowframebreaks]
    \frametitle{References}
    \bibliographystyle{abbrv}
    {\tiny \bibliography{bibliography}}
\end{frame}
\backupend

一切都进展顺利!额外的帧不再计入帧编号中。:)

PS:如果有人知道如何使用参考书目中的第一个答案的解决方案,那将非常有用。在我看来,这种方法“感觉”更正确。

答案2

框架内有多个选项

解决办法是将其放在序言中: \setbeamertemplate{frametitle continuation}{} 并且仅使用allowframebreaks但不使用noframenumbering

相关内容