我有一个简单的 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}}