exerquiz 和 animate 之间的冲突:无预览

exerquiz 和 animate 之间的冲突:无预览

自从我上次更新 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 trueAcroFormNeedAppearances

此外,如果设置了的环境(由隐式完成) ,animatehyperref同时想要将Fields条目写入字典中。AcroFormhyperrefFormexerquiz

以下修复抑制了NeedAppearancesPDF 输出并挂接到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}

相关内容