Beamer: Gleiche Seitennummer für Slides in "allowframebreaks" Thema ist als GELÖST markiert

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


hask
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Do 11. Apr 2013, 22:31

Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"

Beitrag 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


Grummelgast

Re: Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"

Beitrag 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.


hask
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Do 11. Apr 2013, 22:31

Re: Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"

Beitrag von hask »

Vielen Dank, das klappt gut!


Antworten