Flecha vertical TikZ anclada al centro del objetivo.

Flecha vertical TikZ anclada al centro del objetivo.

Considere este ejemplo:

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

ingrese la descripción de la imagen aquí

Entiendo que la flecha vertical comienza desde el punto medio de Target1y apunta al punto medio de Target2, pero en este caso, donde las longitudes de estos dos objetivos son casi idénticas, se vería mejor si la flecha fuera recta. En otras palabras, me gustaría que el inicio de la flecha esté anclado al punto central de Target2. Intenté agregar anchor = Target2.basea la función de dibujo esta flecha, pero no tuvo ningún efecto.

Respuesta1

En primer lugar, existe la opción de poner el nodo debajo del otro (explicó Pier Paolo).

Y también está la sintaxis (node1 |- node2)que dibuja la línea verticalmente. En este caso, el final de la flecha se escribe como (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}

ingrese la descripción de la imagen aquí

información relacionada