これは基本的に同じ質問ですForest: スペースを取らないファントムノードを作成しますか?しかし、そこで提案されている解決策は、フォレスト 2.1.5 では機能しません。ファントム S がスペースを占有しないようにしたいのです。ベースラインをファントム ノードに設定してみましたが、効果はありませんでした。
\documentclass{article}
\usepackage{forest}
\useforestlibrary{linguistics}
\begin{document}
\noindent
This is some very informative text, that is very informative.\\
\begin{forest}
[\phantom{S}
[S, no edge, baseline
[NP,name=np11
[he]]
[VP, name=vp1
[V,name=v1 [knows]]]]
[S, no edge, name=s2
[V, name=vcoord, no edge [and, name=and, no edge]]
[VP
[V,name=v2 [loves]]
[NP, name=np22 [this record, roof]]]]]
\draw (s2.south)--(np11.north)
(vp1.south)--(np22.north);
\draw[thick] (vcoord.south)--(v1.north)
(vcoord.south)--(v2.north)
(vcoord.south)--(and.north);
\end{forest}
\end{document}
答え1
解決策は、マクロではなくphantom
キーを使用することです。マクロでは、S が非表示になります。forest
\phantom
\documentclass{article}
\usepackage[linguistics]{forest}
\begin{document}
\noindent
This is some very informative text, that is very informative.\\
\begin{forest}
[S, phantom
[S, no edge, baseline
[NP,name=np11
[he]]
[VP, name=vp1
[V,name=v1 [knows]]]]
[S, no edge, name=s2
[V, name=vcoord, no edge [and, name=and, no edge]]
[VP
[V,name=v2 [loves]]
[NP, name=np22 [this record, roof]]]]]
\draw (s2.south)--(np11.north)
(vp1.south)--(np22.north);
\draw[thick] (vcoord.south)--(v1.north)
(vcoord.south)--(v2.north)
(vcoord.south)--(and.north);
\end{forest}
\end{document}