如何让 Booktab 的 `\cmidrule` 命令与 `@{\hskip 3em}` 完美配合?

如何让 Booktab 的 `\cmidrule` 命令与 `@{\hskip 3em}` 完美配合?

请考虑以下示例:

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}[h!]
\centering
    \caption{Foo}
    \begin{tabular}{rr@{\hskip 3em}rr@{\hskip 6em}rr@{\hskip 3em}rr}
        \toprule
        \multicolumn{4}{c}{Foo} & \multicolumn{4}{c}{Bar}\\
        \cmidrule(lr){1-4}\cmidrule(lr){5-8}
        \multicolumn{2}{c}{Foobar}  & \multicolumn{2}{c}{Foobuzz}  & \multicolumn{2}{c}{BarFoo} & 
        \multicolumn{2}{c}{BarFuzz} \\
        \cmidrule(lr){1-2}\cmidrule(lr){3-4}\cmidrule(lr){5-6}\cmidrule(lr){7-8}
        A & B     & C & D & E  & F & G & H\\
        \midrule
        1  & 1     &  0.01            & 0.000001  & 1    & 128       & 1 & 1--1 \\
        2  & 3     &  0.1             & 0.000003  & 2    & 256       & 2 & 1--2 \\
        3  & 1     &  1               & 0.00001   & 3    & 512       & 3 & 1--3 \\
        4  & 3     &  10              & 0.00003   & 4    & 1024      &   &      \\
        5  & 1     &  100             & 0.0001    & 5    & 2048      &   &      \\
     \bottomrule
    \end{tabular}
\end{table}
\end{document}

在此处输入图片描述

我有两个主要组 Foo 和 Bar,我想用一些列空间将它们分开。然后,在这些组中,我还有子组 Foobar、FooBuzz、BarFoo 和 BarFuzz,我也想将它们分开一点。然后,我想在下面使用一条线来显示保持在一起的内容。现在,似乎 命令\cmidrule没有将我的列间距视为列之间的空间,而是将其视为列的一部分(如果您明白我的意思)。事实上,似乎\multicolumn也犯了这个错误。我怎样才能在列之间留出空间,并将其视为\cmidrule和之间的空间\multicolumn

答案1

你必须考虑列间距在相关的\multicolumns 中,并在 的修剪值中考虑到它\cmidrule。这是一个可能的代码 \ 我加载了caption包,以便在上面的标题和表格之间留出合理的间距:

\documentclass{article}
\usepackage{booktabs, caption, array}

\begin{document}

\begin{table}[h!]
\centering
    \caption{Foo}
    \begin{tabular}{rr@{\hskip 3em}rr@{\hskip 6em}rr@{\hskip 3em}rr}
        \toprule
        \multicolumn{4}{c@{\hskip 6em}}{Foo} & \multicolumn{4}{c}{Bar}\\
        \cmidrule(lr{5.75em}){1-4}\cmidrule(l{-0.15em}r){5-8}
        \multicolumn{2}{c@{\hskip 3em}}{Foobar} & \multicolumn{2}{c@{\hskip 6em}}{Foobuzz} & \multicolumn{2}{c@{\hskip 3.5em}}{BarFoo} &
        \multicolumn{2}{c!{\hskip 0.5em}}{BarFuzz} \\
        \cmidrule(lr{2.75em}){1-2}\cmidrule(lr{5.85em}){3-4}\cmidrule(l{-0.15em}r{2.75em}){5-6}\cmidrule(l{-0.05em}r){7-8}
        A & B & C & D & E & F & G & H\\
        \midrule
        1 & 1 & 0.01 & 0.000001 & 1 & 128 & 1 & 1--1 \\
        2 & 3 & 0.1 & 0.000003 & 2 & 256 & 2 & 1--2 \\
        3 & 1 & 1 & 0.00001 & 3 & 512 & 3 & 1--3 \\
        4 & 3 & 10 & 0.00003 & 4 & 1024 & & \\
        5 & 1 & 100 & 0.0001 & 5 & 2048 & & \\
     \bottomrule
    \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

相关内容