你好,我对如何向矩阵的特定单元格添加背景感兴趣。
我已经了解一些如何构建矩阵,我给出的代码如下所示:
\usepackage{tikz}
\usetikzlibrary{arrows, fit, matrix, positioning, shapes}
\begin{tikzpicture}[>=latex]
\node (B) {$B^\prime=$};
\matrix (M) [matrix of math nodes,left delimiter={[}, right delimiter={]},
matrix anchor=west, right=0.5em of B,
column 1/.style={anchor=base east},
column 2/.style={anchor=base east},
column 3/.style={anchor=base east}]
{
a & b & c\\
b & d & e\\
c & e & a+b+1\\
};
\node [fit=(M-1-1) (M-1-3), draw, rectangle, blue]{};
\node [fit=(M-2-2) (M-2-3), draw, rectangle, blue]{};
\node [fit=(M-3-3) (M-3-3), draw, rectangle, blue]{};
\end{tikzpicture}
如您所见,我正在创建一个右对齐矩阵,因为单元格 (3,3) 处的元素非常长。为了指出我的矩阵是二次矩阵,我考虑突出显示行元素 1-1 到 1-3、2-2 到 2-3 和元素 3-3。
我想给它们添加背景颜色,比如说某种蓝色。我无法在不覆盖下方矩阵元素的情况下填充矩形。
如有任何提示或解决方案我将不胜感激:)
答案1
我终于找到了我想要的答案。
\usepackage{tikz}
\usetikzlibrary{arrows, fit, matrix, positioning, shapes, backgrounds,
}
\begin{tikzpicture}[>=latex]
\node (B) {$B^\prime=$};
\matrix (M) [matrix of math nodes,left delimiter={[}, right delimiter={]},
matrix anchor=west, right=0.5em of B,
column 1/.style={anchor=base east},
column 2/.style={anchor=base east},
column 3/.style={anchor=base east}]
{
a & b & c\\
b & d & e\\
c & e & a+b+1\\
};
\scoped[on background layer]
{
\node[fill=pink!50, fit=(M-1-1)(M-1-3) ] {};
\node[fill=pink!50, fit=(M-2-2)(M-2-3) ] {};
\node[fill=pink!50, fit=(M-3-3)(M-3-3) ] {};
}
\end{tikzpicture}
虽然不是特别完美,但我会接受。谢谢你的建议。