我喜欢使用numprint
数值来格式化表格,因为它可以提高可读性和对齐性。但是,有时我想对特定列使用不同的舍入设置,这会给我带来问题。以下是一个例子
\documentclass{article}
\usepackage{booktabs,numprint}
\begin{document}
\begin{table}
\nprounddigits{9}%decimal places to print
\centering
\caption{Example MWE table with \texttt{numprint}}
\begin{tabular}{cn{2}{9}n{2}{9}c}
%\begin{tabular}{cn{2}{9}n{2}{9}n{2}{4}}
\toprule
label & \multicolumn{1}{c}{$c_0$} & \multicolumn{1}{c}{$c_1$} & \multicolumn{1}{c}{Offset} \\
\midrule
1 & 0.0312345678965644 & 14.19485626621957 & 0.0041 \\
2 & 0.0398765432197208 & 14.46309465237807 & -0.0033 \\
3 & 0.0369384756293342 & 14.44623978976586 & -0.0012 \\
4 & 0.0359572496569465 & 14.45124808402672 & -0.0123 \\
5 & 0.0348962975438688 & 14.74567899523164 & -0.1234 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
在这种情况下,最右边的列未通过 排版numprint
,并且小数点未对齐。numprint
为此列激活 非常容易。只需要将中的最后一个 切换c
为,如注释行所示。但这也会打印与其他列相同的舍入位数。我想用 打印最后一列,但我不知道是否可能。我查看了该软件包的文档、SE 论坛和 Google 上的常规操作,但没有成功。因此,我选择了示例中显示的选项“最后一列为否”。有人可以分享一些关于这种可能性的建议吗?我的意思是,为单个列设置一个舍入参数。n{2}{4}
\begin{tabular}{cn{2}{9}n{2}{9}c}
\nprounddigits{4}
numprint
numprint
谢谢
答案1
我可以建议切换到siunitx
? 它允许您逐列切换元素的格式和舍入:
\documentclass{article}
\usepackage{booktabs,siunitx}
\sisetup{
table-auto-round = true % Round numbers in S-columns
}
\begin{document}
\begin{table}
\centering
\caption{Example MWE table with \texttt{siunitx}}
\begin{tabular}{
c % label
S[table-format = 1.9] % c_0
S[table-format = 2.9] % c_1
S[table-format = 2.4] % Offset
}
\toprule
label & \multicolumn{1}{c}{$c_0$} & \multicolumn{1}{c}{$c_1$} & \multicolumn{1}{c}{Offset} \\
\midrule
1 & 0.0312345678965644 & 14.19485626621957 & 0.0041 \\
2 & 0.0398765432197208 & 14.46309465237807 & -0.0033 \\
3 & 0.0369384756293342 & 14.44623978976586 & -0.0012 \\
4 & 0.0359572496569465 & 14.45124808402672 & -0.0123 \\
5 & 0.0348962975438688 & 14.74567899523164 & -0.1234 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}