![LaTeX - 如何使用 hyperref 包限制计算文本字段中的字符数](https://linux22.com/image/388741/LaTeX%20-%20%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20hyperref%20%E5%8C%85%E9%99%90%E5%88%B6%E8%AE%A1%E7%AE%97%E6%96%87%E6%9C%AC%E5%AD%97%E6%AE%B5%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E6%95%B0.png)
我正在创建一个简单的表单,人们可以在其中输入身高和体重,系统会自动计算相应的 BMI。为此,我使用了 hyperref 包中 \TextField 的“计算”选项。
计算进行得很顺利,但提供的答案给出了一个带有小数的数字(例如 22.491349480...),我想仅出现第一个小数(-> 24.4),并且(如果可能的话)最佳输出是第一位小数的四舍五入数 (->24.5)。
仅当我单击字段内部时,“maxlen=4”命令才有效,但打印输出仍然包含所有小数。
我也尝试过改变字段的宽度,这样可以有效地减少答案,但不可能固定一个可以显示所有可能长度的精确宽度。
有人知道如何做到这一点吗?
这是我的代码:
\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\noindent
\TextField[name=hight,align=0]{Hight [cm]}
\\
\TextField[name=weight,align=0]{Weight [kg]}
\\
\noindent
\TextField[name=BMI, maxlen=4,align=0,readonly=true,
calculate={%
var f_hight = this.getField("hight");
var f_weight = this.getField("weight");
event.value = f_weight.value /((f_hight.value/100)*
(f_hight.value/100));
}]{BMI}
\end{Form}
\end{document}
答案1
\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\noindent
\TextField[name=hight,align=0]{Hight [cm]}
\\
\TextField[name=weight,align=0]{Weight [kg]}
\\
\noindent
\TextField[name=BMI, maxlen=4,align=0,readonly=true,
calculate={%
var f_hight = this.getField("hight");
var f_weight = this.getField("weight");
var n = f_weight.value /((f_hight.value/100)*
(f_hight.value/100));
event.value = n.toFixed(2);
}]{BMI}
\end{Form}
\end{document}