I have a (TikZ) diagram with several "blocks" of text connected by arrows. For reasons the (centers of the) blocks are not precisely horizontally aligned, but I'd still like my vertical arrows to be perfectly, well, vertical. Example:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node[rectangle, draw] (a) at (0,0) {Some rather long text};
\node[rectangle, draw] (b) at (.5,-2) {Even more text};
\path[->] (a) edge (b);
\path[red, ->] (a.315) edge (b.130);
\end{tikzpicture}
\end{document}
Instead of the black arrow, I'd prefer the red one which I've created by fiddling around with stupid numbers. Hence:
Is there a way to create, automatically, instead of the black arrow-between-centers, an arrow which is (1) perfectly vertical and (2) intersects the original arrow roughly at its center?



anchor=easttoo in order to not calculating manually the horizontal alignment. So,\documentclass[tikz]{standalone} \begin{document} \tikzset{mynode/.style={rectangle,draw,anchor=east}} \begin{tikzpicture} \node[mynode] (a) at (0,0) {Some rather long text}; \node[mynode] (b) at (0,-2) {Even more text}; \draw[->] (b|-a.south) -- (b); \end{tikzpicture} \end{document}would be an easier way. – koleygr Nov 14 '18 at 14:58