我想测试Form
提供的环境hyperref
,尤其是\CheckBox
和,并且在与语言选项一起使用\PushButton
时遇到行为错误。babel
ngerman
其目的是一次\PushButton
提供一个复选框并使用一些代码,但我并不是这方面的专家。activate all
JavaScript
JavaScript
只要ngerman
不用作语言选项,代码就会按预期工作,我Adobe Acrobat DC 11
在 Windows 10 和PdfStudio Pro 2019
Linux 上进行了测试。
单击ngerman
激活的按钮没有任何反应,即JavaScript
代码失败,但我怀疑所需的标签名称存在问题hyperref
。
我在 Linux 上使用 pdflatex 和 TeXLive 2020,最新更新于今天。
这个问题有解决办法吗?我想保留它,babel
因为我的许多文档都依赖于它ngerman
,而且在我的一些旧文档中,如果能有“交互”功能Form
就好了,当然是在更改了一些其他代码之后。
我认为以下代码非常简单,并且展示了该功能。附带的屏幕截图显示了所需的功能,目前只能通过删除ngerman
选项来实现。
\documentclass[11pt,ngerman]{article}
\usepackage{babel}
\usepackage{hyperref}
\begin{document}
\parindent=0em
\begin{Form}
\begin{tabular}{l}
\CheckBox[name=abox]{A} \tabularnewline \tabularnewline
\CheckBox[name=bbox]{B} \tabularnewline \tabularnewline
\CheckBox[name=cbox]{C} \tabularnewline \tabularnewline
\CheckBox[name=dbox]{D} \tabularnewline \tabularnewline
\end{tabular}
\bigskip
\PushButton[name=activateall,onclick={%
this.getField("abox").value="Yes";
this.getField("bbox").value="Yes";
this.getField("cbox").value="Yes";
this.getField("dbox").value="Yes";
}]{Activate all}
\end{Form}
\end{document}
答案1
本地停用速记:
\documentclass[11pt,ngerman]{article}
\usepackage{babel}
\usepackage{hyperref}
\begin{document}
\parindent=0em
\begin{Form}
\begin{tabular}{l}
\CheckBox[name=abox]{A} \tabularnewline \tabularnewline
\CheckBox[name=bbox]{B} \tabularnewline \tabularnewline
\CheckBox[name=cbox]{C} \tabularnewline \tabularnewline
\CheckBox[name=dbox]{D} \tabularnewline \tabularnewline
\end{tabular}
\bigskip
\shorthandoff{"}
\PushButton[name=activateall,onclick={%
this.getField("abox").value="Yes";
this.getField("bbox").value="Yes";
this.getField("cbox").value="Yes";
this.getField("dbox").value="Yes";
}]{Activate all}
\end{Form}
\end{document}