我怎样才能把某物放在树下呢?

我怎样才能把某物放在树下呢?

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}
\tikzset{grow'=right,level distance=32pt}
\tikzset{execute at begin node=\strut}
\tikzset{every tree node/.style={anchor=base west}}
\Tree [.S [.NP [.Det the ] [.N cat ] ]
[.VP [.No1Feng ]
[.PP [.P on ]
[.NP [.Det the ] [.N mat ] ] ] ] ]
\end{tikzpicture}

\end{document}

如何用和No1Feng分成两行?No1Feng

答案1

您发布的代码不会按照输出显示的方式绘制分支。它也没有使用forest

但是,无论您需要哪种类型的分支,以及使用哪种包来生成它们,您都需要创建一个多行节点。与 TiKZ 节点一样,使用设置对齐align=可启用此选项。然后您可以根据需要插入换行符。

在这里,我展示了如何调整您的代码以生成一棵带有换行符的树(但分支如您的代码中所指定的那样 - 而不是如您所谓的输出中所示),以及如何执行此操作forest(分支如​​您的输出中所示,以及指定节点中的换行符)。

\documentclass[multi,varwidth,tikz,border=5pt]{standalone}

\usepackage{forest}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}
\tikzset{grow'=right,level distance=32pt}
\tikzset{execute at begin node=\strut}
\tikzset{every tree node/.style={anchor=base west, align=left}}
\Tree [.S [.NP [.Det the ] [.N cat ] ]
[.VP [.{No1\\Feng} ]
[.PP [.P on ]
[.NP [.Det the ] [.N mat ] ] ] ] ]
\end{tikzpicture}

\begin{forest}
  for tree={
    grow'=0,
    edge path={
      \noexpand\path [draw, thick, \forestoption{edge}] (!u.parent anchor) -- +(5pt,0) |- (.child anchor)\forestoption{edge label};
    },
    parent anchor=east,
    child anchor=west,
    anchor=west,
    align=left,
    base=b,
    tier/.wrap pgfmath arg={tier=tier #1}{level()}
  }
    [S
    [NP
      [Det
        [the]
      ]
      [N
        [cat]
      ]
    ]
      [VP
        [No1\\Feng
        ]
        [PP
          [P
            [on]
          ]
          [NP
            [Det
              [the]
            ]
            [N
              [mat]
            ]
          ]
        ]
      ]
    ]
\end{forest}  

\end{document}

第一棵树:

tikz-qtree 树

第二棵树:

森林树木

答案2

由于树使用节点来保存内容,因此这里也可以采用用于在节点内进行换行的常规技术。我已经使用了\begin{scope}[text width=\widthof{Feng}],然后我们可以用常规方法换行,\\例如[.No1\\Feng ] 您也可以使用align=left而不是text width

\documentclass{article}

\usepackage{tikz}
\usepackage{tikz-qtree}
\tikzset{edge from parent/.style=
{draw,
edge from parent path={(\tikzparentnode.east)
-- +(8pt,0)
|- (\tikzchildnode)}}}
\begin{document}

\begin{tikzpicture}
\tikzset{grow'=right,level distance=4.5em}
\tikzset{execute at begin node=\strut}
\tikzset{every tree node/.style={anchor=base west}}
\begin{scope}[text width=\widthof{Feng}]  %%<--- this
\Tree [.S [.NP [.Det the ] [.N cat ] ]
[.VP [.No1\\Feng ]
[.PP [.P on ]
[.NP [.Det the ] [.N mat ] ] ] ] ]
\end{scope}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容