cmidrule - 为什么指定两列之间的空间时必须给出修剪值?

cmidrule - 为什么指定两列之间的空间时必须给出修剪值?

如果使用@-operator来调整两列之间的空间,则\cmidrule需要提供修剪的宽度,否则规则/线看起来会很糟糕。

为什么会这样?说实话,我宁愿不这样做,因为这很耗时。另外,在指定两列之间的空间时,为什么前一列下面的线会更短?

(注:这种用法\cmidrule取自这里

图片

在此处输入图片描述

平均能量损失

\documentclass[
11pt
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage{
booktabs,
}

\begin{document}
\begin{center}
\begin{tabular}{lrrrrrr}
\toprule
Words & Series01 & Series02 & Series03 & Series04 & Series05 & Series06\\
\cmidrule(r){1-1}
\cmidrule(lr){2-2}
\cmidrule(lr){3-3}
\cmidrule(lr){4-4}
\cmidrule(lr){5-5}
\cmidrule(lr){6-6}
\cmidrule(l){7-7}
B & 24 & 25 & 15 & 2 & 0 & 9 \\
A & 7 & 21 & 17 & 1 & 0 & 5 \\
B & 24 & 12 & 29 & 26 & 27 & 22 \\
A & 0 & 12 & 14 & 22 & 24 & 2 \\
B & 22 & 8 & 8 & 25 & 24 & 1 \\
A & 29 & 6 & 21 & 14 & 21 & 10 \\
B & 29 & 1 & 13 & 12 & 2 & 11 \\
A & 24 & 18 & 16 & 22 & 19 & 23 \\
B & 18 & 7 & 12 & 1 & 1 & 9 \\
A & 6 & 24 & 10 & 30 & 7 & 15 \\
\bottomrule
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lrrrr@{\hspace{2pt}}lrr}
\toprule
Words & Series01 & Series02 & Series03 & Series04 & \footnotemark{} & Series05 & Series06\\
\cmidrule(r){1-1}
\cmidrule(lr){2-2}
\cmidrule(lr){3-3}
\cmidrule(lr){4-4}
\cmidrule(lr){5-5}
\cmidrule(lr){6-6}
\cmidrule(lr){7-7}
\cmidrule(l){8-8}
B & 24 & 25 & 15 & 2 & & 0 & 9 \\
A & 7 & 21 & 17 & 1 & & 0 & 5 \\
B & 24 & 12 & 29 & 26 & & 27 & 22 \\
A & 0 & 12 & 14 & 22 & & 24 & 2 \\
B & 22 & 8 & 8 & 25 & & 24 & 1 \\
A & 29 & 6 & 21 & 14 & & 21 & 10 \\
B & 29 & 1 & 13 & 12 & & 2 & 11 \\
A & 24 & 18 & 16 & 22 & & 19 & 23 \\
B & 18 & 7 & 12 & 1 & & 1 & 9 \\
A & 6 & 24 & 10 & 30 & & 7 & 15 \\
\bottomrule& & 
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lrrrr@{\hspace{2pt}}lrr}
\toprule
Words & Series01 & Series02 & Series03 & Series04 & \footnotemark{} & Series05 & Series06\\
\cmidrule(r){1-1}
\cmidrule(lr){2-2}
\cmidrule(lr){3-3}
\cmidrule(lr){4-4}
\cmidrule(lr{0.125em}){5-5}
\cmidrule(lr){6-6}
\cmidrule(lr){7-7}
\cmidrule(l){8-8}
B & 24 & 25 & 15 & 2 & & 0 & 9 \\
A & 7 & 21 & 17 & 1 & & 0 & 5 \\
B & 24 & 12 & 29 & 26 & & 27 & 22 \\
A & 0 & 12 & 14 & 22 & & 24 & 2 \\
B & 22 & 8 & 8 & 25 & & 24 & 1 \\
A & 29 & 6 & 21 & 14 & & 21 & 10 \\
B & 29 & 1 & 13 & 12 & & 2 & 11 \\
A & 24 & 18 & 16 & 22 & & 19 & 23 \\
B & 18 & 7 & 12 & 1 & & 1 & 9 \\
A & 6 & 24 & 10 & 30 & & 7 & 15 \\
\bottomrule& & 
\end{tabular}
\end{center}
\end{document}

答案1

您这样做的原因是修剪\cmidrule后的行距下一列缩短了固定宽度。在您的 MWE 中,您已将到下一列的标准距离最小化,因此修剪行向左移动(如果您写20pt,您就会明白我的意思)。

这里最明显的解决方案是使用\midrule所有这些修剪规则。看起来好多了。

假设您确实需要这个额外的列,我建议您不要改变列之间的距离,而是将\footnotemark向左移动并进行一些字距调整。这不会被 识别booktabs。如果您愿意,您可以为额外的列指定一个固定的宽度,以稍微减小它的大小。

最后一种解决方案是删除空白列,并设置\footnotemark其所属的位置。最后一个例子如果使用 中的S居中列,效果会更好siunitx

% arara: pdflatex

\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{booktabs}

\begin{document}
    \begin{center}
        \begin{tabular}{lrrrrrr}
            \toprule
            Words & Series01 & Series02 & Series03 & Series04 & Series05 & Series06\\
            \midrule
            B & 24 & 25 & 15 & 2 & 0 & 9 \\
            \bottomrule
        \end{tabular}
    \end{center}
    \begin{center}
        \begin{tabular}{lrrrrlrr}
            \toprule
            Words & Series01 & Series02 & Series03 & Series04 & \kern-2.6ex\footnotemark{} & Series05 & Series06\\
            \cmidrule(r){1-1}
            \cmidrule(lr){2-2}
            \cmidrule(lr){3-3}
            \cmidrule(lr){4-4}
            \cmidrule(l){5-5}
            \cmidrule(lr){7-7}
            \cmidrule(l){8-8}
            B & 24 & 25 & 15 & 2 & & 0 & 9 \\
            \bottomrule
        \end{tabular}
    \end{center}
    \begin{center}
        \begin{tabular}{lrrrrrr}
            \toprule
            Words & Series01 & Series02 & Series03 & Series04\footnotemark{} & Series05 & Series06\\
            \cmidrule(r){1-1}
            \cmidrule(lr){2-2}
            \cmidrule(lr){3-3}
            \cmidrule(lr){4-4}
            \cmidrule(lr){5-5}
            \cmidrule(lr){6-6}
            \cmidrule(l){7-7}
            B & 24 & 25 & 15 & 2 & 0 & 9 \\
            \bottomrule
        \end{tabular}
    \end{center}
\end{document}

在此处输入图片描述

更新

我最喜欢的版本(如果我喜欢这些片段的话)将是这样的:

\begin{center}
    \begin{tabular}{lrrrrrr}
        \toprule
        Words & Series01 & Series02 & Series03 & Series04\makebox[0pt]{\kern+1ex\footnotemark} & Series05 & Series06\\
        \cmidrule(r){1-1}
        \cmidrule(lr){2-2}
        \cmidrule(lr){3-3}
        \cmidrule(lr){4-4}
        \cmidrule(lr){5-5}
        \cmidrule(lr){6-6}
        \cmidrule(l){7-7}
        B & 24 & 25 & 15 & 2 & 0 & 9 \\
        \bottomrule
    \end{tabular}
\end{center}

诀窍是将脚注标记的宽度设置为零,这样就会产生等距的列。但是,您必须添加一些字距调整才能获得正确的水平距离。

在此处输入图片描述

相关内容