Arbeiten vonSatzabhängigkeit Grammatikbäume mit diskontinuierlichen BestandteilenIch versuche, einen Graphen mit zwei Unstetigkeiten zu erstellen.
Die erste Abbildung macht, was ich will. Sie hat nacc
und das andere N sind nach einer tier
Spezifikation ausgerichtet und da das zweite N ein Kind von V-ptr ist, ist es niedriger als V-ptr. In der zweiten Abbildung ich
ist das entsprechende N technisch gesehen ein Kind des obersten V und daher nicht niedriger als V-ptr. Gibt es eine Möglichkeit (ohne Phantome), die beiden Ns oder die Ebene unter V-ptr zu erhalten?
\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}
Bearbeiten:Eine Möglichkeit, mein Ziel zu erreichen, besteht darin, eine Phantomtochter zu verwenden V-ptr
und sie mit der Ebene zu koppeln:
\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}
Aber ich dachte irgendwie, dass es möglich wäre, anzugeben, dass Knoten unter anderen Knoten liegen sollten, das heißt, tikz
eine Syntax zu verwenden, um Dominanzbeziehungen auszudrücken, die nicht direkt im Baum vorkommen.
Antwort1
Diese Lösung verwendet einen phantom
Knoten, und ich weiß, dass Stefan das nicht will, aber ich weiß nicht, wie ich untergeordnete tier
Elemente der ersten Ebene mit einem untergeordneten Element der fünften Ebene ausrichten kann, wenn dieses nicht existiert. Das erste Beispiel hatte einen Referenzknoten, der im zweiten fehlt. Natürlich bin ich offen für bessere Lösungen.
\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. Version
Obwohl das Ergebnis mit der vorherigen Version wie erwartet war, führt das Platzieren des phantom
Knotens als [gesehen\\seen]
übergeordneter Knoten zu einigen Unannehmlichkeiten. Es ist einfacher, wenn phantom
der Knoten ein Bruderknoten ist
[gesehen\\seen]'s
, obwohl er mit N
den Knoten ausgerichtet ist. Der Phantomknoten nimmt keinen vertikalen Raum ein und es ist nicht erforderlich, die Kante neu zu zeichnen [gesehen\\seen]
. Diese Lösung wurde von Stefan Müller vorgeschlagen.
\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}
Beide Codes führen zu:
Antwort2
Ich bin mir nicht ganz sicher, ob ich die Frage verstehe. Das heißt, ich bin mir nicht sicher, warum Sie vermeiden möchten phantom
und was die Kriterien für eine akzeptable Antwort sind. Im Folgenden wird jedoch vermieden phantom
. Ob es irgendetwas bewirkt, das Sie als ebenso anstößig empfinden, weiß ich nicht so genau ;).
\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}