
是否可以在同一命令中更改 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);
這對於直線和基本曲線效果很好(嘗試bend left
、in angle
和out angle
作為 中的選項style2
)。
添加到 Jens Polz 的答案中,我建議使用該coordinate
操作而不是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}