我最近从 tikz_qtree 包切换到了 forest。现在我试图改变我的树以适应森林编码。但是,我找不到让单个节点包含两条线的方法。我不希望示例中的 I 节点分支到 are。在 tikz-qtree 包中,可以使用以下命令完成此操作:
\tikzset{every tree node/.style={align=center,anchor=north}}
\documentclass[12pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{forest}
\usepackage{ucs}
\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots.
\geometry{a4paper}
\usepackage{gb4e}
\usepackage{flexisym}
\begin{document}
\begin{exe}
\ex
\begin{forest}, baseline
[IP,
[Spec]
[I\textprime,
[I \\ are]
[VP]
]]
\end{forest}
\end{exe}
\end{document}
答案1
要执行此操作,forest
您还需要告诉它将节点文本对齐为center
。我添加了一个qtree
样式,它为每个节点执行此操作,并且使分支连接起来,forest
这与默认样式不同,在我看来,默认样式有点丑陋。
\documentclass[12pt]{article}
\usepackage{forest}
\forestset{qtree/.style={for tree={parent anchor=south,
child anchor=north,align=center,inner sep=0pt}}}
\usepackage{flexisym}
\begin{document}
\begin{forest}, baseline, qtree
[IP
[Spec]
[I\textprime,
[I\\are]
[VP]
]]
\end{forest}
\end{document}
答案2
这是对Alan Munn 的解决方案。如果所有带有 样式的树qtree
都应与 对齐baseline
,那么您也可以将其添加到qtree
样式中:
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\forestset{
qtree/.style={
baseline,
for tree={
parent anchor=south,
child anchor=north,
align=center,
inner sep=1pt,
}}}
\usepackage{flexisym}
\begin{document}
\begin{forest}
qtree,
[IP
[Spec]
[I\textprime,
[I\\are]
[VP]
]
]
\end{forest}
\end{document}