代码

代码

我正在使用 Beamer 做一个演示文稿,它很长。它被分成几个部分,在每个部分结束时我都会休息一下。因此,我希望对当前幻灯片进行双计数器。例如:假设我目前在第 2 部分(由 20 张幻灯片组成)的第 3 张幻灯片,第 1 部分由 50 张幻灯片组成,第一个计数器将是 3/20,而第二个计数器将是 53/70(如果只有两个部分)。

这是我的工作环境:

\documentclass[t,10pt,xcolor=dvipsnames]{beamer}
 \mode<presentation>
 {
 \usetheme{AnnArbor}
 \setbeamercovered{transparent}
\useinnertheme{rounded}
   \usecolortheme{spruce}
 }

  \setbeamercolor{section in head/foot}{fg=White}
\section{Sec1}
\subsection{Sub 1}
\begin{frame}{Fra 1}
\end{frame}
\begin{frame}{Fra 2}
\end{frame}
\begin{frame}{Fra 3}
\end{frame}
\section{Sec2}
\subsection{Sub 1}
\begin{frame}{Fra 1}
\end{frame}
\begin{frame}{Fra 2}
\end{frame}
\end{document}

有什么帮助吗?

答案1

不需要新的计数器,只需要一点计算。Beamer 将节的开始和结束页码存储在宏\insertsectionstartpage和中\insertsectionendpage。因此,可以通过以下方式计算节中的页数

\insertsectionendpage-\insertsectionstartpage+1

章节内的页码是

\insertframenumber-\insertsectionstartpage+1

其中\insertframenumber存储当前帧的页码。

\patchcmd使用从包中将这些修补etoolbox到插入页脚的 Beamer 命令\beamer@@tmpl@footline,您将在页脚的左侧获得部分页码计数器,在右侧获得总页码计数器。

代码

\documentclass[t,10pt,xcolor=dvipsnames]{beamer}

\usepackage{etoolbox}

\mode<presentation>
{
  \usetheme{AnnArbor}
  \setbeamercovered{transparent}
  \useinnertheme{rounded}
  \usecolortheme{spruce}
}
\setbeamercolor{section in head/foot}{fg=White}

\makeatletter
% change author box alignment 
\patchcmd{\beamer@@tmpl@footline}% <cmd>
  {center}% <search>
  {left}% <replace>
  {}% <success>
  {}% <failure>

% add page to author box
\patchcmd{\beamer@@tmpl@footline}% <cmd>
  {\usebeamerfont{author in head/foot}\insertshortauthor\expandafter\beamer@ifempty\expandafter{\beamer@shortinstitute}{}{~~(\insertshortinstitute)}}% <search>
  {\def\sectotpage{\number\numexpr\insertsectionendpage-\insertsectionstartpage+1}%
   \def\pageinsec{\number\numexpr\insertframenumber-\insertsectionstartpage+1}%
   \rlap{\hspace*{2ex}\pageinsec{} / \sectotpage} \hfill
  \usebeamerfont{author in head/foot}\insertshortauthor\expandafter\beamer@ifempty\expandafter{\beamer@shortinstitute}{}{~~(\insertshortinstitute)}}% <replace>
  {}% <success>
  {}% <failure>
\makeatother

\author{Author}

\begin{document}
\newcommand\nf{\frame{Frame in Section~\thesection.}}

\section{Sec 1}
\nf\nf\nf\nf\nf

\section{Sec 2}
\nf\nf\nf\nf\nf\nf

\section{Sec 3}
\nf\nf\nf\nf\nf\nf\nf

\end{document}

输出

在此处输入图片描述

相关内容