대상 중앙에 고정된 수직 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, 이 두 대상의 길이가 거의 동일한 경우에는 화살표가 직선인 것이 더 보기 좋을 것 같습니다. 즉, 화살표의 시작 부분을 의 중심점에 고정하고 싶습니다 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}

여기에 이미지 설명을 입력하세요

관련 정보