
동일한 명령으로 tikz 그림의 선 스타일을 변경할 수 있습니까 \draw
?
나는 다음과 같은 것을 찾고 있습니다 :
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[style1] (0,0) -- ++(1,0) **CHANGE STYLE** -- ++(1,0);
\end{tikzpicture}
\end{document}
주된 동기는 긴 명령을 계속하면서 상대 좌표를 잃고 싶지 않다는 것입니다 \draw
.
답변1
동일한 경로 내에 여러 선 스타일을 사용할 수 없습니다. 옵션을 변경하기 위해 경로의 거의 모든 곳에 대괄호를 삽입할 수 있지만 대부분의 경우 전체 경로에 영향을 미칩니다.
한 가지 방법은 edge
실제로 별도의 경로라는 점에서 노드와 유사한 작업을 사용하는 것입니다.
\draw[style1] (0,0) -- ++(1,0) edge[style2] ++(1,0);
이는 직선과 기본 곡선에 적합합니다(try bend left
및 in angle
의 out angle
옵션 style2
).
coordinate
Jens Polz의 답변에 추가하여 다음 대신 작업을 사용하는 것이 좋습니다 node
. 이를 사용하면 빈 노드 내용을 제공할 필요가 없으며 경로에 공백도 생기지 않습니다.
\draw[style1] (0,0) -- ++( 1,0) coordinate (x);
\draw[style2] (x) -- ++( 0,1) coordinate (x);
\draw[style3] (x) -- ++(-1,0);
이 임시 좌표에 동일한 이름을 다시 사용할 수 있습니다.
답변2
플롯 명령 내에서 스타일을 변경할 수 있는지 확실하지 않으므로 귀하의 질문에 대한 답변을 직접 듣고 싶습니다. 그러나 상대 좌표를 잃지 않으려면 다음을 수행할 수 있습니다. 플로팅 명령의 마지막 좌표에 노드를 배치하고 이름을 지정하면 상대 좌표를 잃지 않고 다음 명령에서 이를 호출할 수 있습니다.
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[thick] (0,1) -- ++ (1,0) -- ++ (4,2) -- ++ (1,1) node(A)[inner sep=0]{};
\draw[thick, dashed] (A) -- ++ (-2,0) -- ++ (0,-2) node(B)[inner sep=0]{};
\draw[thick] (B) -- ++ (2,0);
\end{tikzpicture}
\end{document}