TiKZはノードを接続する線が同じエンドポイントを持つようにします

TiKZはノードを接続する線が同じエンドポイントを持つようにします

以下の MWE を使用します。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usepackage{ textcomp }

\begin{document}
\begin{tikzpicture}
\Tree [ 
  .TP [ 
      .T' \node(C){T+verb}; [
          .vP \qroof{`ana}.DP [
             .v' \node(B){v+{\textlangle}verb{\textrangle}}; [
                 .VP [
                     .V' \node(A){V+{\textlangle}verb{\textrangle}}; \qroof{taalib}.DP 
                 ]
             ]
          ]
      ]
  ]
]
\draw [semithick,->] (A) to[out=270,in=180] (B);
\draw [semithick,->] (B) to[out=270,in=180] (C);
\end{tikzpicture}
\end{document}

次のような出力が得られます:

最初の矢印の終わりと 2 番目の矢印の始まりが一致しません

「V+」からの矢印の終点と「v+」からの矢印の始点が同じ場所にあり、おそらく小さな黒い点でそれらを接続していると、ツリーの見た目がはるかに良くなり、より直感的に正確になると思います。そうすれば、同じ動詞が両方の動きをしていることがよりよく示されます。これを実現する方法を誰か知っていますか?

答え1

ドット付きのノードを追加し、イン角度とアウト角度を使用する代わりに、bendパラメータを使用できます。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usetikzlibrary{positioning}
\newcommand\TR[1]{\textlangle#1\textrangle}
\usepackage{ textcomp }

\begin{document}
\begin{tikzpicture}
\Tree [ 
  .TP [ 
      .T\1 \node(C){T+verb}; [
          .vP \qroof{`ana}.DP [
             .v\1 \node(B){v+\TR{verb}}; [
                 .VP [
                     .V\1 \node(A){V+\TR{verb}}; \qroof{taalib}.DP 
                 ]
             ]
          ]
      ]
  ]
]
\draw [semithick] (A.south) edge [bend left=70,->,shorten >=.2em] (B.south) 
    node (D) [draw, fill, circle, minimum size=2pt,below = -.25em of B.south,
       inner sep=0pt] {} ;
\draw [semithick] (D) edge [bend left=70,->,shorten <=.5em] (C);
\end{tikzpicture}
\end{document}

また、素数の `'' の代わりに、トレースをマークするコマンドなど、いくつかの変更も行いました\1。これにより、入力の手間が大幅に省けます。

コードの出力

答え2

すでに黒い点を使った解決策がありますが、開始アンカーと終了アンカーを使って遊ぶこともできます。B.240構文では、角度240のノード境界上の点を選択します。例を見てください。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usepackage{ textcomp }

\begin{document}
\begin{tikzpicture}
\Tree [ 
  .TP [ 
      .T' \node(C){T+verb}; [
          .vP \qroof{`ana}.DP [
             .v' \node(B){v+{\textlangle}verb{\textrangle}}; [
                 .VP [
                     .V' \node(A){V+{\textlangle}verb{\textrangle}}; \qroof{taalib}.DP 
                 ]
             ]
          ]
      ]
  ]
]
\draw [semithick,->] (A) to[out=270,in=270] (B.south);
\draw [semithick,->] (B.240) to[out=240,in=180] (C);
\end{tikzpicture}
\end{document}

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

関連情報