使用 hyperref 进行交互公式

使用 hyperref 进行交互公式

我尝试使用 Overleaf 制作数字角色扮演玩家表,我希望其中有可填充的框,其中的值将被提取并用于某些公式中。例如,我想创建类似这样的内容:

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\TextField{Strength:} \\
\TextField{Magic:} \\
\TextField{Speed:} \\
% AvgStat = sum numbers in Strength, magic and speed boxes divided by 3.   
Your average stat is: \textbf{AvgStat} 
\end{document}

变成

在此处输入图片描述

在这里我可以填写统计数据,但我不知道如何计算它们的平均值,将填充的文本提取成我可以使用的东西,如公式,或者是否有可能。

从其他示例中,我发现使用 hyperref 包似乎可以将填写的内容发送到服务器,但是否可以直接在最终的 PDF 中使用,无论是在他们输入时还是使用某些刷新按钮。

答案1

为了真正发挥作用,所有字段都需要放在一个Form环境中。然后,您可以通过选项告诉字段calculate它应该计算什么。

计算使用 JavaScript 来表达。您基本上定义event.value,而其他字段的内容可以使用 来评估this.getField("<FieldName>").value。为此,您应该使用 选项命名其他字段name

另外,也许您可​​能想要创建计算字段readonly并将其初始设置value为 0(零)。

\documentclass{article}
\usepackage{hyperref}

\begin{document}

\begin{Form}
\noindent%
\TextField[name=Strength]{Strength:} \\
\TextField[name=Magic]{Magic:} \\
\TextField[name=Speed]{Speed:} \\

% AvgStat = sum numbers in Strength, magic and speed boxes divided by 3.
\noindent%
Your average stat is: \TextField[name=AvgStat, calculate={
  event.value = ( 
    this.getField("Strength").value +
    this.getField("Magic").value +
    this.getField("Speed").value ) / 3;
}, readonly, value=0]{} 
\end{Form}

\end{document}

在此处输入图片描述

相关内容