我想在 tikz 中绘制一堆节点,其中第 i 个节点应该用数组中的第 i 个字符串(数学或文本)标记。
例如,如果我有数组
\def\array{{$X$, $Y$, $e^{x+z}$, $p$, $t$, $q$}}
我想生成
\node[label={$X$}] (0) at (0, 0) {};
\node[label={$Y$}] (1) at (3, 0) {};
\node[label={$e^{x+z}$}] (2) at (6, 0) {};
\node[label={$p$}] (3) at (9, 0) {};
\node[label={$t$}] (4) at (12, 0) {};
\node[label={$q$}] (5) at (15, 0) {};
但使用 for 循环,因为在我的实际用例中数组要大得多。我很想做类似的事情:
\foreach \i in {0, ..., 5} {
\node[label={\array[\i]}] (\i) at (3\i, 0) {};
但这不起作用。正确的方法是什么?
我可以在其他问题中看到,evaluate
当标签需要作为算术进行评估时,该函数会很有用,但这不是我的情况。
更一般地,上下文可能如下所示:
\documentclass[article]
\usepackage{tikz}
\begin{document}
\begin{picture}
\begin{tikzpicture}
\def\array{{$X$, $Y$, $e^{x+z}$, $p$, $t$, $q$}}
\foreach \i in {0, ..., 5} {
\node[label={\array[\i]}] (\i) at (3\i, 0) {};
}
\end{tikzpicture}
\end{picture}
\end{document}