
同じコマンドで 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
同じパス内に複数の線のスタイルを設定することはできません。パス上のほぼどこにでも角括弧を挿入してオプションを変更できますが、そのほとんどはパス全体に影響します。
1 つの方法はedge
、実際には別のパスであるという点でノードに似ている操作を使用することです。
\draw[style1] (0,0) -- ++(1,0) edge[style2] ++(1,0);
これは直線と基本的な曲線にはうまく機能します (のオプションとして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}