如何显示使用动画包创建的幻灯片的帧计数器?

如何显示使用动画包创建的幻灯片的帧计数器?

在我较大的 PDF 文档中,我有一个幻灯片,它逐步显示使用 animateinline 环境创建的一组帧。我想添加一个帧计数器,形式为“第 12 帧,共 32 帧”。

我可以想象两种可能的方法:

  • 当动画包创建帧时,如果有一个与帧号相对应的 LaTeX 计数器,那么它可以简单地显示为该帧的一部分。
  • 或者,在播放帧时,使用一些 JavaScript 来更新页面上某处显示的帧计数器。我从动画文档中知道我可以获取或设置帧号,但不知道如何显示和更新此信息。

答案1

以下示例使用animate-internal 计数器和宏将信息(帧计数)写入文件aux。这对应于您建议的第一个方法。使用命令插入计数器\framecounter

\documentclass{article}
\usepackage{animate}

%%%%%%%%%%%%%%%%%%%%%%%% \framecounter %%%%%%%%%%%%%%%%%%%%%%%%%
% Within `animateinline', inserts `curr. #frame / total #frame'.
\makeatletter
\newcommand\framecounter{%
  \edef\the@frame{\the\numexpr\@anim@curframe@zb+1\relax}%
  \@anim@keytoaux{a\the\@[email protected]}{\the@frame}%
  \framebox[\widthof{%
    -\@anim@getkeyval{a\the\@[email protected]}/%
    \@anim@getkeyval{a\the\@[email protected]}-%
  }]{\strut\the@frame/\@anim@getkeyval{a\the\@[email protected]}}%
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcommand\mybox[1]{\framebox[\widthof{-jumps-}]{\strut#1}}

\begin{document}

\begin{animateinline}[
  step,
  end=\framecounter %insert at the end of every frame
]{1}
  \mybox{The}
\newframe
  \mybox{quick}
\newframe
  \mybox{brown}
\newframe
  \mybox{fox}
\newframe
  \mybox{jumps}
\newframe
  \mybox{over}
\newframe
  \mybox{the}
\newframe
  \mybox{lazy}
\newframe
  \mybox{dog.}
\end{animateinline}

\end{document}

相关内容