现在,我有下面的代码来实现这一点
但是,我想说明二维数组是数组的数组。我想在框内放置一个唯一的字符串,例如“[3, 1, 4, 1, 5]”、“[2, 4, 6, 8, 10]”等。我希望完全控制框内的字符串。
任何帮助都将不胜感激!
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcounter{index}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\setcounter{index}{0}
\coordinate (s) at (0,0);
\foreach \num in {3, 1, 4, 1, 5}{
\node[minimum size=6mm, draw, rectangle] at (s) {\num};
\node at ($(s)-(0,0.5)$) {\theindex};
\stepcounter{index}
\coordinate (s) at ($(s) + (1,0)$);
}
\end{tikzpicture}
\label{fig:testArray}
\end{figure}
\end{document}
答案1
你的意思是这样吗?我使用了你在问题中提到的第二个选项,也就是说,我将字符串“[3, 1, 4, 1, 5]”放在框内。你实际上不需要,\newcounter{index}
因为你使用的是循环计数器。
编辑
下面更新后的答案处理框内的不同条目。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}[subarray/.style={minimum size=6mm, draw, anchor=west,xshift=1ex}]
\node (s0) {};
\foreach \subarray[count = \num from 0,
evaluate=\num as\n using int(\num+1)] in {{[3, 1, 4, 1, 5] },
{[2, 4, 6, 8, 10]},
{[1, 3, 5, 4, 9] },
{[2, 4, 6, 8, 10]},
{[5, 2, 7, 3, 8] }}
\node (s\n) [subarray] at (s\num.east) {\subarray} node[below=1ex of s\n]{\num};
\end{tikzpicture}
\label{fig:testArray}
\end{figure}
\end{document}