![表格中 cmidrule 之间有间隙(两列之间有额外空间)](https://linux22.com/image/291282/%E8%A1%A8%E6%A0%BC%E4%B8%AD%20cmidrule%20%E4%B9%8B%E9%97%B4%E6%9C%89%E9%97%B4%E9%9A%99%EF%BC%88%E4%B8%A4%E5%88%97%E4%B9%8B%E9%97%B4%E6%9C%89%E9%A2%9D%E5%A4%96%E7%A9%BA%E9%97%B4%EF%BC%89.png)
您可以在本问题末尾找到我根据 Werner 的建议提出的最终解决方案的示例。
我想制作一个类似于这样的表格:
我可以使用以下代码来实现大部分功能:
\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 中已经有一个可选参数!