为表格的某一行着色

为表格的某一行着色

我尝试仅为下表的第一行着色,使用以下代码:

\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类型列,并用单个命令替换了重复的命令。wcarray\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-limitcell-space-bottom-limit可以执行该工作,因此您不必在序言的每一列前面加上前缀。

  • 只需一个键即可绘制所有需要的规则hvlines

上述代码的输出

相关内容