删除 siunitx 中的前导 0

删除 siunitx 中的前导 0

我正在尝试使用 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}

在此处输入图片描述

相关内容