我试图将角度四舍五入为 3 位有效数字,并且输入是一个表达式而不是数字。对于\qty
和 来说很容易\num
:
\num[evaluate-expression, round-mode=figures, round-precision=3, round-pad=false]{22/7} %3.14
但是,显然它并没有延伸到\ang
。类似的选项根本不起作用:
\ang[evaluate-expression, round-mode=figures, round-precision=3, round-pad=false]{22/7} %3.142857.....
我想知道为什么相同的选项可以工作,\num
但手册\ang
中siunitx
没有提到选项仅适用于特定功能,我该怎么办?谢谢。
答案1
这是一个疏忽,我已记录为https://github.com/josephwright/siunitx/issues/546。在修复程序发布之前,您可以使用
\cs_gset_protected:Npn \siunitx_angle:n #1
{
\bool_if:NTF \l__siunitx_angle_force_arc_bool
{ \exp_args:Ne \__siunitx_angle_arc_convert:n { \fp_eval:n {#1} } }
{
\siunitx_number_parse:nN {#1} \l__siunitx_angle_degrees_tl
\siunitx_number_process:NN \l__siunitx_angle_degrees_tl \l__siunitx_angle_degrees_tl
\tl_set:Nx \l__siunitx_angle_degrees_tl
{ \siunitx_number_output:NN \l__siunitx_angle_degrees_tl \q_nil }
\__siunitx_angle_arc_print:VVV
\l__siunitx_angle_degrees_tl
\c_empty_tl
\c_empty_tl
}
}