booktabs:\toprule 和 \hline 之间有什么区别

booktabs:\toprule 和 \hline 之间有什么区别

可以构造环境中的水平线。 、和使用 指定水平线tabular之间有什么区别?\toprule\midrule\bottomrule\hline

答案1

简短的回答。

\toprule\midrule\bottomrule的改进版本;无论将其放置在表格的顶部、底部还是中间,\hline标准行为(大致)相同。改进版本和更厚(事实上,也略厚),并且它们以更好的方式处理周围的垂直空间。正如 booktabs 的文档所述:\hline\toprule\bottomrule\midrule

下面描述的例程是为了能够轻松制作应出现在已出版的科学书籍和期刊中的表格。这些表格与普通 LaTeX 表格的区别在于默认使用规则上方和下方的额外空间,以及不同“厚度”的规则。

答案并不那么简短。

用 生成的线条\hline具有由 控制的默认宽度,由\arrayrulewidth标准类设置为0.4pt。如果要更改粗细,则需要为 设定不同的值\arrayrulewidth

另一方面,\toprule\bottomrule具有由 控制的默认厚度,默认情况\heavyrulewidth下设置为0.08em; 的默认厚度\midrule由长度 给出\lightrulewidth,初始值为0.05em。因此,默认情况下,\toprule\bottomrule大约是用 绘制的线条的两倍\hline,并且\midrule比用 绘制的线条略粗\hline

此外,\toprule\midrule\bottomrule一个可选参数

\toprule[<length>]
\bottomrule[<length>]
\middlerule[<length>]

允许轻松修改其厚度。

定义的线booktabs还对其下方和上方的空间进行了特殊的管理;该空间由以下长度控制:

  1. 对于\toprule:上方的空间由 给出\abovetopsep0pt默认设置为);下方的空间由 给出\belowrulesep(默认0.65ex)。

  2. 对于\bottomrule:上方的空间由 给出\aboverulesep0.4ex默认设置为),下方的空间由 给出\belowbottomsep(默认0pt)。

  3. 对于\midrule,上方的空间由 控制\aboverulesep,下方的空间由 给出\belowrulesep

长度参数\heavyrulewidth\lightrulewidth\cmidrulewidth以 的分数指定em,规则上方和下方的空格以 的分数指定,从ex印刷上来说,这非常好,因为如果默认字体大小从 更改为10pt11pt,规则宽度及其间距会自动增加12pt。例如,\heavyrulewidth对于.8pt.876pt.94pt的默认字体大小, 分别为10pt11pt12pt。这与 的主要区别在于,无论默认字体大小如何, 默认情况下都\hline等于。0.4pt

booktabs软件包还提供了\cmidrule标准 LaTeX 命令的改进版本,\cline旨在绘制仅扩展到某些列的子规则。

标准命令的缺点之一\cline是,它绘制的规则延伸到参数中指定的列的整个宽度,因此两个连续的规则\clines将相互碰撞(除非,例如,对 采取额外的预防措施\extracolsep)。为了轻松防止这种碰撞,改进的命令\cmidrule提供了可选的修剪规范;这些规范放在括号中,之间没有空格分隔。可能的规范是rr{<length>}ll{<length>}或这些的任意组合),其中rl表示是否应修剪规则的右端和/或左端。没有明确参数的形式等同于r{\cmidrulekern}l{\cmidrulekern},其中 \cmidrulekern默认为0.5em。例如,

\cmidrule(lr{.75em}){1-3} 

给出一条从第一列延伸到第三列的规则,默认左修剪0.5em0.75em右修剪。

\cmidrule还有一个可选参数来改变厚度;完整的语法是

\cmidrule[<length>](<trimming>){a–b}

的默认值为<length> ( \cmidrulewidth) 0.03em;最后一个参数给出要跨越的列号。

即使使用简单的表格,您也可以看到使用默认 LaTeX 获得的结果\hline与借助以下规则生成的规则之间的差异booktabs

\documentclass{article}
\usepackage{booktabs}

\begin{document}

\noindent\begin{tabular}{*{3}{c}}
\hline
Header1 & Header 2 & Header3 \\
\hline
Column1a & Column2a & Column3a \\
Column1b & Column2b & Column3b \\
Column1c & Column2c & Column3c \\
Column1d & Column2d & Column3d \\
\hline
\end{tabular}\quad
\begin{tabular}{*{3}{c}}
\toprule
Header1 & Header 2 & Header3 \\
\midrule
Column1a & Column2a & Column3a \\
Column1b & Column2b & Column3b \\
Column1c & Column2c & Column3c \\
Column1d & Column2d & Column3d \\
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

相关内容