如何用 tikz 显示数组节点?

如何用 tikz 显示数组节点?

我需要显示数组(垂直显示,不是 latex 显示,基本上是连续的值序列)及其隐式位置,并将结果用作 TikZ 图片中的节点(或者更准确地说,我想在它上面和它上面画线,这些线不与该节点的任何内容重叠)。所以基本上我想要的是这样的:

array2{<mynodename>}{23}{42}

其结果如下:

   .----.
 0 | 23 |
 1 | 42 |
   '----'

我想第一部分应该可以用节点部分轻松完成,但我不知道其余部分,而且我对 TikZ 的了解也生疏且有限。

答案1

这就是你所追求的东西吗?

在此处输入图片描述

\documentclass[border=4mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{fit}
\newcommand\arraynode[2]{%
\node[coordinate] (#1-0-1) at (0,0) {};
\foreach [count=\i,evaluate=\i as \j using int(\i-1)] \x in {#2} {
  \node [below] (#1-\i-1) at (#1-\j-1.south) {\j};
  \node [right=1em,anchor=center] (#1-\i-2) at (#1-\i-1.east) {\x};
}
\node [draw,fit=(#1-1-2)(#1-\i-2)] (#1) {};
}
\begin{document}

\begin{tikzpicture}
\arraynode{a}{3,42,7}
\end{tikzpicture}

\end{document}

相关内容