在数字表中对齐 siunitx 列

在数字表中对齐 siunitx 列

这是一张表格,但它有一个问题: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不会对它造成任何影响。

在此处输入图片描述

相关内容