Wie kann ich in Beamer einen Countdown-Timer erstellen?

Wie kann ich in Beamer einen Countdown-Timer erstellen?

Ich erstelle einige Integration Bee-Folien mit Beamer, habe aber Probleme, einen Timer zu erstellen. Ich brauche einen Countdown-Timer für jede Folie (sagen wir 2 Minuten und 30 Sekunden) und möchte automatisch zur nächsten Folie wechseln, wenn der Timer abgelaufen ist (die zweite Folie ist die Antwort auf die erste Folie). Nachdem ich auf die dritte Folie geklickt habe (nächste Frage), wurde der Countdown-Timer zurückgesetzt und startete automatisch.

Ich habe in Overleaf nach einigen Beispielen gesucht, aber die Vorlage selbst wurde in Overleaf nicht richtig angezeigt. Ich kann keine andere Unterstützung finden (alle Timer-Vorlagen scheinen vom selben Typen erstellt worden zu sein), also bitte ich hier um Unterstützung.

Es ist allerdings nicht sehr stolz, das laut auszusprechen, ich bin ein Anfänger in Beamer, also hinterlassen Sie mir bitte etwas Code. Es wäre fantastisch, wenn Sie ein Beispiel basierend auf meiner Anfrage erstellen würden. Da ich Overleaf als meinen Compiler verwende, funktioniert ein Code, der woanders funktioniert (z. B. VS Code), manchmal nicht für Overleaf. Bitte geben Sie mir die Overleaf-Version, wenn es einen Unterschied gibt. Danke~

Antwort1

Sie können Ihren eigenen kleinen Countdown erstellen, indem Sie das Beamer- \transdurationMakro zum automatischen Wechseln der Folien verwenden (sehen Sie sich das PDF mit Adobe Reader im Präsentationsmodus an):

\documentclass{beamer}

\usepackage{pgffor}
\makeatletter
\newcommand{\countdown}[1]{
  \transduration<1-#1>{1}
  \foreach \macro in {#1,...,1}{\only<+>{\pgfmathparse{int((\macro-mod(\macro,60))/60)}\pgfmathresult:\pgfmathparse{int(mod(\macro,60))}\two@digits{\pgfmathresult}}}
}
\makeatother

\begin{document}

\begin{frame}
  Problem 
  
  \countdown{150}
  
  \only<+->{Solution}
\end{frame}

\end{document}

Bildbeschreibung hier eingeben


Mit separaten Rahmen:

\documentclass{beamer}

\usepackage{pgffor}
\makeatletter
\newcommand{\countdown}[1]{
  \begin{frame}
  \transduration<1->{1}
  \foreach \macro in {#1,...,1}{\only<+>{\pgfmathparse{int((\macro-mod(\macro,60))/60)}\pgfmathresult:\pgfmathparse{int(mod(\macro,60))}\two@digits{\pgfmathresult}}}
  \end{frame}
}
\makeatother

\begin{document}

\begin{frame}
\transduration<1->{1}
  Problem 
\end{frame}
\countdown{150}

\begin{frame}
  Solution
\end{frame}

\end{document}

verwandte Informationen