ターゲットの中心に固定された垂直のTikZ矢印

ターゲットの中心に固定された垂直のTikZ矢印

次の例を考えてみましょう。

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

ここに画像の説明を入力してください

垂直矢印は の中点から始まり のTarget1中点を指していることは理解していますTarget2が、この 2 つのターゲットの長さがほぼ同じである場合、矢印はまっすぐである方が見栄えが良くなります。つまり、矢印の始点が の中心点に固定されるようにしたいのです。この矢印の描画機能にTarget2追加してみましたanchor = Target2.baseが、効果はありませんでした。

答え1

まず、ノードを他のノードの下に配置するオプションがあります (Pier Paolo 氏の説明)。

また、線を垂直に描く構文もあります(node1 |- node2)。この場合、矢印の端は と書きます(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}

ここに画像の説明を入力してください

関連情報