Eine alternative Lösung zu der von @esdd wäre mit der Plain TeX Primitive `\if`.
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\if\x0\else
\node at (\x,0) {$\x$};
\fi
}
\end{tikzpicture}
\end{document}
Falls nur einer der beiden Vergleichspartner expandiert werden soll, bietet sich `\ifx` an:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\expandafter\ifx\x0\else
\node at (\x,0) {$\x$};
\fi
}
\end{tikzpicture}
\end{document}
Das Ergebnis ist natürlich immer das gleiche.
> ![alt text][1]
---
Man kann auch eine der zahlreichen Funktionen aus `etoolbox` verwenden:
\documentclass[tikz]{standalone}
\usepackage{etoolbox}
\begin{document}
% \ifnumcomp (Nur für Zahlen)
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\ifnumcomp{\x}{=}{0}{}{
\node at (\x,0) {$\x$};
}
}
\end{tikzpicture}
% \ifnumequal (Nur für Zahlen)
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\ifnumequal{\x}{0}{}{
\node at (\x,0) {$\x$};
}
}
\end{tikzpicture}
% ifstrequal (Braucht wieder expandafter)
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\expandafter\ifstrequal\expandafter{\x}{0}{}{
\node at (\x,0) {$\x$};
}
}
\end{tikzpicture}
% ifdefequal (Braucht wieder expandafter)
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\expandafter\ifdefequal\expandafter{\x}{0}{}{
\node at (\x,0) {$\x$};
}
}
\end{tikzpicture}
\end{document}
---
Um mehrere Elemente auszuschließen muss man entweder die `\if`s schachteln oder verschachtelte `\foreach` bauen.
bauen. Die Methode mit den verschachtelten `\foreach` erscheint zwar aufwendiger, lohnt sich aber so ab 5 ausgeschlossenen Elementen, da man nicht für jedes ein weiteres `\if..\fi` Paar braucht.
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \x in {-2,...,6} {
\if\x0\else
\if\x3\else
\node at (\x,0) {$\x$};
\fi
\fi
}
\end{tikzpicture}
\begin{tikzpicture}
\newif\ifinlist
\foreach \x in {-2,...,6} {
\inlisttrue
\foreach \s in {0,3} {
\if\x\s
\global\inlistfalse
\fi
}
\ifinlist
\node at (\x,0) {$\x$};
\fi
}
\end{tikzpicture}
\end{document}
> ![alt text][2]
[1]: http://texwelt.de/wissen/upfiles/schleife.PNG
[2]: http://texwelt.de/wissen/upfiles/t-0.png