\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
分成两行?No1
Feng
答案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}
第一棵树:
第二棵树:
答案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}