Ist es möglich, in \foreach statt Zahlen und Konstanten auch Funktionen zu verwenden?

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round, x=1cm, y=1cm, scale=1]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\foreach \x/\y in {0/$0$,1/$1$,sqrt(2)/$\sqrt{2}$,pi/$\pi$,5/$5$}
\draw [shift={(\x,0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {\y};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Die sqrt(2) klappt nicht. Ich hab schon {sqrt(2)} und $sqrt(2)$ probiert. Oder bleibt nichts übrig, als einen gerundeten Wert einzutragen?

gefragt 12 Feb '15, 13:30

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%


Wenn die x-Koordinate für die shift Option erst berechnet werden muss und in der Rechnung Klammern vorkommen, muss diese Berechnung der x-Koordinate in geschweiften Klammern stehen. Das hat nichts mit \foreach zu tun.

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\draw [shift={({sqrt(2)},0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {$\sqrt{2}$};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Wenn man im oben stehenden Beispiel shift={({sqrt(2)},0)} durch shift={(sqrt(2),0)} ersetzen würde, dann würde man ebenfalls die Fehlermeldung ! Package pgf Error: No shape named sqrt(2 is known erhalten. Das liegt daran, dass alles zwischen der öffnenden Koordinatenklammer und der ersten schließenden runden Klammer als Nodenamen interpretiert wird, wenn darin kein Komma vorkommt.

Verwende deshalb entweder ({\x},0) als Koordinatenangabe für shift oder {{sqrt(x)}} im Argument von \foreach, da die äußere geschweifte Klammer beim Lesen des Argumentes entfernt wird.

Also

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\foreach \x/\y in {0/$0$,1/$1$,sqrt(2)/$\sqrt{2}$,pi/$\pi$,5/$5$}
\draw [shift={({\x},0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {\y};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

oder

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\foreach \x/\y in {0/$0$,1/$1$,{{sqrt(2)}}/$\sqrt{2}$,pi/$\pi$,5/$5$}
\draw [shift={(\x,0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {\y};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text


Auch wenn Du bei der Konstruktion von Pfaden Berechnungen für die Koordinaten durchführen lässt, die Klammern enthalten, musst Du diese durch geschweifte Klammern schützen. Hier ist dazu mal noch ein Beispiel:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[help lines,step=.5cm](0,0)grid(1.5,5);
\draw (0,0)--({sqrt(2)},0)--({sqrt(2)},pi-.5)--(0,{sqrt(2)+pi})--cycle;
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 12 Feb '15, 13:43

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 12 Feb '15, 14:54

Vielen Dank, du erklärst das immer super gut!

(12 Feb '15, 14:59) tom75
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×731
×21

gestellte Frage: 12 Feb '15, 13:30

Frage wurde gesehen: 8,612 Mal

zuletzt geändert: 12 Feb '15, 14:59

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×