包围几个子矩阵,其中一些圆位于其他圆内

包围几个子矩阵,其中一些圆位于其他圆内

我想突出显示多个子矩阵,其中一些圆位于其他圆内。我没有找到有关此问题的问题,并且尝试了 Tikz 的一些方法,但我做得很差。请参阅下图了解我的意思:

答案1

我建议使用matrix of nodes,或matrix of math nodes- 请参阅第 57 节蒂克兹手册。您可能需要调整它以使所有内容完美契合,但以下内容应该可以帮助您入门:

在此处输入图片描述

代码如下:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,calc}
\begin{document}

  \begin{tikzpicture}
    \matrix (M)[matrix of math nodes,
                left delimiter=(,
                right delimiter=),
                row sep=3mm,
                column sep=3mm
    ]{
       1& 0 & 0 & 0 \\
       2& 3 & 0 & 0 \\
       4& 5 & 6 & 0 \\
       7& 8 & 9 &10 \\
     };
     \foreach \row in {1,...,4} {
         \foreach \col in {1,...,\row} {
              \draw[rounded corners]
                 ($ (M-\row-1.south west)+(-0.04*\col,-0.04*\col) $) rectangle
                 ($ (M-\row-\col.north east)+(0.04*\col,0.04*\col) $);
         }
     }
  \end{tikzpicture}

\end{document}

答案2

@Andrew 的回答略作修改,如果矩阵节点的高度不同,也可以正常工作。对于您示例中的矩阵,这不是必需的,但如果您放入分数,则可能是必需的。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,calc,fit}
\begin{document}

  \begin{tikzpicture}
    \matrix (M)[matrix of math nodes,
                left delimiter=(,
                right delimiter=),
                row sep=3mm,
                column sep=3mm
    ]{
       1& 0 & 0 & 0 \\
       2& 3 & 0 & 0 \\
       4& 5 & 6 & 0 \\
       7& 8 & \displaystyle\frac{3}{4} &10 \\
     };
     \foreach \row in {1,...,4} {
         \foreach \col [evaluate=\col as \prevcol using int(\col-1)] in {1,...,\row} {
          \ifnum\col=1
           \node[draw,inner sep=1pt,rounded corners,fit=(M-\row-1) (M-\row-\col)]
           (fit-\row-\col){};
          \else 
           \node[draw,inner sep=1pt,rounded corners,fit=(fit-\row-\prevcol) (M-\row-\col)]
           (fit-\row-\col){};
          \fi
         }
     }
  \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容