ノードまたは層をフォレスト内の特定の他のノードの下に強制的に設定

ノードまたは層をフォレスト内の特定の他のノードの下に強制的に設定

勤務地不連続な構成要素を持つ依存関係文法ツリーの組版2つの不連続点を持つグラフを設定してみます。

最初の図は、私が望んでいることを実行します。仕様naccによって他の N が整列されておりtier、2 番目の N は V-ptr の子であるため、V-ptr より低くなります。2 番目の図では、対応する N はich技術的には最上位の V の子であるため、V-ptr より低くなりません。2 つの N または V-ptr より下の層を取得する方法 (ファントムなし) はありますか?

\documentclass{article}

\usepackage{forest}



\forestset{
dg edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom,where n children=0{tier=word,edge=dotted,calign with current edge}{}}},
}


\begin{document}

\begin{forest}
dg edges
[V
  [ N,name=nacc,no edge,tier=mytier, [wen\\who] ]
  [glaubst\\believes] 
  [N [du\\you] ]
  [Subjunction
    [dass\\that]
    [V-fin
      [V-prt, name=vprt
        [N,tier=mytier, [ich\\I ] ]
        [gesehen\\seen] ]
      [habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\end{forest}


\begin{forest}
dg edges
[V
  [N,name=nacc,no edge,tier=mytier, [wen\\who] ]
  [glaubst\\believes] 
  [N,name=nich,no edge,tier=mytier, [ich\\I ] ]
  [N [du\\you] ]
  [Subjunction
    [dass\\that]
    [V-fin
      [V-prt, name=vprt
        [gesehen\\seen] ]
      [habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\draw (vprt.south)--(nich.north);
\end{forest}

\end{document}

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

編集:私が望むことを達成する 1 つの方法は、ファントムの娘を使用してV-ptr、それをティアと組み合わせることです。

\documentclass{article}

\usepackage{forest}

\forestset{
dg edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom,where n children=0{tier=word,edge=dotted,calign with current edge}{}}},
}


\begin{document}



\begin{forest}
dg edges
[V
  [N,name=nacc,no edge,tier=mytier, [wen\\who] ]
  [glaubst\\believes] 
  [N,name=nich,no edge,tier=mytier, [ich\\I ] ]
  [N [du\\you] ]
  [Subjunction
    [dass\\that]
    [V-fin
      [V-prt, name=vprt
        [down,phantom,tier=mytier]
        [gesehen\\seen] ]
      [habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\draw (vprt.south)--(nich.north);
\end{forest}

\end{document}

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

しかし、私はどういうわけか、ノードが他のノードの下にあることを指定できるのではないか、つまり、tikzツリーに直接存在しない優位関係を構文を使用して表現できるのではないかと思いました。

答え1

このソリューションではphantomノードを使用しますが、Stefan はそれを望んでいないことはわかっていますが、tierこれが存在しない場合に、第 1 レベルの子を第 5 レベルの子と整列させる方法がわかりません。最初の例には参照ノードがありましたが、2 番目の例にはありません。もちろん、より良いソリューションがあれば歓迎します。

\documentclass{article}

\usepackage{forest}

\forestset{
dg edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom,where n children=0{tier=word,edge=dotted,calign with current edge}{}}},
}

\begin{document}

\begin{forest}
dg edges
[V
  [N,name=nacc,no edge,tier=mytier, [wen\\who] ]
  [glaubst\\believes] 
  [N,name=nich,no edge,tier=mytier, [ich\\I ] ]
  [N [du\\you] ]
  [Subjunction
    [dass\\that]
    [V-fin
      [V-prt, name=vprt
       [A, phantom, tier=mytier, [gesehen\\seen, name=seen] ]]
      [habe\\have] ] ] ]
\draw[dotted] (vprt.south)--(seen.north);
\draw (vprt.south)--(nacc.north);
\draw (vprt.south)--(nich.north);
\end{forest}

\end{document}

2番目のバージョン

以前のバージョンでは結果は期待どおりでしたが、phantomノードを親として配置すると、いくつかの不便が生じます。ノードが 兄弟であってもノードと位置合わせされている[gesehen\\seen]場合は簡単です。ファントム ノードは垂直方向のスペースを占有せず、エッジを再描画する必要はありません。このソリューションは、Stefan Müller によって提案されました。phantom[gesehen\\seen]'sN[gesehen\\seen]

\begin{forest}
dg edges
[V
  [N,name=nacc,no edge,tier=mytier, [wen\\who] ]
  [glaubst\\believes] 
  [N,name=nich,no edge,tier=mytier, [ich\\I ] ]
  [N [du\\you] ]
  [Subjunction
    [dass\\that]
    [V-fin
      [V-prt, name=vprt
       [A, phantom, tier=mytier]
       [gesehen\\seen] ]
      [habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\draw (vprt.south)--(nich.north);
\end{forest}

どちらのコードも結果は次のようになります。

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

答え2

phantom質問を完全に理解できているかどうかはわかりません。つまり、なぜ を避けたいのか、受け入れられる回答の基準は何かがわかりません。ただし、次のものは を避けていますphantom。同様に不快だと考えられることを行うかどうかは、よくわかりません ;)。

\documentclass[border=5pt]{standalone}

\usepackage{forest}

\forestset{
dg edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom,where n children=0{tier=word,edge=dotted,calign with current edge}{}}},
}


\begin{document}



\begin{forest}
dg edges
[V
  [N,name=nacc,no edge,tier=mytier, l*=5.5, [wen\\who] ]
  [glaubst\\believes]
  [N,name=nich,no edge,tier=mytier, [ich\\I ] ]
  [N [du\\you] ]
  [Subjunction
    [dass\\that]
    [V-fin
      [V-prt, name=vprt
        [gesehen\\seen]
      ]
      [habe\\have]
    ]
  ]
]
\draw (vprt.south)--(nacc.north);
\draw (vprt.south)--(nich.north);
\end{forest}

\end{document}

幻影のない木

関連情報