在我较大的 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}