Tikz: Ist es möglich, den Linienstil innerhalb desselben \draw-Befehls zu ändern?

Tikz: Ist es möglich, den Linienstil innerhalb desselben \draw-Befehls zu ändern?

Ist es möglich, den Linienstil in einer Tikz-Figur mit demselben \drawBefehl zu ändern?

Ich suche so etwas wie:

\documentclass[tikz]{standalone}
\begin{document}
    \begin{tikzpicture}
        \draw[style1] (0,0) -- ++(1,0)  **CHANGE STYLE** -- ++(1,0);
    \end{tikzpicture}
\end{document}

Die Hauptmotivation besteht darin, dass ich die relativen Koordinaten nicht verlieren möchte, wenn ich mit einem langen \drawBefehl fortfahre.

Antwort1

Sie können nicht mehrere Linienstile innerhalb desselben Pfads haben. Sie können praktisch überall auf einem Pfad eckige Klammern einfügen, um Optionen zu ändern, aber die meisten davon wirken sich dann auf den gesamten Pfad aus.

Ein Ausweg besteht darin, die edgeOperation zu verwenden, die einem Knoten darin ähnelt, dass es sich tatsächlich um einen separaten Pfad handelt:

\draw[style1] (0,0) -- ++(1,0) edge[style2] ++(1,0);

Dies funktioniert gut für gerade Linien und einfache Kurven (versuchen Sie bend leftund in angleals out angleOptionen in style2).

Ergänzend zu Jens Polz‘ Antwort würde ich vorschlagen, die coordinateOperation anstelle von zu verwenden node: Wenn Sie sie verwenden, müssen Sie keine leeren Knoteninhalte angeben und Sie erhalten auch keine Lücken in Ihrem Pfad:

\draw[style1] (0,0) -- ++( 1,0) coordinate (x);
\draw[style2] (x)   -- ++( 0,1) coordinate (x);
\draw[style3] (x)   -- ++(-1,0);

Es ist möglich, den gleichen Namen für diese temporäre Koordinate wiederzuverwenden.

Antwort2

Ich bin mir nicht ganz sicher, ob man den Stil innerhalb eines Plotbefehls ändern kann, daher würde mich eine Antwort auf deine Frage interessieren. Um die relativen Koordinaten jedoch nicht zu verlieren, kannst du Folgendes tun. Indem du einen Knoten an der letzten Koordinate deines Plotbefehls platzierst und benennst, kannst du ihn im nächsten aufrufen, ohne deine relativen Koordinaten zu verlieren:

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

verwandte Informationen