自从我上次更新 Texlive 以来,在同一个文档中加载动画和 exerquiz 时发生了冲突:文档编译后,动画在 Acrobat 中播放良好,但是当我使用另一个不支持动画的阅读器(evince、okular……)打开 pdf 时,我的动画位置只有一个白色矩形,而不是第一帧。
梅威瑟:
\documentclass{standalone}
\usepackage{animate}
%\usepackage{exerquiz} % uncomment this line and the animation preview disappear
\begin{document}
Watch this counter:\begin{animateinline}[loop,autoplay,poster=0,controls]{2}
\multiframe{10}{in=0+1}{%
\fbox{\in}
}
\end{animateinline}
\end{document}
当我编译这个 MWE 并在 evince 中打开它时,我看到 fbox 中的计数器 0 和下面的控件。
当我取消注释\usepackage{exerquiz}
行并编译此 MWE,并用 evince 打开它时,我除了“观看此计数器:”之外什么也看不到;但在 Acrobat 中动画仍然播放。
在我更新 Texlive 之前,这种情况没有发生过;我总是在 evince 中看到第一帧。我该如何恢复以前的行为?
答案1
在包的加载链中的某个点上,以将键放入PDF 目录的字典中hyperref
的方式进行调用。在当前 ISO PDF-2.0 标准中被声明为已弃用。/NeedAppearances true
AcroForm
NeedAppearances
此外,如果设置了的环境(由隐式完成) ,animate
和hyperref
同时想要将Fields
条目写入字典中。AcroForm
hyperref
Form
exerquiz
以下修复抑制了NeedAppearances
PDF 输出并挂接到hyperref
表单字段注册机制:
\documentclass{standalone}
\usepackage{animate}
\usepackage{exerquiz}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Fix compatibility with hyperref Forms %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ExplSyntaxOn
\makeatletter
% suppress deprecated /NeedAppearances true|false
\HyField@NeedAppearancesfalse
% hook into hyperref's Form Field registration
\cs_set_protected_nopar:Nn\pbs_appendtofields:n{
\tl_gput_left:Nx\HyField@afields{#1\space}
}
\makeatother
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Watch this counter:\begin{animateinline}[loop,autoplay,controls]{2}
\multiframe{10}{in=0+1}{%
\fbox{\in}
}
\end{animateinline}
\end{document}