将标题置于表格列间边框的中心

将标题置于表格列间边框的中心

我有一张如下所示的表格:

\documentclass[12pt,a4paper]{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{rl}
\multicolumn{2}{c}{heading} \\
\toprule
string & much longer string long  \\
string & much longer string long  \\
string & much longer string long  \\
string & much longer string long  \\
\end{tabular}
\end{document}

“heading” 看起来只是第二列的标题。我希望它位于两列之间的分隔线中央,这样就可以看出事实并非如此。关于如何排版,也欢迎提出其他意见

答案1

两列之间的空间通常由\tabcolsep第一列的右侧和第二列的左侧组成\tabcolsep。第一列已经右对齐,\rlap打印到右侧,\kern\tabcolsep移动到两列之间的位置,并使\makebox[0pt]文本居中,不占用 TeX 的空间。

\documentclass[12pt,a4paper]{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{rl}
  \rlap{\kern\tabcolsep\makebox[0pt]{heading}} \\
  % variant:
  % \rlap{\makebox[2\tabcolsep]{heading}} \\
\toprule
string & much longer string long  \\
string & much longer string long  \\
string & much longer string long  \\
string & much longer string long  \\
\end{tabular}
\end{document}

结果

选择:

  • 根据具体情况,表格可能不需要“标题”,因为它可以放入表格标题中。

相关内容