Betrachten Sie dieses Beispiel:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[left] at (0,0) (Source) {Source};
\draw [very thick, ->] (0.15,-0.02) -- (2.5,0.48);
\node[right] at (2.5,0.5) (Target1) {abcdefgh};
\node at (Target1) (Target1arrow) {};
\draw [very thick, ->] (2.35,0.52) -- (0,0.02);
\node[right] at (2.5,-0.5) (Target2) {abcdefg};
\node at (Target2) (Target2arrow) {};
\draw [very thick, ->] (0.15,-0.02) -- (2.5,-0.5);
\draw [very thick, ->, shorten <= .5ex, shorten >= .5ex] (Target1arrow) -- (Target2arrow);
\end{tikzpicture}
\end{document}
Ich verstehe, dass der vertikale Pfeil vom Mittelpunkt von ausgeht Target1
und auf den Mittelpunkt von zeigt Target2
, aber in diesem Fall, wo die Längen dieser beiden Ziele fast identisch sind, würde es besser aussehen, wenn der Pfeil gerade wäre. Mit anderen Worten, ich möchte, dass der Anfang des Pfeils am Mittelpunkt von verankert ist Target2
. Ich habe versucht, anchor = Target2.base
die Zeichenfunktion dieses Pfeils zu erweitern, aber es hatte keine Wirkung.
Antwort1
Erstens besteht die Möglichkeit, den Knoten unter den anderen zu setzen (Erklärung von Pier Paolo).
Und es gibt auch die Syntax (node1 |- node2)
, bei der die Linie vertikal gezeichnet wird. In diesem Fall wird das Ende des Pfeils als geschrieben (Target1arrow |- Target2arrow.north)
.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[left] at (0,0) (Source) {Source};
\draw [very thick, ->] (0.15,-0.02) -- (2.5,0.48);
\node[right] at (2.5,0.5) (Target1) {abcdefgh};
\node at (Target1) (Target1arrow) {};
\draw [very thick, ->] (2.35,0.52) -- (0,0.02);
\node[right] at (2.5,-0.5) (Target2) {abcdefg};
\node at (Target2) (Target2arrow) {};
\draw [very thick, ->] (0.15,-0.02) -- (2.5,-0.5);
\draw [very thick, ->, shorten <= .5ex, shorten >= .5ex] (Target1arrow) -- (Target1arrow |- Target2arrow.north);
\end{tikzpicture}
\end{document}