![Dependencia tipográfica Árboles gramaticales con constituyentes discontinuos](https://rvso.com/image/298784/Dependencia%20tipogr%C3%A1fica%20%C3%81rboles%20gramaticales%20con%20constituyentes%20discontinuos.png)
Logré componer árboles simples de gramática de dependencia (Composición tipográfica de árboles gramaticales de dependencia), pero ahora quiero tener gráficos no proyectivos. La solución con forest
es la siguiente:
\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}
Esto produce la siguiente figura:
Llené las posiciones vacías del árbol con nodos fantasmas y los agregué no edge
para que estos nodos fantasmas no estuvieran conectados. Además, tracé una línea de vprt
a nacc
a mano.
Esto es casi todo, pero tengo dos preguntas:
¿Se puede hacer esto mejor (más simple)?
Hay un problema con la alineación de las dos N. La N más a la izquierda es más alta que la derecha. ¿Hay alguna manera de ponerlos en la misma línea? ¿Esta diferencia se debe a que los fantasmas no tienen altura?
Respuesta1
No necesitas no edge
además de phantom
. Puedes alinear las dos N usando otra tier
opción:
\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}