设置 TikZ 矩阵中整行/列的背景颜色

设置 TikZ 矩阵中整行/列的背景颜色

我正在尝试突出显示 TikZ 的整行/整列\matrix[matrix of nodes]

幸运的是,对于 TikZ 矩阵,我们有行/列选择器。因此,理论上,上述内容应该通过以下代码实现:

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{matrix}

\begin{document}

  \begin{tikzpicture}

    \matrix[matrix of nodes,nodes={draw},row 2/.style={fill=blue!20}] {
      a11 & a12 & a13 \\
      a21 & a22 & a23 \\
      a31 & a32 & a33 \\
    };

  \end{tikzpicture}

\end{document}

...但这根本不起作用。我是不是漏掉了什么?为了生成上面的图像,我必须手动在第二行的每个元素前插入一个。定义和设置|[fill=blue!20]|这样的样式也不起作用。同时,使用行/列选择器来设置\tikzstyle{foo}=[fill=blue!20]row 2/.style={foo}前景color 有效(简单地[blue!20]代替[fill=blue!20]),以及设置许多其他属性,如字体和大小。 似乎是 TikZ 中的一个错误?在 TeXLive 2011 上使用 pdfLaTeX、XeLaTeX 和 luaLaTex 进行了测试。

答案1

您需要将选项传递给节点

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

  \begin{tikzpicture}

    \matrix[matrix of nodes,nodes={draw},row 2/.style={nodes={fill=blue!20}}] {
      a11 & a12 & a13 \\
      a21 & a22 & a23 \\
      a31 & a32 & a33 \\
    };

  \end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容