![Beamer - 如何添加子帧编号?](https://linux22.com/image/306936/Beamer%20-%20%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E5%AD%90%E5%B8%A7%E7%BC%96%E5%8F%B7%EF%BC%9F.png)
我有以下用于计算页数的代码:
\setbeamertemplate{navigation symbols}{
\usebeamercolor[fg]{title}
\hspace{1em}
\large\insertframenumber/\inserttotalframenumber
}
已添加到序言中。
我想知道我是否可以添加一些内容,以便当我循环单个帧时它也计算在内,例如我希望显示以下内容:
所有帧均为 1a/1 、 1b/1 、 1c/1 ,而不是 1/1 。
\documentclass[demo]{beamer}
\setbeamertemplate{navigation symbols}{
\usebeamercolor[fg]{title}
\hspace{1em}
\large\insertframenumber/\inserttotalframenumber
}
\begin{document}
\begin{frame}{Title}
\begin{itemize}
\item<1-> stuff
\item<2-> stuff
\item<3-> stuff
\end{itemize}
\end{frame}
\end{document}
答案1
有一种可能性是:
\documentclass[demo]{beamer}
\usepackage{tikz}
\makeatletter
\def\c@slideinframe{\beamer@slideinframe}
\def\beamerslideinframe{\beamer@slideinframe}
\makeatother
\addtobeamertemplate{frametitle}{}{%
\begin{tikzpicture}[remember picture,overlay]
\node[inner sep=0pt,font=\large,anchor=south east]
at ([xshift=-0.5em]current page.south east)
{\insertframenumber-(\alph{slideinframe})/\inserttotalframenumber};%
\end{tikzpicture}
}
\setbeamertemplate{navigation symbols}{}
\begin{document}
\begin{frame}{Title}
\frametitle{Slide \arabic{slideinframe}}
\begin{itemize}
\item<1-> stuff
\item<2-> stuff
\item<3-> stuff
\end{itemize}
\end{frame}
\end{document}
结果:
必须仔细选择添加幻灯片编号信息的模板;在一些“后期”模板(例如navigation symbols
)中footline
,幻灯片编号的值会受到覆盖规范的影响,因此我不得不使用“早期”模板(例如),frametitle
并使用 TikZ 将数字放在所需的位置。
该代码需要运行两到三次才能稳定下来。