使用 siunitx 后将值与列对齐

使用 siunitx 后将值与列对齐

基于讨论后,我制作了下表:

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{caption}


\begin{document}

\begin{table}[ht]
\centering\setlength\extrarowheight{2pt}
\caption{Mean by Year and Group}
\begin{tabular}{@{\extracolsep{4pt}}llc*{2}{S@{\enspace}S@{\enspace}S}}
\toprule   
{} & {} & {Sample} & \multicolumn{3}{c}{Median}  & \multicolumn{3}   {c}{SD}\\
\cmidrule(lr){3-3} 
\cmidrule(lr){4-6} 
\cmidrule(lr){7-9} 
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\ 
\midrule
   2012  & Control & 2 & 10.052 & 0.294 & 10000.115 & 0.04 & 0.619 & 0.611 \\ 
         & Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\ 
   2016  & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\ 
         & Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

有人能帮我把V1V2V3列与每列的值对齐吗?我的意思是,使用siunitx包后,列标题与数字的开头对齐,而不是与数字的中心对齐。

答案1

可能的解决方案是使用\multicolumn{1}{c}{..},但用括号括V1起来V2V3@Troy 在评论中给出的更好的解决方案。

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{caption}    

\begin{document}

\newcommand{\M}[1]{\multicolumn{1}{c}{#1}}

\begin{table}[ht]
\centering\setlength\extrarowheight{2pt}
\caption{Mean by Year and Group}
\begin{tabular}{@{\extracolsep{4pt}}llc*{2}{S@{\enspace}S@{\enspace}S}}
\toprule   
{} & {} & {Sample} & \multicolumn{3}{c}{Median}  & \multicolumn{3}   {c}{SD}\\
\cmidrule(lr){3-3} 
\cmidrule(lr){4-6} 
\cmidrule(lr){7-9} 
Year & Group & N & \M{V1} & \M{V2} & \M{V3} & \M{V1} & \M{V2} & \M{V3} \\ 
\midrule
   2012  & Control & 2 & 10.052 & 0.294 & 10000.115 & 0.04 & 0.619 & 0.611 \\ 
         & Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\ 
   2016  & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\ 
         & Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

相关内容