正如标题所述,我正在尝试为我的表格添加颜色,但似乎booktab 包在 \toprule 和 \bottomrule 之间保留 \xcolor 未覆盖的多余空白
\documentclass{article}
\usepackage{booktabs}
\usepackage[table]{xcolor}
\begin{document}
\renewcommand{\arraystretch}{1.5}
\rowcolors{1}{green}{blue}
\begin{tabular}{ll}
\toprule
foo&foo\\
bar&bar\\
foo&bar\\
\bottomrule
\end{tabular}
\end{document}
当我使用 \hline 时,问题不再发生。我想知道是否有简单的解决方法,如果不太麻烦,能否解释一下这里发生了什么?提前谢谢。
答案1
该空间由顶部规则和底部规则留下,该空间可以通过命令单独着色\aboverulesepcolor
,并\belowrulesepcolor
设置为与\rowcolor
\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}
\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{green}
\rowcolor{green} Variable & Field One & Field Two \\
\aboverulesepcolor{green}
\midrule
\belowrulesepcolor{blue}
\rowcolor{blue}A & 0.0002 & 0.0005 \\
\aboverulesepcolor{blue}
\bottomrule
\end{tabular}
\end{center}
\end{document}
答案2
使用{NiceTabular}
,nicematrix
您可以直接(经过两次编译)得到您想要的结果:
\documentclass{article}
\usepackage{booktabs}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\renewcommand{\arraystretch}{1.5}
\begin{NiceTabular}{ll}
\CodeBefore
\rowcolors{1}{green!15}{blue!15}
\Body
\toprule
foo&foo\\
bar&bar\\
foo&bar\\
\bottomrule
\end{NiceTabular}
\end{document}