Booktabs 和 colortbl 没有填满行高

Booktabs 和 colortbl 没有填满行高

我有一个简单的 booktabs 表,与以下 MWE 非常相似:

\documentclass[12pt]{article}

% set the font of the document
\usepackage{fontspec}

% set line spacing
\usepackage{setspace}
\setstretch{1.15}
\usepackage{relsize}

% table materials
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}
\usepackage{multirow}

% define colours
\usepackage{xcolor, colortbl}
\definecolor{my-blue}{RGB}{83,87,118}

\usepackage{microtype}

\begin{document}

\begin{center}
\begin{tabular}{ccc}
\toprule
\rowcolor{my-blue} Variable &  Field One &  Field Two \\
\midrule
A & 0.0002 & 0.0005 \\
\bottomrule
\end{tabular}
\end{center}

\end{document}

产生如下输出:

在此处输入图片描述

如您所见,行颜色填充没有填满行的高度,如何修复?

编辑:

此外,当着色为单个单元格时,是否可以修复此问题,例如以下 MWE:

\documentclass[12pt]{article}

% set line spacing
\usepackage{setspace}
\setstretch{1.15}
\usepackage{relsize}

% table materials
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}
\usepackage{multirow}

% define colours
\usepackage{xcolor, colortbl}
\definecolor{my-blue}{RGB}{83,87,118}

\usepackage{microtype}

\begin{document}

\begin{center}
\begin{tabular}{ccc}
\toprule 
Variable &  Field One &  Field Two \\
\midrule
\cellcolor{my-blue}{A} & 0.0002 & 0.0005 \\
\bottomrule
\end{tabular}
\end{center}

\end{document}

在此处输入图片描述

填充单元格的高度?

答案1

规则下方和上方的空间可以用彩色规则填充:

\documentclass[12pt]{article}

% set the font of the document
%\usepackage{fontspec}

% set line spacing
\usepackage{setspace}
\setstretch{1.15}
\usepackage{relsize}

% table materials
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}
\usepackage{multirow}

% define colours
\usepackage{xcolor, colortbl}
\definecolor{my-blue}{RGB}{83,87,118}

\usepackage{microtype}

\newcommand*{\belowrulesepcolor}[1]{%
  \noalign{%
    \kern-\belowrulesep
    \begingroup
      \color{#1}%
      \hrule height\belowrulesep
    \endgroup
  }%
}
\newcommand*{\aboverulesepcolor}[1]{%
  \noalign{%
    \begingroup
      \color{#1}%
      \hrule height\aboverulesep
    \endgroup
    \kern-\aboverulesep
  }%
}

\begin{document}

\begin{center}
\begin{tabular}{ccc}
\toprule
\belowrulesepcolor{my-blue}
\rowcolor{my-blue} Variable &  Field One &  Field Two \\
\aboverulesepcolor{my-blue}
\midrule
A & 0.0002 & 0.0005 \\
\bottomrule
\end{tabular}
\end{center}

\end{document}

结果

答案2

环境{NiceTabular}提供nicematrix了用于以与 水平规则兼容的方式为单元格、行和列着色的工具booktabs。此外,无论您使用哪种 PDF 查看器,都不会看到细白线。

\documentclass[12pt]{article}

\usepackage{setspace}
\setstretch{1.15}
\usepackage{relsize}

\usepackage{booktabs}
\usepackage{nicematrix}
\usepackage{xcolor}

\begin{document}

\begin{center}
\begin{NiceTabular}{ccc}[colortbl-like]
\toprule
\rowcolor{blue!15} Variable &  Field One &  Field Two \\
\midrule
A & 0.0002 & 0.0005 \\
\bottomrule
\end{NiceTabular}
\end{center}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案3

我使用了 Heiko 的代码,但在使用中遇到了问题longtable这是我的解决方案。而且它tabular也能很好地与环境配合使用。因此,您应该定义新行,而不是添加颜色规则:

\colorlet{tableheadcolor}{gray!35} % Table header colour = 25% gray
\newcommand{\topline}{\arrayrulecolor{black}\specialrule{\heavyrulewidth}{\abovetopsep}{0pt}%
            \arrayrulecolor{tableheadcolor}\specialrule{\belowrulesep}{0pt}{0pt}%
            \arrayrulecolor{black}}
\newcommand{\midline}{\arrayrulecolor{tableheadcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
            \arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
            \arrayrulecolor{white}\specialrule{\belowrulesep}{0pt}{0pt}%
            \arrayrulecolor{black}}

相关内容