14

In the manual one can find the ... option to obtain a range in the for-loop. For example:

\foreach \x in {0,0.1,...,6} {\x, }

On the other hand, one can have a for-loop which runs over two variables simultaneously. For example:

\foreach \i / \y in {1/0,2/0.25,3/0.5,4/0.75,5/1} {
     \only<\i>{
     \draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
     \draw (0,0) -- (1,\y);
     }
}

which can produce some simple "animation" when used along with beamer. My question is how to combine the two. Namely, I would like to have something like:

\foreach \i / \y in {1/0,2/0.25,...,5/1}

which will produce the list (1,0),(2,0.25),(3,0.5),(4,0.75),(5,1). Is there a way to do it?

  • I think it's no (see the pgfmanual). It's only possible with for example : \foreach \x in {0\pi,0.5\pi,...\pi,3\pi} {$\x$, } the ... statement have exactly the same pattern, except that, instead of dots, they have a number or a character. So you need to avoid ... in your case but perhaps I'm wrong and a great expert can find a solution. – Alain Matthes Jun 25 '11 at 9:42
16

I don't think that this is possible. However, in your case the / notations isn't really necessary:

\begin{tikzpicture}
\foreach \y [count=\i] in {0,0.25,...,1} {
     \only<\i>{
     \draw (0,0) rectangle (1,1);
     \draw (0,0) -- (1,\y);
     }
}
\end{tikzpicture}

For more complicated cases, when one variable is dependent on the other via some formula, you can also use

\begin{tikzpicture}
\foreach \i [evaluate=\i as \y using (\i-1)*0.25] in {1,2,...,5} {
     \only<\i>{
     \draw (0,0) rectangle (1,1);
     \draw (0,0) -- (1,\y);
     }
}
\end{tikzpicture}
  • Your first snippet solved my problem! Can you give a reference to these two solutions? So I can understand them better? Thnx anyway! – Dror Jun 25 '11 at 10:29
  • 1
    @Dror: pages 507 and 508 of the TikZ v2.10 manual (“Options to customize the foreach-statement”). – Caramdir Jun 25 '11 at 10:31
  • See also tex.stackexchange.com/questions/21557/… – Caramdir Jun 25 '11 at 10:31
  • Thnx!! I stopped on page 505... – Dror Jun 25 '11 at 13:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.