多次使用相同的多重序列

多次使用相同的多重序列

我有 3 个数字的列表,我想在我的文档中多次迭代它们,并且能够在需要时一劳永逸地更改它们。

这是一个丑陋的例子,重现了我现在正在做的事情:

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
\foreach \i/\x/\y in {{1/0/0},{2/5/0},{5/0/-3.7},{7/5/-3.7}}{
\node at (\x,\y) {\i};
}
\end{tikzpicture}

\begin{tikzpicture}
\foreach \i/\x/\y in {{1/0/0},{2/5/0},{5/0/-3.7},{7/5/-3.7}}{
\node at (\x,\y) {Again\i};
}
\end{tikzpicture}

\end{document}

我想使用:

\newcommand{\myseq}{{1/0/0},{2/5/0},{5/0/-3.7},{7/5/-3.7}}

来实现这一点,但显然 tikz 随后尝试计算,1/0因为编译返回:

Package PGF Math Error: You've asked me to divide `1' by `0', but I cannot divide any number by `0' (in '1/0/0').

做我想做的事情的正确方法是什么?

答案1

我没有收到任何错误:

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
\foreach \i/\x/\y in {1/0/0,2/5/0,5/0/-3.7,7/5/-3.7}{
\node at (\x,\y) {\i};
}
\end{tikzpicture}

\newcommand\myseq{1/0/0,2/5/0,5/0/-3.7,7/5/-3.7} 

\begin{tikzpicture}
\foreach \i/\x/\y in \myseq {
\node at (\x,\y) {Again\i};
}
\end{tikzpicture}

\end{document}

(我删除了数据中不必要的括号,但它们并没有造成任何损害)。

你可能已经

\foreach \i/\x/\y in {\myseq} {

这是错误的。

相关内容