
Ich weiß, dass ich die Punkte (0,0) und (1,1) mit einer horizontalen und dann einer vertikalen Linie verbinden kann, indem ich
\draw (0,0) -| (1,1);
Gibt es ein Verhalten, das dies mit dem Befehl ermöglicht to
?
\draw (0,0) to[-|] (1,1); % Doesn't work
Zum Kontext: Ich versuche, dies mit CircuiTikz zu tun, und ich möchte einige der anderen Optionen verwenden, die CircuitTikz dem Befehl „to“ hinzufügt.
Antwort1
Es ist möglich, eigene To-Pfade zu definieren, siehe beispielsweise das letzte Beispiel in Kapitel 5 des TikZ-Handbuchs, das Tutorial „Diagramme als einfache Graphen“. Abschnitt 14.13 „To-Pfad-Operation“ enthält meines Erachtens die allgemeine Dokumentation hierzu.
Keine Ahnung, wie das mit circuitikz
anderen Sachen interagiert.
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[hv/.style={to path={-| (\tikztotarget) \tikztonodes}}]
\draw (0,0) to[hv] node [below] {foo} (1,1) ;
\end{tikzpicture}
\end{document}
Antwort2
Nein, der to[]
Pfadbefehl hat keine solche Option (ich binSicheres gibt irgendwo eine Antwort, die einen To-Pfad hinzufügt, der so etwas implementiert, aber ich kann sie nicht finden ... „to“ ist nicht gerade ein suchfreundliches Wort – aber es ist sowieso nicht in implementiert circuitikz
, also ist der Punkt hinfällig).
Sie haben nur wenige Details angegeben, aber wenn Sie der Linie Pole hinzufügen möchten, können Sie den Trick verwenden, dass bei der Verwendung von -|
oder |-
,der Knick ist bei Position 0,5:
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[american]
\draw (0,0) -| node[pos=0.5, ocirc]{} (2,1);% really pos=0.5 is the default...
\end{tikzpicture}
\end{document}
Denken Sie daran, dass "offene" Pole am Ende der Pfadkonstruktion weiß ausgefüllt werden. Wenn Sie also andere Elemente über einen anderen Pfad damit verbinden möchten, müssen Sie den Knotennamen verwenden, damit die Randanker aktiviert werden.nichtdie bloße Koordinate (siehe das Problem mit der Induktivität!)
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[american]
\draw (0,0) -| node[pos=0.5, ocirc](mynode){} (2,1);
\draw (mynode) to[R] (0,1);
\draw (0,0 -| 2,1) to[L] ++(2,0);
\end{tikzpicture}
\end{document}