Я делаю несколько слайдов для интеграции с помощью Beamer, но у меня возникли проблемы с созданием таймера. Мне нужен таймер обратного отсчета для каждого слайда (например, 2 мин и 30 секунд) и автоматический переход к следующему слайду, когда таймер истечет (второй слайд — ответ на первый слайд). После того, как я нажал на третий слайд (следующий вопрос), таймер обратного отсчета сбросился и автоматически запустился.
Я искал примеры в Overleaf, но сам шаблон не отображался правильно в Overleaf. Я не могу найти никакой другой поддержки (все шаблоны таймеров, похоже, созданы одним и тем же парнем), поэтому я здесь прошу поддержки.
Хотя не очень-то хочется говорить это вслух, я новичок в Beamer, поэтому, пожалуйста, оставьте мне немного кода. Было бы здорово, если бы вы сделали пример по моему запросу. Кроме того, поскольку я использую Overleaf в качестве компилятора, иногда код, который работает в другом месте (например, VS Code), может не работать в Overleaf. Пожалуйста, дайте мне версию Overleaf, если есть разница. Спасибо~
решение1
Вы можете создать свой собственный небольшой обратный отсчет, используя макрос Beamer \transduration
для автоматического переключения слайдов (просмотрите PDF-файл с помощью Adobe Reader в режиме презентации):
\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}
С отдельными рамками:
\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}