Forest 中的默认锚定样式是什么?

Forest 中的默认锚定样式是什么?

绘制语言短语圣诞树时,我大多数时候都使用手册sn edges中的forest作为全局默认值,即parent anchor=south, child anchor=north。这将输出以下类型的树:

在此处输入图片描述

但是,有时我想要绘制派生树,它应该显示默认锚定forest

在此处输入图片描述

所以我尝试定义一种derivation tree重置全局样式的样式:

\documentclass[
    ,crop=true
    ,varwidth=\maxdimen
    ]{standalone}

\usepackage{forest}

\forestset{
    .style={for tree={parent anchor=south,child anchor=north}},
    derivation tree/.style={
        for tree={parent anchor={},child anchor={},font=\ttfamily}}
    }

\begin{document}

\begin{forest}
derivation tree
[S[NP][VP[V[\textit{eats}]][NP]]]
\end{forest}

\end{document}

不幸的是,这不起作用:

在此处输入图片描述

我在这里遗漏了什么?

答案1

.style是一种非预期的指定默认值的方法,因此有其缺点。(该包的下一个版本将包含 key default preamble。)它之所以有效,是因为在每个节点的键列表末尾都会调用一个空键……而且由于它位于末尾,因此无法覆盖。

解决方法:重新定义空样式,如代码所示。您可以看到重新定义是环境本地的。

\documentclass[
    ,crop=true
    ,varwidth=\maxdimen
    ]{standalone}

\usepackage{forest}

\forestset{
  .style={for tree={parent anchor=south,child anchor=north}},
    derivation tree/.style={.style={
        for tree={parent anchor={},child anchor={},font=\ttfamily}}
      }
    }

\begin{document}

\begin{forest}
derivation tree
[S[NP][VP[V[\textit{eats}]][NP]]]
\end{forest}

\begin{forest}
[S[NP][VP[V[\textit{eats}]][NP]]]
\end{forest}

\end{document}

相关内容