![Code](https://rvso.com/image/305774/Code.png)
Ich erstelle eine ziemlich lange Präsentation mit Beamer. Sie ist in Abschnitte unterteilt und am Ende jedes Abschnitts mache ich eine Pause. Daher möchte ich einen doppelten Zähler für die aktuelle Folie haben. Beispiel: Angenommen, ich befinde mich gerade bei der 3. Folie von Abschnitt 2 (bestehend aus 20 Folien) und Abschnitt 1 besteht aus 50 Folien, dann beträgt der erste Zähler 3/20 und der zweite 53/70 (wenn es nur zwei Abschnitte gibt).
Das ist meine Arbeitsumgebung:
\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}
Irgendeine Hilfe?
Antwort1
Es sind keine neuen Zähler erforderlich, nur ein bisschen Berechnung. Beamer speichert die Seitenzahlen, an denen ein Abschnitt beginnt und endet, in Makros \insertsectionstartpage
und \insertsectionendpage
. Somit kann die Anzahl der Seiten in einem Abschnitt berechnet werden durch
\insertsectionendpage-\insertsectionstartpage+1
Die Seitenzahl innerhalb eines Abschnitts ist
\insertframenumber-\insertsectionstartpage+1
wo \insertframenumber
die Seitennummer des aktuellen Frames gespeichert wird.
Patchen Sie diese mithilfe \patchcmd
des Pakets etoolbox
an den Beamer-Befehl, der die Fußzeile einfügt \beamer@@tmpl@footline
, und Sie haben in der Fußzeile links einen Abschnittsseitenzähler und rechts einen Gesamtseitenzähler.
Code
\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}