使用该包编译表单hyperref
并在存在该animate
包的情况下,LuaLaTeX 有一半会失败,但使用 PDFLaTeX 时始终可以正常工作。
此外,由于未知的原因(Okular 或hyperref
包的 JavaScript 实现?),它仅适用于 Adobe Reader DC(在 Linux 上通过 Wine/Snapd),而不适用于 Okular。
我是否遗漏了什么?
\documentclass{article}
\usepackage{animate}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\PushButton[name=myButton,
borderwidth=1px,bordercolor={0 0 0},
onclick={
this.getField("myTextBox").value += 1;
}
]{CLICK ME}
\TextField[name=myTextBox,
borderwidth=1px,bordercolor={0 0 0},readonly=true]{Counter}
\end{Form}
\end{document}
答案1
这是 pdfbase 中的一个错误。它给 \pdfpageref 提供了一个错误的定义。(这也是 hyperref 中的一个错误,它不应该将 \pdfpageref 与 lualatex 一起使用,而应该直接使用 luatex 原语)
\documentclass{article}
\usepackage{animate}
\def\pdfpageref{\pdffeedback pageref}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\tracingmacros=1
\PushButton[name=myButton,
borderwidth=1px,bordercolor={0 0 0},
onclick={
this.getField("myTextBox").value += 1;
}
]{CLICK ME}
\TextField[name=myTextBox,
borderwidth=1px,bordercolor={0 0 0},readonly=true]{Counter}
\end{Form}
\end{document}
答案2
如果涉及 PDF 表单,hyperref
并且animate
想要同时在多个全局 PDF 对象上写入。
其他实现交互式 PDF 内容的 LaTeX 软件包之间可能也存在类似的冲突。为了解决这个问题,LaTeX3 团队正在为软件包作者开发一个通用接口,使他们能够编写兼容的 PDF 相关代码:pdfmanagement-testphase
。它尚未包含在默认的 LaTeX 内核中,必须明确启用:
\RequirePackage{pdfmanagement-testphase} % load the package
\DeclareDocumentMetadata{} % activates the PDF management interface
\documentclass{article}
\usepackage{animate}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\PushButton[name=myButton,
borderwidth=1px,bordercolor={0 0 0},
onclick={
this.getField("myTextBox").value += 1;
}
]{CLICK ME}
\TextField[name=myTextBox,
borderwidth=1px,bordercolor={0 0 0},readonly=true]{Counter}
\end{Form}
\end{document}