我尝试仅为下表的第一行着色,使用以下代码:
\documentclass{article}
\usepackage{makecell}
\usepackage{hhline}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{tabularx}
\newcolumntype{x}[1]{>{\centering\arraybackslash}p{#1}}
\newcommand{\mygray}{\cellcolor{gray}}
\begin{document}
\begin{table}[htbp]
\begin{center}
\setcellgapes{5pt} \makegapedcells \setlength\extrarowheight{1pt}
\begin{tabular}{|x{1cm}|x{4cm}|x{4cm}|}\hline
\mygray &\mygray 1 & \mygray 1 \\ \hline
1 & 1 & 1 \\ \hline
1 & 1 & 1 \\ \hline
\end{tabular}
\end{center}
\end{table}
我不知道我错在哪里?
答案1
makegepedcells
来自makecell
包的命令似乎会干扰彩色单元格。作为替代方案,您可以使用cellspace
包。在下面的 MWE 中,我还用来自包的命令替换了您的x
类型列,并用单个命令替换了重复的命令。wc
array
\cellcolor
\rowcolor
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{array}
\usepackage[column=0]{cellspace}
\setlength{\cellspacetoplimit}{5pt}
\setlength{\cellspacebottomlimit}{\cellspacetoplimit}
\addparagraphcolumntypes{x}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{|0{wc{1cm}}|0{wc{4cm}}|0{wc{4cm}}|}\hline
\rowcolor{gray} & 1 & 1 \\ \hline
1 & 1 & 1 \\ \hline
1 & 1 & 1 \\ \hline
\end{tabular}
\end{table}
\end{document}
答案2
\documentclass{article}
\usepackage{nicematrix}
\NiceMatrixOptions{cell-space-top-limit=5pt,cell-space-bottom-limit=5pt}
\begin{document}
\begin{table}[htbp]
\centering
\begin{NiceTabular}{wc{1cm}|wc{4cm}|wc{4cm}|}[hvlines,code-before=\rowcolor{gray}{1}]
& 1 & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{NiceTabular}
\end{table}
\end{document}
{NiceTabular}
您可以通过nicematrix
以下优势获得期望的结果:
在某种缩放级别下,顶部规则不会在 PDF 查看器中消失。
cellspace
由于您有全局选项cell-space-top-limit
并cell-space-bottom-limit
可以执行该工作,因此您不必在序言的每一列前面加上前缀。只需一个键即可绘制所有需要的规则
hvlines
。