Seite 1 von 1
Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"
Verfasst: Do 24. Jun 2021, 01:32
von hask
Hallo zusammen,
ich möchte gerne, dass in einer Beamer-Präsentation mehrere Slides, die durch die Verwendung von "allowframebreaks" entstehen, dieselbe Slide-Nummer haben (danach soll dann normal weitergezählt werden).
Ich habe eine StackOverflow-Antwort (mit MWE) gefunden und weiß, dass sie vor vielen Jahren einmal bei mir funktioniert hatte. Aktuell funktioniert das dort beschriebene MWE allerdings nicht mehr:
\documentclass{beamer}
\mode<presentation>
\usetheme{Boadilla}
\usepackage{etoolbox}
\usepackage{lipsum}
\newcounter{multipleslide}
\makeatletter%
\newcommand{\multipleframe}{%
\setcounter{multipleslide}{\value{framenumber}}
\stepcounter{multipleslide}
\patchcmd{\beamer@@tmpl@footline}% <cmd>
{\insertframenumber}% <search>
{\themultipleslide}% <replace>
{}% <success>
{}% <failure>
}
\newcommand{\restoreframe}{%
\patchcmd{\beamer@@tmpl@footline}% <cmd>
{\themultipleslide}% <search>
{\insertframenumber}% <replace>
{}% <success>
{}% <failure>
\setcounter{framenumber}{\value{multipleslide}}%
}
\makeatother%
\begin{document}
% "Slide 1"
\multipleframe %<------------------------------------
\begin{frame}[allowframebreaks]
\begin{itemize}
\item Foo
\item Bar
\item Baz
\end{itemize}
\lipsum[1-5]
\end{frame}
\restoreframe %<------------------------------------
% "Slide 2"
\begin{frame}
test
\end{frame}
\end{document}
Weiß jemand, wo dort das Problem liegt und wie man dies behoben kann? Ich verwende TeX Live 2020.
Viele Grüße
Re: Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"
Verfasst: Do 24. Jun 2021, 10:59
von Grummelgast
Das kommt davon, wenn man interne Makros patched und dabei nicht einmal testet, ob der Patch erfolgreich ist. Warum nicht ganz ohne interne Makros rein auf Basis von \insertframenumber.
\documentclass{beamer}
\mode<presentation>
\usetheme{Boadilla}
\usepackage{xpatch}
\usepackage{lipsum}
\newcounter{multipleslide}
\newif\ifmultipleslide
\xapptocmd{\multipleslidetrue}{\setcounter{multipleslide}{\value{framenumber}}\stepcounter{multipleslide}}{}{\PatchFailure}
\xapptocmd{\multipleslidefalse}{\setcounter{framenumber}{\value{multipleslide}}}{}{\PatchFailure}
\xpretocmd{\insertframenumber}{\ifmultipleslide \themultipleslide\else}{}{\PatchFailure}
\apptocmd{\insertframenumber}{\fi}{}{\PatchFailure}
\begin{document}
% "Slide 1"
\multipleslidetrue %<------------------------------------
\begin{frame}[allowframebreaks]
\begin{itemize}
\item Foo
\item Bar
\item Baz
\end{itemize}
\lipsum[1-5]
\end{frame}
\multipleslidefalse %<------------------------------------
% "Slide 2"
\begin{frame}
test
\end{frame}
% "Slide 3"
\multipleslidetrue %<------------------------------------
\begin{frame}[allowframebreaks]
\begin{itemize}
\item Foo
\item Bar
\item Baz
\end{itemize}
\lipsum[1-5]
\end{frame}
\multipleslidefalse %<------------------------------------
\end{document}
Allerdings würde ich selbst bei der dem Multi-Frame der Frame-Nummer eher einen Postfix anhängen, damit man noch eine Unterscheidung hat.
Re: Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"
Verfasst: Fr 25. Jun 2021, 01:16
von hask
Vielen Dank, das klappt gut!