如何从 Beamer 的进度中删除参考书目?

如何从 Beamer 的进度中删除参考书目?

我创建了一个 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 图片_2 图片_3 图片_4 图片_5 图片_6 图片_7 图片_8

一般来说,我希望“第一个概念”下的进度条为零,因为我们即将到达“第一帧”;我希望“第一次引用”下的进度条为 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}

“最后引用”幻灯片上的进度条已满 2/3

相关内容