Mit foreach auf Einträge in String-Vektor zugreifen

Tabellen und Grafiken erstellen und anordnen


Rev
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Di 21. Jun 2011, 08:36

Mit foreach auf Einträge in String-Vektor zugreifen

Beitrag von Rev »

Hallo alle zusammen,

weil ich mir nicht so ganz sicher war ob das hier eher in das Thema Strukturen oder eher in das Thema Grafiken gehört, habe ich einfach mal ne Münze geworfen. Mein Problem ist sehr wahrscheinlich ein relativ einfaches. Allerdings komme ich einfach nicht auf meinen Fehler. Ich habe eine foreach-Schleife in TIKZ, die mir 3 Kreisbögen (als Pfeile) zeichnen soll. Zwischen die 2 Enden möchte ich einen Text aus einem string ausgeben lassen. D.h. für den inneren Kreis möchte ich das erste Element aus dem dem String-Vektor ausgeben lassen.. für den mittleren Kreis das zweite Element usw. usw.

Kann mir jemand sagen, wie ich das am besten anstelle bzw. wo mein Denkfehler liegt? Auch wenn es immer heist, dass Minimalbeispiele verwendet werden sollten, ist mein Quellcode doch so klein, dass es als Minimalbeispiel durchgehen kann. Deshalb hier noch kurz der Code, den ich bis jetzt geschrieben habe:
\begin{tikzpicture}[scale=0.6, auto, node distance=2cm]
\def\time{{$T$},{$t_{proc}$},{$\Delta$}}

\foreach \x in {1,2,3}{
	\draw [->] (-70:\x)  arc (-70:0:\x) arc (0:90:\x)  arc (90:180:\x) arc (180:250:\x) node[](){\time{\x}};
}
\end{tikzpicture}
Gruß Christian

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Hallo,

falls du nur drei Kreisbögen mit dem jeweiligen Text zwischen den Enden ausgeben willst, dann wäre eine Möglichkeit
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=0.6]
\foreach \x/\y in {1/$T$,2/$t_{proc}$,3/$\Delta$}{ 
    \draw [->] (-90:\x)node{\y}(-70:\x)arc (-70:250:\x);
} 
\end{tikzpicture}
\end{document}
Alternativ gingen auch
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=0.6]
\newcommand\mytime{{$T$},{$t_{proc}$},{$\Delta$}}
\foreach \x[count=\xi] in \mytime{ 
    \draw [->] (-90:\xi)node{\x}(-70:\xi)arc (-70:250:\xi);
} 
\end{tikzpicture}
\end{document}
oder
\documentclass{standalone} 
\usepackage{tikz,etoolbox} 
\begin{document} 
\begin{tikzpicture}[scale=0.6] 
\newcommand\mytime{{$T$},{$t_{proc}$},{$\Delta$}} 
\foreach \x[count=\xi] in {1,2,3}{
  \foreach \y[count=\yi] in \mytime{
    \ifnumequal{\xi}{\yi}{\draw [->] (-90:\x)node{\y}(-70:\x)arc (-70:250:\x);}{} 
}} 
\end{tikzpicture} 
\end{document}
Gruß
Elke

Rev
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Di 21. Jun 2011, 08:36

Beitrag von Rev »

Wow, vielen Dank für die Versionen :). Das mit dem "in" in der "foreach"-Schleife kannte ich noch nicht... Werde ich mir auf jeden Fall merken. Das kann man immer mal wieder brauchen. Vielen Dank nochmal :)

Gruß Chris

Antworten