Trabalhando deComposição de árvores gramaticais de dependência com constituintes descontínuosTento definir um gráfico com duas descontinuidades.
A primeira figura faz o que eu quero. Possui nacc
e o outro N alinhado por uma tier
especificação e como o segundo N é filho de V-ptr, é inferior a V-ptr. Na segunda figura, o N correspondente ich
é tecnicamente filho do V superior e, portanto, não é inferior a V-ptr. Existe uma maneira (sem fantasmas) de obter os dois Ns ou o nível abaixo do 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}
Editar:Uma maneira de conseguir o que desejo é usar uma filha fantasma V-ptr
e associá-la à camada:
\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}
Mas de alguma forma pensei que seria possível especificar que os nós deveriam estar abaixo de outros nós, ou seja, usando tikz
sintaxe para expressar relações de dominância que não estão diretamente na árvore.
Responder1
Esta solução usa um phantom
nó, e eu sei que Stefan não quer isso, mas não sei como alinhar ( tier
) filhos de primeiro nível com um filho de quinto nível se este não existir. O primeiro exemplo tinha um nó de referência, mas está faltando no segundo. Claro, estou aberto a melhores soluções.
\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ª versão
Embora com a versão anterior o resultado tenha sido o esperado, colocar o phantom
nó como [gesehen\\seen]
pai resulta em alguns inconvenientes. É mais fácil se phantom
o nó for
[gesehen\\seen]'s
irmão, embora esteja alinhado com N
os nós. O nó fantasma não ocupa espaço vertical e não é necessário redesenhar a aresta para [gesehen\\seen]
. Esta solução foi proposta por Stefan Müller.
\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}
Ambos os códigos resultam em:
Responder2
Não tenho certeza se entendi a pergunta. Ou seja, não sei por que você deseja evitar phantom
quais são os critérios para uma resposta aceitável. No entanto, o seguinte evita phantom
. Se faz algo que você considera igualmente desagradável, não tenho tanta certeza;).
\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}