为什么当我为表格中的一行着色时,“\left [” 会部分消失?但 [ 不会消失。

为什么当我为表格中的一行着色时,“\left [” 会部分消失?但 [ 不会消失。

问题如下图所示:应该产生的高大的左方括号\left[\begin{bmatrix}消失了。

在此处输入图片描述

代码如下

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{amsmath,amssymb,amsfonts}
\begin{document}

\begin{sloppypar}
\rowcolors{2}{red!30}{blue!30}
\begin{tabular}{|p{3cm}|p{3cm}}
\hline
\textbf{Column-Title} & \textbf{title} \\
\hline
Content & 
\[
\left[\begin{matrix}
1
\end{matrix}
\right]\]
\[
\begin{bmatrix}
1\\2
\end{bmatrix}

[ ]
\]
\\
\hline

\end{tabular}
\end{sloppypar}
\end{document}

附录:高左方括号不显示的问题也出现在上述代码的以下精简版中。奇怪的是,如果省略指令\rowcolor或将其替换为,问题就会消失\cellcolor

在此处输入图片描述

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{amsmath} % for 'matrix' and 'bmatrix' environments
\begin{document}

\begin{tabular}{c}
    \rowcolor{red!25}
    $\left[ \begin{matrix} 1 \end{matrix} \right] \quad [\,]$ \\[1ex]
    \rowcolor{blue!25}
    $\begin{bmatrix} 1\\2 \end{bmatrix} \quad [\,]$
\end{tabular}

\end{document}

答案1

matrix有负空间,导致背景过度打印,但你实际上不想在嵌套表格上重新绘制背景,因此这会禁用它

在此处输入图片描述

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{amsmath} % for 'matrix' and 'bmatrix' environments
\makeatletter
\def\notmyfault{\let\CT@@do@color\relax}
\makeatother
\begin{document}

\begin{tabular}{c}
    $\left[ \begin{matrix} 1 \end{matrix} \right] \quad [\,]$ \\[1ex]
    \rowcolor{red!25}\notmyfault
    $\left[\begin{matrix} 1 \end{matrix} \right] \quad [\,]$ \\[1ex]
    \rowcolor{blue!25}\notmyfault
    $\begin{bmatrix} 1\\2 \end{bmatrix} \quad [\,]$
\end{tabular}

\end{document}

答案2

你可以使用表格数组暂时如此。这只是一个权宜之计,而不是解决方案。

\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\usepackage{amssymb,amsfonts,amsmath}

\begin{document}
\begin{table}[tbh]
  \centering
  \begin{tblr}{
    colspec={Q[3cm] Q[c,3cm]},
    row{1} = {font=\bfseries},
    row{odd[2-Z]} = {bg=blue!30},
    row{even[2-Z]} = {bg=red!30},
    vlines, hlines,
    }
    Column-Title & Title \\
    Content      & \(
                   \left[\begin{matrix}1\end{matrix}\right]
                   \) \\
    Xxxxx        & \(
                   \begin{bmatrix}1\\2\end{bmatrix}
                   \)
  \end{tblr}
\end{table}
\end{document}

在此处输入图片描述

答案3

如果您使用{NiceTabular}nicematrix使用键color-inside,别名:)colortbl-like,您将直接获得预期的输出(因为nicematrix使用 PGF/Tikz 来为单元格着色,而不是colortbl)。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix} % loads amsmath

\begin{document}

\begin{NiceTabular}{c}[color-inside]
    \rowcolor{red!25}
    $\left[ \begin{matrix} 1 \end{matrix} \right] \quad [\,]$ \\[1ex]
    \rowcolor{blue!25}
    $\begin{bmatrix} 1\\2 \end{bmatrix} \quad [\,]$
\end{NiceTabular}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容