仅关闭一张表的 BookTabs

仅关闭一张表的 BookTabs

我基本上在所有论文中都使用该booktabs软件包来展示包含结果或描述性统计数据的表格。但是,我需要在表格中显示示意图选择,为此我需要一个带有连续垂直线的适当网格。booktabs仅允许垂直线之间有空格且线条不相交。此功能会自动为所有表格启用。

我宁愿不tikz为此而写一些东西,我有表格,没有它看起来也不错booktabs,但是论文中其余的表格看起来很糟糕。

booktabs所以我的问题本质上是我如何在特定环境中关闭tabular

为了说明这个问题

在此处输入图片描述

答案1

垂直线的间隙是由包中的特殊规则命令\toprule、引起的。如果您不使用它们,则不会有间隙,例如:\midrule\bottomrulebooktabs

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{tabular}{l|l}
  \toprule
  with & booktabs \\
  \bottomrule
\end{tabular}

\bigskip

\begin{tabular}{|l|l|l|}
  \hline
  without & booktabs' & rules \\
  \hline
\end{tabular}

\bigskip

\begin{tabular}{l|l|l}
  \toprule
  again & with & booktabs \\
  \bottomrule
\end{tabular}

\end{document}

结果

答案2

正如前面提到的,没有必要用booktabs。您可以\hline按原样使用常规 s。如果您希望混合booktabs's垂直规则,你需要更多的勇气。

booktabs文档提及(在第4 滥用新命令,第4-5页):

不过,在一次罕见的宽容中,我也发出了命令

\specialrule{<wd>}{<abovespace>}{<belowspace>}

其中所有三个参数都是必需的(我懒得用默认值编程)。如果您经常使用这个,那么您就误解了上面给出的指导方针的目的和内容。前置规则不会在其下方添加默认空间,而后置规则不会在其上方添加空间,因此您获得的正是参数中指定的空间。

事实上,\toprule可以\bottomrule使用来复制\specialrule

\newcommand{\bttoprule}{\specialrule{\heavyrulewidth}{\abovetopsep}{\belowrulesep}}
\newcommand{\btbottomrule}{\specialrule{\heavyrulewidth}{\aboverulesep}{\belowbottomsep}}

\abovetopsep插入宽度为[ \aboverulesep]的“水平规则”多于(实际上是垂直跳跃),宽度heavyrulewidth规则中间\belowrulesep以及宽度为[ \belowbottomsep]的“水平规则”以下。要验证这一点,请考虑:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\newcommand{\bttoprule}{\specialrule{\heavyrulewidth}{\abovetopsep}{\belowrulesep}}
\newcommand{\btbottomrule}{\specialrule{\heavyrulewidth}{\aboverulesep}{\belowbottomsep}}
\begin{document}

\noindent
\begin{minipage}{0.5\linewidth}
\begin{tabular}{|l|l|l|}
  \toprule
  with & booktabs & rules \\
  \bottomrule
\end{tabular}%
\end{minipage}%
\begin{minipage}{0.5\linewidth}
\begin{tabular}{|l|l|l|}
  \bttoprule
  with & updated & rules \\
  \btbottomrule
\end{tabular}%
\end{minipage}%
\end{document}

考虑到这一点,我们可以删除在\bttoprule[ \btbottomrule] 下方 [上方] 插入的垂直跳过,并使用支柱(我们称之为\btstrut)补充常规内容:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\newcommand{\btstrut}{\rule%
  [\dimexpr-.3\normalbaselineskip-\aboverulesep]% depth
  {0pt}% width
  {\dimexpr\normalbaselineskip+\aboverulesep+\belowrulesep}}% height
\newcommand{\bttoprule}{\specialrule{\heavyrulewidth}{\abovetopsep}{0pt}}
\newcommand{\btbottomrule}{\specialrule{\heavyrulewidth}{0pt}{\belowbottomsep}}
\begin{document}

\noindent
\begin{minipage}{0.5\linewidth}
\begin{tabular}{|l|l|l|}
  \toprule
  with & booktabs & rules \\
  \bottomrule
\end{tabular}%
\end{minipage}%
\begin{minipage}{0.5\linewidth}
\begin{tabular}{|l|l|l|}
  \bttoprule
  \btstrut with & updated & rules \\
  \btbottomrule
\end{tabular}%
\end{minipage}%
\end{document}

booktabs但是,这首先会成为一种避免使用 的冗长方法。此外,对于tabular\bttoprule[ \btbottomrule] 但没有\btbottomrule[ \bttoprule] 的内部行内容,需要使用不同的支柱。

相关内容