这是一张表格,但它有一个问题:1、20、50 和 100 的列与其他列没有完全对齐。我该怎么做?
平均能量损失
\documentclass{article}
\usepackage{siunitx,booktabs,multirow}
\begin{document}
\begin{table}[htp]
\centering
\begin{tabular}{lS[table-format=4.5]
S[table-format=4.5]
S[table-format=4.5]
S[table-format=4.5]}
\toprule
\multirow{2}*{\textsc{PEP}} & \multicolumn{4}{c}{Nodi} \\ \cmidrule(lr){2-5}
& 1 & 20 & 50 & 100 \\ \midrule
1e-06 & 1 & 1 & 1 & 1.0001 \\
1e-05 & 1 & 1.0002 & 1.0005 & 1.001 \\
0.0001 & 1.0001 & 1.002 & 1.005 & 1.0099 \\
0.001 & 1.001 & 1.0198 & 1.0486 & 1.0952 \\
0.01 & 1.01 & 1.1846 & 1.4 & 1.6447 \\
0.1 & 1.1111 & 2.084 & 2.4454 & 2.7404 \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
列的格式S
应反映实际值。要使标题居中,可以使用\multicolumn{1}{c}{...}
,但只需将值括在括号中即可停止siunitx
使用数字对齐并使用默认的居中(感谢 Qrrbrbirlbel 对此的说明)
\documentclass{article}
\usepackage{siunitx,booktabs}
\begin{document}
\begin{tabular}{lS[table-format=1.4]
S[table-format=1.4]
S[table-format=1.4]
S[table-format=1.4]}
\toprule
PEP & \multicolumn{4}{c}{Nodi} \\
\cmidrule(lr){2-5}
& {1} & {20} & {50} & {100} \\
\midrule
\num{1e-06} & 1 & 1 & 1 & 1.0001 \\
\num{1e-05} & 1 & 1.0002 & 1.0005 & 1.001 \\
\num{0.0001}& 1.0001 & 1.002 & 1.005 & 1.0099 \\
\num{0.001} & 1.001 & 1.0198 & 1.0486 & 1.0952 \\
\num{0.01} & 1.01 & 1.1846 & 1.4 & 1.6447 \\
\num{0.1} & 1.1111 & 2.084 & 2.4454 & 2.7404 \\
\bottomrule
\end{tabular}
\end{document}
没有必要使用\multirow
;我认为将“PEP”放在水平线旁边会破坏表格。当然\textsc
不会对它造成任何影响。