Tikz-knots: Определение отдельных нитей в циклах foreach

Tikz-knots: Определение отдельных нитей в циклах foreach

Я ищу решение относительно foreach-loop с использованием knotsпакета. Я выяснил, что определение цикла foreach и использование внутри него нитей не дает никакого вывода, если я не использую опцию draw. Но узлы не распознаются, поскольку красные линии, похоже, не имеют идентификатора. Посмотрите на две картинки слева.

\foreach \x in {2,3,4} {
\strand [draw,red,->] (1,\x) -- (4,\x); % instead of [red,->]
}

Перестановка цикла дает почти нужный результат. Но опция \strand [red,->]не выполняет все опции для каждой нити. Все нити красные, но только одна из них имеет стрелку на конце. Используя черновой режим, вы можете увидеть, что создана только одна нить, что имеет смысл, если взглянуть на определение цикла. Посмотрите на два изображения справа.

Итак, мой вопрос: как создать отдельные цепочки внутри цикла foreach?

\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}

Верхний цикл (режим не-черновика/черновика) — Цикл из полного кода (режим не-черновика/черновика)

решение1

Вы можете использовать цикл, который не запускает группы.

\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}

введите описание изображения здесь

Связанный контент