siunitx独立的PGF解决方案

siunitx独立的PGF解决方案

我喜欢默认行为包裹siunitx千位分隔符是不是适用于四位数字,但当数字数量超过四位时应用。在包含的文档中pgfplots\pgfmathprintnumber用于格式化数字,但它不会表现出以下行为:

在此处输入图片描述

是否有一个设置来\pgfmathprintnumber格式化类似于包\num中的宏的数字siunitx,以便可以自由使用任一方法来格式化数字

代码:

\documentclass{article}

\usepackage{siunitx}
\usepackage{pgf}

\sisetup{
    group-digits=true,
    group-separator={\,},
}

\pgfkeys{/pgf/number format/.cd, set thousands separator={\,}}%

\begin{document}
\begin{tabular}{rll}
siunitx: &\num{9000}                &\num{19000} \\
    pgf: &\pgfmathprintnumber{9000} &\pgfmathprintnumber{19000} \\
\end{tabular}
\end{document}

答案1

siunitx独立的PGF解决方案

在 PGF 中可以使用以下样式实现将siunitx选项设置为 false的相同行为。group-four-digits/pgf/number format/min exponent for 1000 sep

来自PGF 手册, 第 66.1 节“更改显示样式”, 第 547 页:

/pgf/number format/min exponent for 1000 sep={<number>}(最初无默认值0

定义绘制千位分隔符所需的科学计数法中的最小指数。指数是位数减一,因此<number>= 4 将使用以 1e4 = 10000 开头的千位分隔符。

0将禁用此功能(负值将被忽略)。

代码

\documentclass{article}

\usepackage{siunitx}
\usepackage{pgf}

\sisetup{
    group-digits=true,
    group-separator={\,},
}

\pgfkeys{
    /pgf/number format/.cd,
        set thousands separator={\,},
        min exponent for 1000 sep=4,
}

\begin{document}
\begin{tabular}{rll}
siunitx: &\num{9000}                &\num{19000} \\
    pgf: &\pgfmathprintnumber{9000} &\pgfmathprintnumber{19000} \\
\end{tabular}
\end{document}

输出

输出 1000 sep 的最小指数 = 4

siunitx和 PGF

如果您想使用siunitxPGF 的数字打印系统始终如一  你们应该一起看看siunitx“小”\SendSettingsToPgf宏。

来自siunitx手动的,第 7.9 节“将设置传输至 PGF”,第 63 页:

包中的数值引擎pgf具有与 中的设置类似的设置siunitx。为了能够轻松使用这两个包,\SendSettingsToPgf可以使用宏。它将 中的一些常用数字格式选项设置为pgf使用的当前值,以使最终用户更方便地一起使用这两个包。在加载和 包siunitx后,可以随时使用此函数。pgfsiunitx

由于按默认group-four-digits设置,false因此您的示例中无需进行进一步调整。

代码

\documentclass{article}

\usepackage{siunitx}
\usepackage{pgf}

\sisetup{
    group-digits=true,
    group-separator={\,},
%   group-four-digits=false,% default setting
}
\SendSettingsToPgf

\begin{document}
\begin{tabular}{rll}
siunitx: &\num{9000}                &\num{19000} \\
    pgf: &\pgfmathprintnumber{9000} &\pgfmathprintnumber{19000} \\
\end{tabular}
\end{document}

输出

\SendSettingsToPgf 的输出

相关内容