表格中 cmidrule 之间有间隙(两列之间有额外空间)

表格中 cmidrule 之间有间隙(两列之间有额外空间)

您可以在本问题末尾找到我根据 Werner 的建议提出的最终解决方案的示例。

我想制作一个类似于这样的表格:

在 Excel 中创建的示例表

我可以使用以下代码来实现大部分功能:

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{table}\centering
\begin{tabular}{l c c c c}
\toprule
    & \multicolumn{2}{c}{Text1} & \multicolumn{2}{c}{Text2} \\ 
    \cmidrule{2-3} \cmidrule{4-5}
    & A & B & A & B \\
    \midrule
Foo & 1 & 2 & 3 & 4\\
\bottomrule
\end{tabular}
\caption{Foo matter}
\end{table}

\end{document}

这给了我这个结果:

乳胶桌

到目前为止,我能想到的唯一解决方案(那种工作)是在第 3 列和第 4 列之间添加一个空列。然而,我希望有一个简单的解决方案,允许我直接在两列之间添加一些空间。

此解决方案似乎非常接近我想要的,但最后三列出现了一些问题(它们似乎没有倾斜)。添加

\usepackage{array}
\newcolumntype{C}{@{\extracolsep{3cm}}c@{\extracolsep{0pt}}}%

序言和改变开始表格到

\begin{tabular}{l c c C c}

给我:

很近

这很接近但不完全是我需要的。

我确实也找到了一些在行之间插入空格的解决方案,但无法将它们转移到列:行距 1和别的。

根据 Werner 的回答解决

对我来说,解决方案主要是 Werner 建议的。我只添加了两边应该修剪多少线条的值。要获得:

我想要的桌子

我用了:

\documentclass{article}

\usepackage{booktabs}
\usepackage{array}
\newcolumntype{C}{@{\extracolsep{3cm}}c@{\extracolsep{0pt}}}%

\begin{document}

\begin{table}\centering
\begin{tabular}{l c c c c}
\toprule
    & \multicolumn{2}{c}{Text1} & \multicolumn{2}{c}{Text2} \\ 
    \cmidrule(l{2pt}r{2pt}){2-3} \cmidrule(l{2pt}r{2pt}){4-5}
    & A & B & A & B \\
    \midrule
Foo & 1 & 2 & 3 & 4\\
\bottomrule
\end{tabular}
\caption{Foo matter}
\end{table}

\end{document}

答案1

唯一的办法是休息水平规则将插入单独的列(如您所建议的),或者\cmidrule使用可选(..)规范稍微修剪 s:

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{tabular}{l c c c c}
  \toprule
  & \multicolumn{2}{c}{Text1} & \multicolumn{2}{c}{Text2} \\
  \cmidrule{2-3} \cmidrule{4-5}
  & A & B & A & B \\
  \midrule
  Foo & 1 & 2 & 3 & 4 \\
  \bottomrule
\end{tabular}

\bigskip

\begin{tabular}{l c c c c}
  \toprule
  & \multicolumn{2}{c}{Text1} & \multicolumn{2}{c}{Text2} \\
  \cmidrule(lr){2-3} \cmidrule(lr){4-5}
  & A & B & A & B \\
  \midrule
  Foo & 1 & 2 & 3 & 4 \\
  \bottomrule
\end{tabular}

\bigskip

\begin{tabular}{l c c c c c}
  \toprule
  & \multicolumn{2}{c}{Text1} & & \multicolumn{2}{c}{Text2} \\
  \cmidrule{2-3} \cmidrule{5-6}
  & A & B & & A & B \\
  \midrule
  Foo & 1 & 2 & & 3 & 4 \\
  \bottomrule
\end{tabular}

\end{document}

使用以下方式在列规范中添加空格

\begin{tabular}{l c c@{\hspace{1cm}} c c}

在第 3 列和第 4 列之间插入1cm,但需要您在使用时更正对齐\multicolumn 没有提供差距。

我认为插入一个空列并不是那么糟糕。你实际上可以控制列的宽度,以提供精细调整的分隔间距\cmidrule。比如

\begin{tabular}{l c c c@{\hspace{1cm}} c c}

1cm将在第 3 列和(现在的)第 5 列之间产生一个恰好相等的间隙。

答案2

查看此页面 - cmidrule 中已经有一个可选参数!

使用 cmidrule 和多行多列正确居中

相关内容