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

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: Beamer: Gleiche Seitennummer für Slides in "allowframebreaks"

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

von hask » Fr 25. Jun 2021, 01:16

Vielen Dank, das klappt gut!

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

von Grummelgast » Do 24. Jun 2021, 10:59

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.

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

von hask » Do 24. Jun 2021, 01:32

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


Nach oben