Forest 中单个节点中的两条线

Forest 中单个节点中的两条线

我最近从 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}

更简单的代码

相关内容