我喜欢默认行为包裹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}
输出
siunitx
和 PGF
如果您想使用siunitx
PGF 的数字打印系统始终如一 你们应该一起看看siunitx
“小”\SendSettingsToPgf
宏。
来自siunitx
手动的,第 7.9 节“将设置传输至 PGF”,第 63 页:
包中的数值引擎
pgf
具有与 中的设置类似的设置siunitx
。为了能够轻松使用这两个包,\SendSettingsToPgf
可以使用宏。它将 中的一些常用数字格式选项设置为pgf
使用的当前值,以使最终用户更方便地一起使用这两个包。在加载和 包siunitx
后,可以随时使用此函数。pgf
siunitx
由于按默认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}