\cmidrule 的 trim 选项

\cmidrule 的 trim 选项

booktabs 包中的 \cmidrule 具有 trim 选项,用于指定从左侧或右侧修剪多少。但是从以下示例\cmidrule(l{2pt}r{2pt}){1-2}可以看出,线条被移动了,而不是缩短了;我可能对这个 trim 选项感到困惑,但我预计应该从左侧和右侧删除(修剪)2 个点。

下一个代码\cmidrule(l{2pt}r{2pt}){3-3}更加令人困惑,显示行向左移动。

如何解释 trim 选项\cmdrule

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{booktabs}

\begin{document}
\begin{tabular}{@{}llr@{}}
\toprule
    \multicolumn{2}{c}{Item} &\multicolumn{1}{c}{Price/lb} \\
\cmidrule(r){1-2}\cmidrule(l){3-3}
    a & b & c \\
\cmidrule(l{2pt}r{2pt}){1-2}\cmidrule(l{2pt}r{2pt}){3-3}
\morecmidrules
\cmidrule(l{2pt}r{2pt}){2-3}
\addlinespace[5pt]
    Food& Category & \multicolumn{1}{c}{\$}\\
\midrule
    Apples & Fruit  & 1.50 \\
    Oranges & Fruit & 2.00 \\
\addlinespace
    Beef & Meat     & 4.50 \\
\specialrule{.5pt}{3pt}{3pt}
    x & y & z \\
\bottomrule
\end{tabular}

\end{document}

答案1

您对 trim 选项的解释是正确的。这里似乎令人困惑的是,删除了 外边缘的列空间tabular

在考虑tabular版本时没有末端\tabcolsep被移除

\begin{tabular}{ l l r }

在此处输入图片描述

\cmidrule使用left 和ight 配平选项的调整r似乎更符合人们的预期。


如果没有明确指定,则默认修剪\cmidrulekern设置为.5em。这相当于在(默认)文档类选项5pt下、在 下和在 下。也许,与其以绝对值指定修剪,不如使用与字体相关的宽度,例如。10pt5.475pt11pt5.87494pt12ptem

答案2

如果没有任何参数,trim 的默认值似乎大于 2pt,从而造成混淆。

当我将代码更改为不进行任何修剪,而是使用以下代码时,我可以获得预期的修剪结果。

\cmidrule(l{0pt}r{0pt}){1-2}\cmidrule(l{0pt}r{0pt}){3-3}

在此处输入图片描述

答案3

在版本 2021N (2021-09-01) 中,tabularray软件包在其booktabs库中添加了对修剪选项的支持。

图书馆提供比率值对于修剪选项lrlr:这三个选项的可能值为-1和之间的十进制数0。 数字 和 的乘积colsep即为要修剪的尺寸。

因此,如果您使用@{}删除colsep,则不会进行 的修剪,也不会进行 的移动cmidrule

请注意,您需要将修剪选项lrlr放在里面方括号tabularry

\documentclass[12pt]{article}

\usepackage{booktabs}

\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}

\section{booktabs package}

\begin{tabular}{@{}llr@{}}
\toprule
    \multicolumn{2}{c}{Item} &\multicolumn{1}{c}{Price/lb} \\
\cmidrule(r){1-2}\cmidrule(l){3-3}
    a & b & c \\
\cmidrule(l{2pt}r{2pt}){1-2}\cmidrule(l{2pt}r{2pt}){3-3}
\morecmidrules
\cmidrule(l{2pt}r{2pt}){2-3}
\addlinespace[5pt]
    Food& Category & \multicolumn{1}{c}{\$}\\
\midrule
    Apples & Fruit  & 1.50 \\
    Oranges & Fruit & 2.00 \\
\addlinespace
    Beef & Meat     & 4.50 \\
\specialrule{.5pt}{3pt}{3pt}
    x & y & z \\
\bottomrule
\end{tabular}

\section{booktabs library in tabularray package}

\begin{booktabs}{
  colspec = {@{}llr@{}},
  cell{1}{1} = {c=2}{c}, % multicolumn
  cell{1}{3} = {c},
  cell{3}{3} = {c},
}
\toprule
  Item    &          & Price/lb \\
\cmidrule[r]{1-2}\cmidrule[l]{3}
  a       & b        & c        \\
\cmidrule[lr=-0.5]{1-2}\cmidrule[lr=-0.5]{3}
\morecmidrules
\cmidrule[lr=-0.5]{2-3}
\addlinespace[5pt]
  Food    & Category & \$       \\
\midrule
  Apples  & Fruit    & 1.50     \\
  Oranges & Fruit    & 2.00     \\
\addlinespace
  Beef    & Meat     & 4.50     \\
\specialrule{.5pt}{3pt}{3pt}
  x       & y        & z        \\
\bottomrule
\end{booktabs}

\end{document}

在此处输入图片描述

相关内容