
Ich suche nach einer Lösung für eine foreach
-Schleife unter Verwendung des knots
Pakets. Ich habe herausgefunden, dass das Definieren einer foreach-Schleife und die Verwendung von Strängen darin keine Ausgabe liefert, es sei denn, ich verwende die Zeichenoption. Es werden jedoch keine Knoten erkannt, da die roten Linien keine ID zu haben scheinen. Sehen Sie sich die beiden Bilder links an.
\foreach \x in {2,3,4} { \strand [draw,red,->] (1,\x) -- (4,\x); % instead of [red,->] }
Das Umordnen der Schleife ergibt fast die gewünschte Ausgabe. Allerdings \strand [red,->]
führt die Option nicht alle Optionen für jeden Strang aus. Alle Stränge sind rot, aber nur einer hat einen Pfeil an der Spitze. Im Entwurfsmodus können Sie sehen, dass nur ein Strang erstellt wurde, was angesichts der Definition der Schleife Sinn ergibt. Sehen Sie sich die beiden Bilder rechts an.
Meine Frage lautet also: Wie erstelle ich separate Stränge innerhalb einer Foreach-Schleife?
\documentclass[tikz,border=5mm]{standalone}
%\documentclass[convert={density=1200,size=4320x3200,outext=.png}]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{knots}
%
\begin{document}
\begin{tikzpicture}[scale=1.0,>=latex']
%
\draw[fill=white] (0,0) rectangle (5,6);
%
\begin{knot}[ %draft mode=crossings,
clip width=5,
clip radius=6pt]
%
\strand [red,->]
\foreach \x in {2,3,4} {
(1,\x) coordinate (w\x) -- coordinate (e\x)(4,\x)
};
%
\strand [thick,->] (2,1) -- (2,5);
\strand [thick,->] (3,1) -- (3,5);
%\flipcrossings {2}
\end{knot}
%
\end{tikzpicture}
\end{document}
Antwort1
Sie können eine Schleife verwenden, die keine Gruppen startet.
\documentclass[tikz,border=5mm]{standalone}
%\documentclass[convert={density=1200,size=4320x3200,outext=.png}]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{knots}
%
\begin{document}
\begin{tikzpicture}[scale=1.0,>=latex']
%
\draw[fill=white] (0,0) rectangle (5,6);
%
\begin{knot}[ %draft mode=crossings,
clip width=5,
clip radius=6pt]
%
\edef\x{1}
\loop
\edef\x{\the\numexpr\x+1}
\strand [red,->]
(1,\x) coordinate (w\x) -- coordinate (e\x)(4,\x);
\ifnum\x<4\repeat
%
\strand [thick,->] (2,1) -- (2,5);
\strand [thick,->] (3,1) -- (3,5);
%\flipcrossings {2}
\end{knot}
%
\end{tikzpicture}
\end{document}