Vertikaler TikZ-Pfeil, der in der Mitte des Ziels verankert ist

Vertikaler TikZ-Pfeil, der in der Mitte des Ziels verankert ist

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}

Bildbeschreibung hier eingeben

Ich verstehe, dass der vertikale Pfeil vom Mittelpunkt von ausgeht Target1und 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.basedie 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}

Bildbeschreibung hier eingeben

verwandte Informationen