```
\documentclass{article}

\usepackage{tikz}

\begin{document}

% DOES NOT WORK
%\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (\p and 1);

%WORKS
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (1 and \p);

\end{document}

```

`(1 and \p)` works but `(\p and 1)` does not, why?
['https://tex.stackexchange.com/questions/13124', 'https://tex.stackexchange.com', 'https://tex.stackexchange.com/users/2099/']
Spaces after TeX commands are ignored, thus by using `\p and 1` you'll get an equivalent of, say, `1and 1`, which you can verify to give the same error. Therefore we just need to restore the space:

```
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (\p{} and 1);

```

Note that, as Jake mentions, this syntax is deprecated (refer to the [TikZ manual](http://ctan.org/pkg/pgf)).
The `(<x radius> and <y radius>)` syntax is old and, if not deprecated, at least not encouraged any more. The current way to do is is to use `[x radius]` and `[y radius]`:

```
\documentclass{article}

\usepackage{tikz}

\begin{document}

% WORKS with current syntax
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse [x radius=\p, y radius=1];

%WORKS
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse [x radius=1, y radius=\p];

\end{document}

```