
저는 지금 막 TikZ를 배우고 있으며 몇 가지 제어 구조를 실험하고 있습니다. 누군가 아래 내 코드로 나를 도울 수 있습니까?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
\draw[fill=black] (0,0)circle(0.05) node[above=1.5]{You};
\foreach \(\x,\y) in {(-2,green),(-1,red),(0,black),(1,blue),(2,yellow)}
{
\filldraw[draw=\y] (0,0)--(\x,-1);
\draw[fill=black] (-\x,-1)circle(0.05);
}
\end{tikzpicture}
\end{center}
\end{document}
문제가 내가 사용하려는 곳에서 발생한다는 것을 알고 있습니다.
\foreach \(\x,\y) in {(-2,green),(-1,red),(0,black),(1,blue),(2,yellow)}
TikZ가 이런 일을 처리할 수 있는 방법이 있나요?
답변1
네, 방법이 있습니다.
섹션 83/911 페이지에서PGF/TikZ 매뉴얼(v3.0.0):
여러 변수.두 개의 변수를 동시에 반복하고 싶은 경우가 종종 있습니다. 루프를 중첩할 수 있으므로
\foreach
이는 일반적으로 간단합니다. 그러나 변수가 "동시에" 반복되기를 원하는 경우가 있습니다. 예를 들어 두 좌표를 연결하는 가장자리 목록이 제공되고 이러한 가장자리를 반복하려고 할 수 있습니다. 그렇게 하는 동안 가장자리의 소스와 대상을 서로 다른 두 변수로 설정하려고 합니다.이를 달성하려면 다음 구문을 사용할 수 있습니다.⟨변수⟩단일 TEX 변수일 뿐만 아니라 대신 슬래시( )로 구분된 변수 목록일 수도 있습니다
/
. 이 경우 목록 항목은 슬래시로 구분된 값 목록일 수도 있습니다.가정하면⟨변수⟩목록 항목은 값 목록입니다.⟨명령⟩실행되면 각 변수는⟨변수⟩현재 목록 항목을 구성하는 목록의 한 부분으로 설정됩니다.
PGF/TikZ 문서는 매우 자세하며 전체 섹션에서 \foreach
루프 사용 방법을 매우 잘 안내합니다. 처음 학습할 때 처음부터 끝까지 읽는 것은 권장하지 않지만(전체 문서는 1000페이지가 넘습니다), 새로운 것에 대해 아주 자세하게 배우고 싶다면 매우 좋습니다.
그래서 라인을 교체해야합니다
\foreach \(\x,\y) in {(-2,green),(-1,red),(0,black),(1,blue),(2,yellow)}
~와 함께
\foreach \x/\col in {-2/green, -1/red, 0/black, 1/blue, 2/yellow}
더 설명적이므로 두 번째 변수의 이름을 \col
또는 \color
/ 로 바꾸는 것이 좋습니다 . \colour
(x,y) 좌표 쌍을 상당히 정기적으로 반복하는 것을 발견할 수 있으므로 혼동하지 않으려고 합니다.
귀하의 예는 다음과 같습니다.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [fill=black] (0,0) circle (0.05) node [above=1.5] {You};
\foreach \x/\col in {-2/green, -1/red, 0/black, 1/blue, 2/yellow}
{
\filldraw [draw=\col] (0, 0) -- (\x, -1);
\draw [fill=black] (-\x, -1) circle (0.05);
}
\end{tikzpicture}
\end{document}
다음은 다음과 같이 컴파일됩니다.
답변2
글쎄요, 루프와 같은 Python을 지원하더라도 \(
인라인 수학 환경이 열려 있기 때문에 여전히 문제가 발생할 수 \(\alpha\)
있습니다 $\alpha$
.
하지만 그렇지 않습니다.
따라서 당신은 사용해야합니다
\foreach \x/\y in {-2/green,-1/red,0/black,1/blue,2/yellow}