我正在尝试使用 siunitx 创建一个没有前导零的大表\num{}
。也就是说,我有一堆格式如下的数字:
0.001
0.1
1.000
我想要删除 0. 部分。因此输出将是:
.001
.1
1.000
它应该与 add-integer-zero 选项相反(类似于 remove-integer-zero)。我尝试了很多\sisetup
配置,但都没有成功。tex exchange 中的所有问题似乎都与我想要的相反。有没有什么想法可以实现?
提前致谢。
答案1
我同意有人认为这不是一个好主意。但话虽如此,这里有一种方法,使用基于expl3
以下语法构建的:siunitx
\documentclass{article}
\usepackage{siunitx}
\ExplSyntaxOn
\NewDocumentCommand\trimleadingzero{m}{%%
\fp_compare:nTF { 0 < \fp_abs:n { #1 } < 1 }
{
\__trimleadingzero:n {#1}
}
{ #1 }
}
\cs_new_protected:Npn \__trimleadingzero:n #1 {
\seq_set_split:Nnn \l_ae_integer_decimal_parts_seq {.} {#1}
\fp_compare:nF {#1>0}
{ - }
.\seq_item:Nn \l_ae_integer_decimal_parts_seq {2}
}
\ExplSyntaxOff
\begin{document}
\SI[add-integer-zero=false,parse-numbers=false]{\trimleadingzero{0.03}}{}
\SI[add-integer-zero=false,parse-numbers=false]{\trimleadingzero{-0.03}}{}
\end{document}