我有一张包含五列的表格,其中包含十进制数和 10 的幂,我正在尝试使用 siunitx 包进行格式化。我最终想要的是
- 中心价值观
- 按小数点后第二位对齐的值
- 以上两个适用于所有五列。
以下是当前形式的表格的代码:
\documentclass[12pt]{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{table}[h!]
\begin{center}
\begin{tabular}{S|c|c|c|c}
A & B & C & D & E\\
\hline \hline
1.75 & $4.5 (0.2) \times 10^2$ & $1.4 (0.1) \times 10^2$ & $3.4 (0.2) \times 10^2$ & $1.4 (0.1) \times 10^2$ \\
1.65 & $4.8 (0.2) \times 10^2$ & $1.4 (0.1) \times 10^2$ & $3.0 (0.2) \times 10^2$ & $1.6 (0.1) \times 10^2$ \\
1.5 & $5.9 (0.2) \times 10^2$ & $1.8 (0.1) \times 10^2$ & $3.6 (0.2) \times 10^2$ & $2.0 (0.1) \times 10^2$ \\
1.4 & $6.5 (0.3) \times 10^2$ & $1.8 (0.1) \times 10^2$ & $4.4 (0.2) \times 10^2$ & $1.7 (0.1) \times 10^2$ \\
1.25 & $8.0 (0.3) \times 10^2$ & $2.7 (0.2) \times 10^2$ & $5.1 (0.2) \times 10^2$ & $2.0 (0.1) \times 10^2$ \\
1.1 & $10.4 (0.3) \times 10^2$ & $2.9 (0.2) \times 10^2$ & $6.2 (0.3) \times 10^2$ & $2.6 (0.1) \times 10^2$ \\
0.95 & $14.0 (0.4) \times 10^2$ & $3.5 (0.2) \times 10^2$ & $9.4 (0.3) \times 10^2$ & $3.3 (0.2) \times 10^2$ \\
0.8 & $18.2 (0.4) \times 10^2$ & $4.3 (0.2) \times 10^2$ & $12.2 (0.4) \times 10^2$ & $4.1 (0.2) \times 10^2$ \\
0.65 & $27.3 (0.5) \times 10^2$ & $7.4 (0.3) \times 10^2$ & $19.7 (0.4) \times 10^2$ & $5.6 (0.2) \times 10^2$ \\
0.5 & $44.5 (0.7) \times 10^2$ & $11.5 (0.3) \times 10^2$ & $30.9 (0.6) \times 10^2$ & $8.1 (0.3) \times 10^2$\\
\end{tabular}
\captionsetup{width = 0.7\linewidth}
\caption{Observed count rates for each radioactive source measured at various distances. Contained in parentheses are the corresponding Poisson distribution errors.}
\label{tab:ObsCount}
\end{center}
\end{table}
答案1
如果你想有效地利用这个siunitx
包的机制,我建议你将不确定性金额表示为个位数实体;比如说,as(2)
而不是 as (0.2)
。这样你就可以自由地指定选项separate-uncertainty
;请参阅下面的第二个表格。
一个单独的建议:我建议你将环境tabular
和\caption
指令都放在一个环境中threeparttable
;这样,LaTeX 会自动将标题字符串的宽度限制为相关tabular
环境的宽度。我还会删除所有垂直规则。
\documentclass[12pt]{article}
\usepackage[a4paper,margin=2.5cm]{geometry} % set page parameters as needed
\usepackage{siunitx} % for 'S' column type
\usepackage{booktabs} % for well-spaced horizontal rules
\usepackage{threeparttable} % for 'threeparttable' environment
\begin{document}
\begin{table}
\centering
\begin{threeparttable}
\begin{tabular}{@{} S[table-format=1.2]
*{4}{S[table-format=2.1(1)e1]}
@{}}
{A} & {B} & {C} & {D} & {E} \\
\midrule
1.75 & 4.5(2)e2 & 1.4(1)e2 & 3.4(2)e2 & 1.4(1)e2 \\
1.65 & 4.8(2)e2 & 1.4(1)e2 & 3.0(2)e2 & 1.6(1)e2 \\
1.5 & 5.9(2)e2 & 1.8(1)e2 & 3.6(2)e2 & 2.0(1)e2 \\
1.4 & 6.5(3)e2 & 1.8(1)e2 & 4.4(2)e2 & 1.7(1)e2 \\
1.25 & 8.0(3)e2 & 2.7(2)e2 & 5.1(2)e2 & 2.0(1)e2 \\
\end{tabular}
\caption{Observed count rates for each radioactive source measured at various distances. Contained in parentheses are the corresponding Poisson distribution errors.}
\label{tab:ObsCountX}
\end{threeparttable}
\bigskip\bigskip
\begin{threeparttable}
\begin{tabular}{@{} S[table-format=1.2]
*{4}{S[table-format=2.1(1)e1,separate-uncertainty]}
@{}}
{A} & {B} & {C} & {D} & {E} \\
\midrule
1.1 & 10.4(3)e2 & 2.9(2)e2 & 6.2(3)e2 & 2.6(1)e2 \\
0.95 & 14.0(4)e2 & 3.5(2)e2 & 9.4(3)e2 & 3.3(2)e2 \\
0.8 & 18.2(4)e2 & 4.3(2)e2 & 12.2(4)e2 & 4.1(2)e2 \\
0.65 & 27.3(5)e2 & 7.4(3)e2 & 19.7(4)e2 & 5.6(2)e2 \\
0.5 & 44.5(7)e2 & 11.5(3)e2 & 30.9(6)e2 & 8.1(3)e2 \\
\end{tabular}
\caption{Observed count rates for each radioactive source measured at various distances. Contained in parentheses are the corresponding Poisson distribution errors.}
\label{tab:ObsCountX}
\end{threeparttable}
\end{table}
\end{document}
答案2
第一个解决方案:每个值 2 列
您可以@
在表格定义中使用:它设置列分隔符。$r @{$\times$} l$
您可以为每个值使用两列;第一列用于数字,第二列用于十的幂。
编辑:每个值 3 列
>{...}
您可以使用和来做得更好<{...}
,它们在列之前和之后添加内容。例如,>{$} c <{$}
是数学模式下的居中列。
然后,每个值使用 3 列:
- 第一个用于数字,在数学模式下右对齐:
>{$} r <{$}
。 - 第二个代表不确定性,在数学模式下用括号括起来:
>{$(} c <{)$}
。 - 第三个为十的幂,左对齐:
>{$\times 10\expandafter^\bgroup} l <{\egroup$}
。这里\bgroup
和的\egroup
意思是{
和}
,\expandafter
需要一点技巧把列的内容放在上标中。
$
有了这些定义,表格中就不需要了。用@{}
列之间的分隔符来删除。
请注意,如果需要,可以定义新的列类型:
\newcolumntype{R}{>{$} r <{$}}
\newcolumntype{U}{>{$(} c <{)$}}
\newcolumntype{P}{>{$\times 10\expandafter^\bgroup} l <{\egroup$}}
完整代码:
\documentclass[12pt]{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}
{
S *{4}{
>{$} r <{$} @{} % number
>{$(} c <{)$} @{} % uncertainty
>{$\times 10\expandafter^\bgroup} l <{\egroup$} % power of ten
}
}
\toprule
A &
\multicolumn{3}{c}{B} &
\multicolumn{3}{c}{C} &
\multicolumn{3}{c}{D} &
\multicolumn{3}{c}{E} \\
\midrule
1.75 & 4.5 & 0.2 & 2 & 1.4 & 0.1 & 2 & 3.4 & 0.2 & 2 & 1.4 & 0.1 & 2 \\
1.65 & 4.8 & 0.2 & 2 & 1.4 & 0.1 & 2 & 3.0 & 0.2 & 2 & 1.6 & 0.1 & 2 \\
1.5 & 5.9 & 0.2 & 2 & 1.8 & 0.1 & 2 & 3.6 & 0.2 & 2 & 2.0 & 0.1 & 2 \\
1.4 & 6.5 & 0.3 & 2 & 1.8 & 0.1 & 2 & 4.4 & 0.2 & 2 & 1.7 & 0.1 & 2 \\
1.25 & 8.0 & 0.3 & 2 & 2.7 & 0.2 & 2 & 5.1 & 0.2 & 2 & 2.0 & 0.1 & 2 \\
1.1 & 10.4 & 0.3 & 2 & 2.9 & 0.2 & 2 & 6.2 & 0.3 & 2 & 2.6 & 0.1 & 2 \\
0.95 & 14.0 & 0.4 & 2 & 3.5 & 0.2 & 2 & 9.4 & 0.3 & 2 & 3.3 & 0.2 & 2 \\
0.8 & 18.2 & 0.4 & 2 & 4.3 & 0.2 & 2 & 12.2 & 0.4 & 2 & 4.1 & 0.2 & 2 \\
0.65 & 27.3 & 0.5 & 2 & 7.4 & 0.3 & 2 & 19.7 & 0.4 & 2 & 5.6 & 0.2 & 2 \\
0.5 & 44.5 & 0.7 & 2 & 11.5 & 0.3 & 2 & 30.9 & 0.6 & 2 & 8.1 & 0.3 & 2 \\
\bottomrule
\end{tabular}
\caption{Observed count rates for each radioactive source measured at various
distances. Contained in parentheses are the corresponding Poisson
distribution errors.}
\label{tab:ObsCount}
\end{table}
\end{document}