# "Illegal unit of measure (pt inserted)" using arithmetic in TikZ foreach

I am using a \foreach loop in TikZ with \i in {2,3,..,5} and I'd like to be able to use the value \i-1. However, every approach I have tried gives me a Illegal unit of measure (pt inserted) error. Below are three minimal examples with my different attempts after reading some answer in this and other forums:

With the evaluate option:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) {N1};
\foreach \i [evaluate=\i as \j using \i-1] in {2,3,..,5}{
% whatever
}
\end{tikzpicture}
\end{document}


With \pgfmathtruncatemacro:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) {N1};
\foreach \i in {2,3,..,5}{
\pgfmathtruncatemacro{\j}{\i - 1}
% whatever
}
\end{tikzpicture}
\end{document}


With \pgfmathparse:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) {N1};
\foreach \i in {2,3,..,5}{
\pgfmathparse{\i - 1}
% whatever
}
\end{tikzpicture}
\end{document}


I have seen plenty of similar examples supposed to work, what am I missing?

My version of PGF/TikZ (as reported by \pgfversion) is 3.0.0.

PD: I know that foreach supports iterating over two variables at the same time, so I could use \foreach \i / \j in {2/1, 3/2, 4/3, 5/4}, but that doesn't scale too well.

• You need to use three periods in the 2,3,...,5 expression, not two.
– Jake
Jun 27 '14 at 12:25

You need to use three periods in the 2,3,...,5 expression, not two.