tcolorbox 中的 Tabularx 选项:如何为第一行着色?

tcolorbox 中的 Tabularx 选项:如何为第一行着色?

我喜欢让表格中的第一行使用tcolorbox选项tabularx,使其颜色与其他行不同。我尝试使用\rowcolor{<color>},但收到错误:

放错 \noalign。

如果我\\之前添加\rowcolor{...},错误就会消失,但是正如预期的那样,引入了新的空行...这是一个错误还是我错过了什么?MwE,显示问题如下。

\documentclass[border=5mm,
               preview]{standalone}

    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}

    \usepackage[dvipsnames,svgnames,table]{xcolor}
    \usepackage{makecell,tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
    \usepackage[many]{tcolorbox}
\newtcolorbox{tctabularx}[1]{%
        enhanced,
        fonttitle=\sffamily\bfseries, fontupper=\small\sffamily,
        arc=0mm,
        colback=yellow!10!white, colframe=red!50!black,
        #1                  }% end tctabularx

        \begin{document}
    \begin{tctabularx}{tabularx={L|L}} 
\rowcolor{yellow!30!white}
    \thead{FIR}
    &   \thead{IIR}                         \\
\hline
    končni impulzni odziv $h[n]$
    &   neskončni impulzni odziv $h[n]$     \\
\hline
    sistemska funkcija je polinom
    &   sistemska funkcija je racionalna\newline
        (ulomek dveh polinomov)             \\
\hline
    zahtevnejša izvedba
    &   manj zahtevna izvedba               \\
    \end{tctabularx}
        \end{document}

答案1

尝试before upper app={\rowcolor{yellow!30!white}将第一行之前输入的关键代码tabularx发出去。

(参见当前(3.72)手册的第 18.1 节“钩子” tcolorbox

\documentclass[border=5mm,
preview]{standalone}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[dvipsnames,svgnames,table]{xcolor}
\usepackage{makecell,tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage[many]{tcolorbox}
\newtcolorbox{tctabularx}[1]{%
  enhanced,
  fonttitle=\sffamily\bfseries, fontupper=\small\sffamily,
  arc=0mm,
  colback=yellow!10!white, colframe=red!50!black,
  #1,before upper app={\rowcolor{yellow!30!white}}
                    }% end tctabularx

\begin{document}
\begin{tctabularx}{tabularx={L|L}} 
  \thead{FIR}
  &   \thead{IIR}                         \\
  \hline
  končni impulzni odziv $h[n]$
     &   neskončni impulzni odziv $h[n]$     \\
     \hline
     sistemska funkcija je polinom
     &   sistemska funkcija je racionalna\newline
     (ulomek dveh polinomov)             \\
     \hline
     zahtevnejša izvedba
     &   manj zahtevna izvedba               \\
   \end{tctabularx}
 \end{document}

在此处输入图片描述

答案2

在此处输入图片描述

\documentclass{article}   
   \usepackage[T1]{fontenc}
    \usepackage[dvipsnames,svgnames,table]{xcolor}
    \usepackage{makecell,tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
    \usepackage[many]{tcolorbox}
\newtcolorbox{tctabularx}[1]{%
        enhanced,
        fonttitle=\sffamily\bfseries, fontupper=\small\sffamily,
        arc=0mm,
        colback=yellow!10!white, colframe=red!50!black,
        #1                  }% end tctabularx

   \begin{document}
    \begin{tctabularx}{tabularx={L|L}}
\cellcolor{yellow!30!white}
    \thead{FIR}
    &  \cellcolor{yellow!30!white} \thead{IIR}  \\
\hline
    končni impulzni odziv $h[n]$
    &   neskončni impulzni odziv $h[n]$     \\
\hline
    sistemska funkcija je polinom
    &   sistemska funkcija je racionalna\newline
        (ulomek dveh polinomov)             \\
\hline
    zahtevnejša izvedba
    &   manj zahtevna izvedba               \\
    \end{tctabularx}
   \end{document}

在这种情况下,您应该使用\cellcolor。这是因为tcolorboxes 被认为更像是单元格,而不是多单元格(行)。

相关内容