我正在使用 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
。