我创建了一个 Beamer 演示文稿,其中包含 15 帧内容和 5 帧参考。我还启用了进度条,它显示我演示的进度。但是,进度是根据我演示的总共 20 帧来计算的。因此,当我在最后一张幻灯片上时,它显示我只完成了演示的 3/4。
有没有办法指示哪张是最后一张幻灯片的内容,这样该点之后的帧就不会计入我的进度?我不想使用该\appendix
命令,原因有二:(1) 我的演示文稿中已经包含附录幻灯片,(2) 我希望整个参考书目中的页数保持不变。我在网上寻找答案,但没有找到任何可以解决我的问题的方法。
仅供参考,我正在使用该biblatex
包来获取我的参考书目和命令\printbibliography
。
MWE 如下:
\documentclass{beamer}
\usetheme{metropolis}
%make progress-bar thicker
\makeatletter
\setlength{\metropolis@progressonsectionpage@linewidth}{2.5pt}
\makeatother
\title{My title}
\author{Me}
\usepackage{lipsum}
% Set bibliography
\usepackage[style=authoryear]{biblatex}
\addbibresource{ref.bib}
\usepackage{filecontents}
% Add references
\begin{filecontents}{ref.bib}
@book{key1,
author = {Author, A.},
year = {2001},
title = {Title1},
publisher = {Publisher},
}
@book{key2,
author = {Author, B.},
year = {2002},
title = {Title2},
publisher = {Publisher},
}
\end{filecontents}
\begin{document}
\maketitle
\section{First concept}
\begin{frame}{First frame}
\lipsum[1]
\end{frame}
\section{First citation}
\begin{frame}
\frametitle{First citation}
``First quote.'' \cite{key1}
\end{frame}
\section{Last citation}
\begin{frame}{Last frame}
``Second quote.'' \cite{key2}
\end{frame}
\begin{frame}[t]{References}
\printbibliography[heading=none]
\end{frame}
\end{document}
该代码的结果如下所示:
一般来说,我希望“第一个概念”下的进度条为零,因为我们即将到达“第一帧”;我希望“第一次引用”下的进度条为 1/3,因为“第一次引用”是我的第二帧;“最后一次引用”下的进度条应该为 2/3,因为“最后一帧”是最后一个内容帧。
尽管如此,最后一部分的进度条在 1/2,因为它将“参考文献”算作内容框架,并且占据了我演示文稿的四分之一。
@moewe,这是我收到的错误
答案1
您可能想尝试以下操作,它会记住参考书目的帧号并使用该帧号(减 1)而不是总帧号来计算进度条。
\documentclass{beamer}
\usetheme{metropolis}
\title{My title}
\author{Me}
\usepackage{lipsum}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\setlength{\metropolis@progressonsectionpage@linewidth}{2.5pt}
\newcommand*\beamer@startframeofbib{2}
\newcommand*\beamer@bibframes[1]{\gdef\beamer@startframeofbib{#1}}
\defbibheading{pagenumber}[\refname]{%
\addtocontents{nav}{\protect\headcommand{\protect\beamer@bibframes{\the\c@framenumber}}}}
\setbeamertemplate{progress bar in section page}{%
\setlength{\metropolis@progressonsectionpage}{%
\textwidth * \ratio{\insertframenumber pt}{\the\numexpr\beamer@startframeofbib-1\relax pt}%
}%
\begin{tikzpicture}
\fill[bg] (0,0) rectangle (\textwidth, \metropolis@progressonsectionpage@linewidth);
\fill[fg] (0,0) rectangle (\metropolis@progressonsectionpage, \metropolis@progressonsectionpage@linewidth);
\end{tikzpicture}%
}
\makeatother
\begin{document}
\maketitle
\section{First concept}
\begin{frame}{First frame}
\lipsum[1]
\end{frame}
\section{First citation}
\begin{frame}
\frametitle{First citation}
``First quote.'' \cite{sigfridsson}
\end{frame}
\section{Last citation}
\begin{frame}{Last frame}
``Second quote.'' \cite{nussbaum}
\end{frame}
\appendix
\begin{frame}[t]{References}
\printbibliography[heading=pagenumber]
\end{frame}
\end{document}