如何将值与列标题对齐

如何将值与列标题对齐

我用答案以使表格适合页面。另一方面,我尝试使用他/她的建议来创建另一个表格,如下所示:

\documentclass{article}
\usepackage{booktabs,caption,siunitx}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut macro
\begin{document}
\begin{table}
\small
\medskip
\setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} *{2}{l*{5}{r}}}
\toprule
\textbf{lang} & \mc{\textbf{MymcNet}} & \mc{\textbf{Bazilat et al}} 
  & \mc{\textbf{My-Pipe}}  &
\textbf{lang} & \mc{\textbf{MymcNet}} & \mc{\textbf{Bazilat et al}} 
  & \mc{\textbf{My-Pipe}} \\
\cmidrule{1-4} \cmidrule{5-8} 
ar & 88.23   & 55.12 & 24.23 & 
es & 12.12 & 90.22 & 12.13  \\
bg &   &   &   & 
pt &  &  &   \\
cs &  &   &  & 
sk &   &  &   \\
en &     &   &    &  
sl &     &   &      \\
et &     &   &    &    
ru &     &   &       \\
fr &     &   &    &   
hi &     &   &       \\
hu &     &   &    &    
lv &     &   &        \\
ro &     &   &    &    
nl &     &   &         \\
tr &     &   &    &     
pl &     &   &          \\
hr &     &   &    &    
de &     &   &          \\
it &     &   &    &    
gr &     &   &         \\
da &     &   &    &   
la &     &   &          \\
ca &     &   &    &     
ko &     &   &         \\
fi &     &   &    &     
ir &     &   &       \\
\bottomrule
\end{tabular*}
\captionsetup{font=small,skip=0.333\baselineskip}
\caption{Test set scores.}
\end{table}
\end{document}

不幸的是,我无法将值与每列的标题对齐,如下所示:

在此处输入图片描述

例如,55.12 与“Bazilat et al”不一致。我该如何修复它?非常感谢您的帮助

答案1

与您在先前的查询,新表的数字列更少:6 个,而不是 10 个。立即修复将包括更改

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}*{2}{l*{5}{r}}}

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}*{2}{l*{3}{r}}}

一些额外的建议:

  • 对于新表,数字居中似乎比右对齐更好。此外,数字应在各自的小数点标记上对齐。我建议您加载包siunitx并使用S列类型(如以下代码所示),而不是r列类型。

  • 尝试通过将“et al”部分移至标题中的单独行,使各列的宽度(大致)相等。

  • 不再需要对表本身进行强加,因此在运行时\small也不再需要指定。font=small\captionsetup

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,caption,siunitx}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut macro
\begin{document}
\begin{table}
\setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}
    *{2}{l*{3}{S[table-format=2.2]}}}
\cmidrule{1-4} \cmidrule{5-8} % instead of \toprule
\textbf{lang} & \mc{\textbf{MymcNet}} & \mc{\textbf{Bazilat}} 
   & \mc{\textbf{My-Pipe}} &
\textbf{lang} & \mc{\textbf{MymcNet}} & \mc{\textbf{Bazilat}} 
   & \mc{\textbf{My-Pipe}} \\
& & \mc{\textbf{et al}} & & & & \mc{\textbf{et al}}\\
\cmidrule{1-4} \cmidrule{5-8} 
ar & 88.23 & 55.12 & 24.23 & es & 12.12 & 90.22 & 12.13  \\
bg &     &   &    & pt &     &   &    \\
cs &     &   &    & sk &     &   &    \\
en &     &   &    & sl &     &   &    \\
et &     &   &    & ru &     &   &    \\
fr &     &   &    & hi &     &   &    \\
hu &     &   &    & lv &     &   &    \\
ro &     &   &    & nl &     &   &    \\
tr &     &   &    & pl &     &   &    \\
hr &     &   &    & de &     &   &    \\
it &     &   &    & gr &     &   &    \\
da &     &   &    & la &     &   &    \\
ca &     &   &    & ko &     &   &    \\
fi &     &   &    & ir &     &   &    \\
\cmidrule{1-4} \cmidrule{5-8} % instead of \bottomrule
\end{tabular*}
\captionsetup{skip=0.333\baselineskip}
\caption{Test set scores.}
\end{table}
\end{document}

相关内容