当我尝试创建彩色单元格时,会显示黑色单元格

当我尝试创建彩色单元格时,会显示黑色单元格

我正在尝试使用类似以下代码创建一个彩色表:

\documentclass[a4paper,twoside]{book} 
\usepackage{amsmath}
\usepackage{color}
\usepackage{tabularx}
\usepackage{colortbl}

\pagestyle{empty}
\definecolor{lightblue}{cmyk}{0.5,0,0,0}
\definecolor{lightgrey}{cmyk}{0.25,0,0.25,0}

\begin{document}

\begin{tabularx}{\textwidth}{|X|X|}
  \hline
  \rowcolor{lightblue}
  Item 1 & Item 2 \\ 
  \rowcolor{lightgrey}
  $$A=\left(\begin{smallmatrix}0&0&0\\0&0&0\end{smallmatrix}\right)$$ & 
  $$B=\left(\begin{smallmatrix}1&1&1\\1&1&1\end{smallmatrix}\right)$$ \\
  \hline
\end{tabularx}

\end{document}

但第二行的第一个单元格完全是黑色的!为什么?我试图更改smallmatrixmatrix,但单元格显示一个小黑框。我什么都不明白!

答案1

看起来行颜色被 中的行尾 ( \\)错误地重置了smallmatrix\everycr全局重置行颜色)。您可以使用类似下面的代码来保存和恢复 周围的行颜色smallmatrix。这值得向colortbl和的作者报告amsmath

\documentclass[a4paper,twoside]{book} 
\usepackage{amsmath}
\usepackage{color}
\usepackage{tabularx}
\usepackage{colortbl}

\pagestyle{empty}
\definecolor{lightblue}{cmyk}{0.5,0,0,0}
\definecolor{lightgrey}{cmyk}{0.25,0,0.25,0}


\makeatletter
\newenvironment{mysmallmatrix}{%
    \let\saved@CT@row@color\CT@row@color
    \begin{smallmatrix}%
}{%
    \end{smallmatrix}%
    \global\let\CT@row@color\saved@CT@row@color
}
\makeatother

\begin{document}

\begin{tabularx}{\textwidth}{|X|X|}
  \hline
  \rowcolor{lightblue}
  Item 1 & Item 2 \\ 
  \rowcolor{lightgrey}
  $\displaystyle A=\left(\begin{mysmallmatrix}0&0&0\\0&0&0\end{mysmallmatrix}\right)$ & 
  $\displaystyle B=\left(\begin{mysmallmatrix}1&1&1\\1&1&1\end{mysmallmatrix}\right)$ \\
  \hline
\end{tabularx}

\end{document}

相关内容