矩阵作为节点标签

矩阵作为节点标签

考虑下面的图片(取自这里):

在此处输入图片描述

我想将此图像改编为 TikZ 图片。我将树的每个矩形节点表示为 TikZ 节点。每个节点都有两个按字符对齐的字符串作为标签。有没有一种巧妙的方法,例如使用 TikZ 的矩阵库,按字符对齐节点标签的文本,就像在图片中所做的那样?

我看过一些例子,但还没有发现类似的情况。

问候

答案1

对于您的示例,具有等宽字体的节点就足够了,因此您可以使用类似的node[draw,align=center,font=\ttfamily]{imimi\\23451}

也就是说, amatrix只是 的一种特殊类型node,因此您实际上可以node[matrix] {...}在 TikZ 树结构中使用。请参阅下面的示例。

我还添加了一个更手动的设置方式的简单示例,将几个\matrix构造相互关联放置。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}
\node [draw] {start} 
child {node[draw,align=center,font=\ttfamily]{imimi\\23451}}
child {node[draw,align=center,font=\ttfamily]{abaae\\10011}};
\end{tikzpicture}

\bigskip

\begin{tikzpicture}[every matrix/.append style={ampersand replacement=\&,matrix of nodes}]
\node [matrix,draw] {a \& b \\ c \& d \\} 
child {node[matrix,draw] {a \& b \\ c \& d \\}}
child {node[matrix,draw] {a \& b \\ c \& d \\}};
\end{tikzpicture}

\bigskip


\begin{tikzpicture}[every node/.append style={on grid,node distance=1.5cm and 1cm},
                    every matrix/.append style={matrix of nodes,draw}]
\matrix (m1) {1&2\\b&c\\};
\matrix [below left=of m1] (m2) {1&2\\b&c\\};
\matrix [below right=of m1] (m3) {1&2\\b&c\\};

\draw (m1) edge (m2)
           edge (m3);
\end{tikzpicture}
\end{document}

相关内容