我想foreach
在 Tikz 中同时循环两个变量。我想遍历\y
从 0 到 7 的变量。同时,我想以\yy
2 为增量从 0 到 14 遍历。我想知道如何在不写出整个列表的情况下做到这一点。
例如,以下代码有效:
\foreach \y / \yy in {0/0, 1/2, 2/4, 3/6, 4/8, 5/10, 6/12, 7/14}
\node at (0,\y) {\y -- \yy};
但我似乎无法让这段代码发挥作用:
\foreach \y / \yy in {0/0, 1/2, ..., 7/14}
\node at (0,\y) {\y -- \yy};
我打算使用很多像这样的循环,所以我真的想弄清楚如何让带点的双循环发挥作用。有什么建议吗?
答案1
为什么不使用单个变量和evaluate
?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \y [evaluate=\y as \yy using int(2*\y)] in {0,...,7}
\node at (0,\y) {\y -- \yy};
\end{tikzpicture}
\end{document}
答案2
也可能
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \y in {0,...,7}
{ \pgfmathtruncatemacro{\yy}{2*\y}
\node at (0,\y) {\y -- \yy};
}
\end{tikzpicture}
\结束{文档}
答案3
只是为了好玩fp
。
\documentclass[preview,border=12pt,12pt,varwidth]{standalone}
\usepackage{multido,fp}
\begin{document}
\multido{\i=0+1}{10}{\FPeval\temp{round(sin(\i):6)} $(\i,\temp)$\endgraf}
\end{document}