我试图通过在矩阵元素周围绘制块来突出显示它们。但是,如下图所示,有些块不可见
我使用此处发布的代码创建了它:突出显示矩阵中的元素
我如何调整这些框的坐标以使它们看起来像同心矩形。
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows,matrix,positioning}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of math nodes,left delimiter=(,right delimiter=)] (m)
{
8 &8 &1 &6 \\
3 &8 &5 &7 \\
4 &8 &9 &5 \\
};
\draw[color=red] (m-1-1.north west) -- (m-1-3.north east) -- (m-2-3.south east) -- (m-2-1.south west) -- (m-1-1.north west);
\draw[color=red,double,implies-](m-1-2.north) -- +(0,0.3);
\draw[color=blue] (m-1-1.north west) -- (m-1-2.north east) -- (m-2-2.south east) -- (m-2-1.south west) -- (m-1-1.north west);
\end{tikzpicture}
\end{document}
答案1
我会改用fit
库,制作一个node
包含矩形两个对角的。然后您只需调整的即可调整inner sep
大小node
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows,matrix,positioning,fit}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of math nodes,left delimiter=(,right delimiter=)] (m)
{
8 &8 &1 &6 \\
3 &8 &5 &7 \\
4 &8 &9 &5 \\
};
\node[draw=red,inner sep=1pt,fit=(m-1-1.north west)(m-2-3.south east)] {};
\draw[color=red,double,implies-] ([yshift=1pt]m-1-2.north) -- +(0,0.3);
\node[draw=blue,inner sep=0pt,fit=(m-1-1.north west)(m-2-2.south east)] {};
\end{tikzpicture}
\end{document}