Tikz-knots: foreach 루프 내에서 별도의 가닥 정의

Tikz-knots: foreach 루프 내에서 별도의 가닥 정의

foreach패키지를 사용하여 -loop 에 관한 솔루션을 찾고 있습니다 knots. foreach 루프를 정의하고 내부에 가닥을 사용하면 그리기 옵션을 사용하지 않는 한 어떤 출력도 제공되지 않는다는 것을 알았습니다. 하지만 빨간색 선에는 ID가 없는 것 같기 때문에 매듭이 인식되지 않습니다. 왼쪽의 두 그림을 보세요.

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

여기에 이미지 설명을 입력하세요

관련 정보