森林中一个带有良好节点的良好空节点?

森林中一个带有良好节点的良好空节点?

我想知道“好节点”中的以下规范是否可以让空节点(即下面示例中的 F3 节点的姐妹节点)看起来对称(不下垂)。其他一切(父节点和兄弟节点之间的距离)都可以保持如下所述。我尝试了几种解决方案,但没有找到任何可以让父节点保持相当接近且好(=对称)空节点的方法。在此先感谢您的帮助。

\documentclass{standalone}
\usepackage{forest}
\forestset{
  nice nodes/.style={
  for tree={
  inner sep=1pt, s sep=12pt,
  fit=band,
},
},
default preamble=nice nodes,
}
\useforestlibrary{linguistics}
\forestapplylibrarydefaults{linguistics}
\begin{document}

\begin{forest}
 [F$_4$P[F$_4$]    
 [F$_3$P, [F$_3$, fit=band]
 [{} [A]    [...]  ]]]]]]
\end{forest}

\end{document}

在此处输入图片描述

(注意:这个问题的更广泛背景——也就是为什么我根本不去选择nice empty nodes这里:语言学森林 - 像 qtree 中一样的比例对齐

答案1

空节点始终是一种折衷。您可以将 与任何现有的漂亮样式相结合fit=band。我不知道您更喜欢哪一种。我个人认为fairly nice empty nodes这棵树看起来最好,但作为它的作者,我可能会有偏见。:) 一旦您决定,它们中的任何一个都可以放入default preamble您的树中(除了nice nodes)。

\documentclass{standalone}
\usepackage{forest}
\forestset{
  nice nodes/.style={
  for tree={
  inner sep=1pt, s sep=12pt,
  fit=band,
},
},
% begin fairly nice empty nodes
fairly nice empty nodes/.style={
            delay={where content={}{shape=coordinate,for parent={
                  for children={anchor=north}}}{}}
},
% end fairly nice empty nodes
% begin pretty nice empty nodes
pretty nice empty nodes/.style={
    for tree={
      calign=fixed edge angles,
      parent anchor=children,
      delay={if content={}{
          inner sep=0pt,
          edge path={\noexpand\path [\forestoption{edge}] (!u.parent anchor) -- (.children)\forestoption{edge label};}
        }{}}
    },
  },
% end pretty nice empty nodes
default preamble={ 
nice nodes,
%nice empty nodes, % uncomment the one you want (and delete the ones you don't)
%fairly nice empty nodes,
%pretty nice empty nodes
}
}
\useforestlibrary{linguistics}
\forestapplylibrarydefaults{linguistics}
\begin{document}

\begin{forest}for tree=nice empty nodes
 [F$_4$P[F$_4$]    
 [F$_3$P, [F$_3$]
 [{} [A]    [nice]  ]]]]]]
\end{forest}

\begin{forest}for tree= fairly nice empty nodes
 [F$_4$P[F$_4$]    
 [F$_3$P, [F$_3$]
 [{} [A]    [{fairly nice}]  ]]]]]]
\end{forest}

\begin{forest}for tree= pretty nice empty nodes
 [F$_4$P[F$_4$]    
 [F$_3$P, [F$_3$]
 [{} [A]    [pretty nice]  ]]]]]]
\end{forest}



\end{document}

代码输出

相关内容