Es gelang mir, einfache Dependency Grammar-Bäume zu setzen (Satzabhängigkeit Grammatikbäume), aber jetzt möchten wir nicht-projektive Graphen haben. Die Lösung mit forest
ist die folgende:
\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, phantom,no edge
[L1, phantom,no edge
[L2, phantom,no edge
[L3, phantom,no edge [ N,name=nacc [wen\\who] ] ] ] ] ]
[glaubst\\believes]
[N [du\\you] ]
[Subjunction
[dass\\that]
[V-fin
[V-prt, name=vprt
[N [ich\\I ] ]
[gesehen\\seen] ]
[habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\end{forest}
\end{document}
Es ergibt sich folgende Abbildung:
Die leeren Baumpositionen habe ich mit Phantomknoten aufgefüllt und hinzugefügt, no edge
so dass diese Phantomknoten nicht verbunden waren. Zusätzlich habe ich per Hand eine Linie von vprt
nach gezeichnet nacc
.
Das ist fast alles, aber ich habe zwei Fragen:
Kann man das besser (einfacher) machen?
Es gibt ein Problem mit der Ausrichtung der beiden Ns. Das ganz linke N ist höher als das rechte. Gibt es eine Möglichkeit, sie auf dieselbe Linie zu bringen? Liegt dieser Unterschied daran, dass die Phantome keine Höhe haben?
Antwort1
Sie müssen nicht no edge
zusätzlich zu angeben phantom
. Sie können die beiden Ns mit einer anderen tier
Option ausrichten:
\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, phantom
[L1, phantom
[L2, phantom
[L3, phantom [N, name=nacc, 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}
\end{document}