3

I have this example

\documentclass{article}
\usepackage{tikz}

\begin{document}


\begin{tikzpicture} 

\foreach \i in {0,2,...,10}
{\node[circle,draw] (\i) at (0,\i) {\i}; }  

\foreach \i in {1,3,...,11}
{\node[circle,draw] (\i) at (2,\i) {\i}; }  

\foreach \i in {0,2,...,8}
{\pgfmathparse{\i+1}\draw (\i)--(\pgfmathresult);}  

\draw (10)--(11);

\end{tikzpicture}   

\end{document}

With this output

enter image description here

Why lines on right nodes go to east side?

6

The result is a decimal e.g. 1.0 and this is a point on the border. You need an integer 1:

\documentclass{article}
\usepackage{tikz}

\begin{document}


\begin{tikzpicture}

\foreach \i in {0,2,...,10}
{\node[circle,draw] (\i) at (0,\i) {\i}; }

\foreach \i in {1,3,...,11}
{\node[circle,draw] (\i) at (2,\i) {\i}; }

\foreach \i in {0,2,...,8}
{\pgfmathparse{int(\i+1)}\draw (\i)--(\pgfmathresult);}

\draw (10)--(11);

\end{tikzpicture}

\end{document}

enter image description here

4

Ulrike gave you the reason why it trips up. But you can also shorten things a bit. Here are two examples of even-odd comparison which gives the same result. Also for simple expressions it is generally sufficient to use \numexpr\x-1\relax (if extra expansion is needed then you can prefix it with \number)

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture} 
\foreach\x[evaluate={\xx=isodd(\x)*2},count=\xi from -1]in{0,...,11}{
\node[circle,draw] (n-\x) at (\xx,\x) {\x};
\ifodd\x\relax\draw (n-\x) -- (n-\xi);\fi
}
\end{tikzpicture}  
\end{document}

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.