我只需除以 即可300pt
得到5mm
结果,无论是pt
还是mm
单位。但我得到的是其他结果。
\documentclass[varwidth]{standalone}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
% following is 60.0ptmm (which is 300/5,
% not to mention silly units; ridiculous)
\dim_eval:n{300pt/5mm}\\
% following is 14.22636pt (I guess/hope it's correct
% conversion of 5mm to pt units)
\dim_eval:n{5mm}\\
% following is 21.42857pt (which is 300/14,
% not 300/14.22636)
% followed by .22636pt (decimal of 14.22636pt;
% which is also ridiculous)
\dim_eval:n{300pt/14.22636pt}
\ExplSyntaxOff
\end{document}
当用毫米除以内部点时,如何获得正确的pt
单位结果(如果答案能够显示单位结果,mm
将不胜感激)\dim_eval:n
?
答案1
\dim_eval:n
使用 ε-TeX\dimexpr
进行计算,\dimexpr
不进行浮点运算;它只能用整数除以维度。当你这样做时,你会得到
\dim_eval:n{300pt/5mm}
实际上是
\dim_eval:n{300pt/5}mm
(因此被称为“愚蠢的单位”),并且
\dim_eval:n{300pt/14.22636pt}
你实际上正在做
\dim_eval:n{300pt/14}.22636pt
这正是您所看到的输出。
使用\fp_to_dim:n
(或\fp_to_decimal:n
如果您不想要单位)。对于expl3
早于2019 年 5 月 23 日您需要将分母放在括号内,以便将单位与数字联系起来。在较新的版本中,乘法通过并置(例如, 5mm
或2pi
)比显式乘法和除法具有更高的优先级,因此单位在除法之前转换:
\documentclass[varwidth]{standalone}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\fp_to_dim:n{300pt/5mm}\\
% \fp_to_dim:n{300pt/(5mm)}\\
\fp_to_dim:n{5mm}\\
% \fp_to_dim:n{300pt/(14.22636pt)}
\fp_to_dim:n{300pt/14.22636pt}
\ExplSyntaxOff
\end{document}