我想展示问卷中两个值的计算,其中用户每个问题选择一个选项。许多测量专有研究来源都有 PDF 文档,例如米兰特维斯塔洛具有这样的功能。我正在考虑如何用 LaTeX 实现它。任务是2+2
从复选框计算(),然后显示结果(4
)。预期的前端如图 1 所示。关于这个问题最有可能的线程答案是答案这里带有etoolbox
包,但采用 2012 年的方法,所以我希望方法有所改进。代码中没有复选框,伽马框不是文本框,因此不接受输入
\documentclass{article}
\usepackage{amssymb}
\usepackage{hyperref}
\begin{document}
\begin{Form}
% TODO make two questions with three checkboxes
% https://tex.stackexchange.com/a/76500/13173
\TextField[maxlen=40,align=2,height=10pt,width=45pt,name=alpha]{Alpha}
\bigskip
\TextField[maxlen=40,align=2,height=10pt,width=45pt,name=beta]{Beta}
\bigskip
\TextField[
maxlen=40,
calculate={%
var f_alpha = this.getField("alpha");
var f_beta = this.getField("beta");
event.value = f_alpha.value + f_beta.value;
},
align=2,height=10pt,width=45pt,name=gamma,readonly=true]{Gamma}
\end{Form}
% Count core here
Summary score:
\end{document}
代码中的错误
- 不阻止选择一个或多个选项。允许每个问题选择两个选项,但计算平均值。然后连接平均值函数。
行动:检查问题(1-2)中点(2)的两处
预期输出:显示值 4总结分数在 Adobe Acrobat 中(acroread
在 Linux 中)
图 1 预期的前端
操作系统:Debian 9
TeXLive:2017
答案1
要使用 创建单选按钮hyperref
,请使用\ChoiceMenu
命令。将其与自定义 JavaScript 命令结合使用,以填充文本字段,如链接答案,我们得到
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\begin{enumerate}
\item \ChoiceMenu[name=football,radio,default=0]{Do you play football?}{Much (2)=2,Little (1)=1,Not at all (0)=0}
\item \ChoiceMenu[name=ice-hockey,radio,default=0]{Do you play ice-hockey?}{Much (2)=2,Little (1)=1,Not at all (0)=0}
\end{enumerate}
\TextField[readonly=true,value=0,calculate={event.value=this.getField("football").value+this.getField("ice-hockey").value;}]{Summary score:}
\end{Form}
\end{document}
请注意,这仅适用于支持 JavaScript 的 PDF 查看器,即您基本上只能使用 Adobe Acrobat(Reader)。
在上面的代码中,使用 预先选择了“完全没有”选项default=0
,以便在回答所有问题之前进行计算。如果您不喜欢从一开始就出现选择符号,请更改default=0
为default=-0
以便停止自动选择“完全没有”字段,并可能从 中hyperref
删除默认值。这样,未回答的问题将以 0 分计入最终结果。value=0
\TextField