我对siunitx
包。在某些情况下,舍入不正确(逗号的位置不正确,请参阅下面我提供的 MWE)。
你有什么建议吗?
\documentclass[12pt, a4paper]{scrartcl}
\usepackage{siunitx}
\sisetup{round-mode=uncertainty, uncertainty-mode = separate, round-precision=3}
\begin{document}
Hello, this is a test with the package siuntix:
\num{0.478747 \pm 0.231349} (correct rounding)
\num{0.266548 \pm 10.8466}
The correct output should be instead: 0.3\,\pm \,10.8
\end{document}
答案1
的下一个版本siunitx
将检查是否有足够的数字来对不确定度进行舍入以给出非零结果。目前,使用:
\cs_gset:Npn \__siunitx_number_round_uncertainty:nnn #1#2#3
{
\__siunitx_number_round_uncertainty_check:nnnw {#1} {#2} {#3}
#1#2 \q_recursion_tail \q_recursion_stop
}
\cs_new:Npn \__siunitx_number_round_uncertainty_check:nnnw #1#2#3#4
{
\quark_if_recursion_tail_stop_do:Nn #4 { { 0 } { } { } }
\int_compare:nNnTF {#4} = 0
{ \__siunitx_number_round_uncertainty_check:nnnw }
{ \__siunitx_number_round_uncertainty_check:Nnnnw #4 }
{#1} {#2} {#3}
}
\cs_new:Npn \__siunitx_number_round_uncertainty_check:Nnnnw #1#2#3#4#5
\q_recursion_tail \q_recursion_stop
{
\int_compare:nNnTF { \tl_count:n {#1#5} } < { \tl_count:n {#4} }
{ { 0 } { } { } }
{\__siunitx_number_round_uncertainty_aux:nnn {#2} {#3} {#4} }
}
\cs_gset:Npn \__siunitx_number_round_uncertainty_aux:nnn #1#2#3
{
\exp_args:Nf \__siunitx_number_round_uncertainty:nnnn
{
\int_eval:n
{ \tl_count:n {#3} - \l__siunitx_number_round_precision_int }
}
{#1} {#2} {#3}
}
(请注意,这确实不是给出你的“预期”结果,但这是错误的,因为不确定性使得数据中没有有用的价值。)