Tikz-knots: Definieren separater Stränge innerhalb von Foreach-Schleifen

Tikz-knots: Definieren separater Stränge innerhalb von Foreach-Schleifen

Ich suche nach einer Lösung für eine foreach-Schleife unter Verwendung des knotsPakets. 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}

Obere Schleife (Nicht-Entwurfs-/Entwurfsmodus) – Schleife vom vollständigen Code (Nicht-Entwurfs-/Entwurfsmodus)

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}

Bildbeschreibung hier eingeben

verwandte Informationen