我需要在 LaTeX 中制作一个分支树,就像下图这样。我需要一些代码方面的帮助。我不知道该怎么做。
答案1
这需要一些调整和完善(例如,我不清楚标签的算法是什么,所以我的算法可能不太正确,而且有些标签可能在不需要的情况下明确指定),但如果你使用,forest
你可以让很多标签自动为你处理:
\documentclass[tikz,border=5pt]{standalone}
\usepackage{forest}
\begin{document}
\tikzset{
every label/.append style={font=\scriptsize},
my edge labels/.style={font=\scriptsize},
dominant/.append style={label=below:$dominant$},
}
\begin{forest}
for tree={
circle,
draw,
minimum width=2.5em,
l sep+=1.5em,
s sep+=1em,
anchor=center,
edge path={
\noexpand\path[\forestoption{edge}](!u.parent anchor)--(.child anchor)[my edge labels]\forestoption{edge label};
},
},
delay={
where n=1{
edge label/.wrap 2 pgfmath args={
node[midway, left]{$b_{#1}={#2}$}}{level}{n}
}{
edge label/.wrap 2 pgfmath args={
node[midway, right]{$b_{#1}={#2}$}}{level}{n}
},
}
[0, label={left:$L_2=L_3=3$}
[1
[2
[3
[4
]
[12, label={below:$L_2=4$}
]
]
[,phantom]
]
[13, s sep+=1.5em, label={right:$L_3=3$}
[{\phantom{a}}, dominant
]
[14, label={below:$L_3=4$}
]
[15, label={right:$L_3=3$}
[, dominant
]
[16, label={right:$L_3=3$}
]
]
]
]
]
\end{forest}
\end{document}
编辑
稍微整理了一下对齐方式等,并使用样式来确保标签等格式的一致性。
答案2
您可以使用该tikz
包并按如下方式生成一个:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzstyle{level 1}=[sibling distance=30mm]
\tikzstyle{level 2}=[sibling distance=10mm]
\tikzstyle{level 3}=[sibling distance=5mm]
\tikzstyle{level 4}=[sibling distance=5mm]
\node{A}
child
{
node{B}
child
{
node{D}
child{node{H}}
child{node{I}}
}
child
{
node{E}
child{node{J}}
child{node{K}}
}
}
child
{
node{C}
child
{
node{F}
child{node{L}}
child{node{M}}
}
child
{
node{G}
child{node{N}}
child{node{O}}
}
};
\end{tikzpicture}
\end{document}
你必须阅读tikz
文档以便根据您的需要定制树。
您还可以qtree
像这样使用该包:
\documentclass{article}
\usepackage{qtree}
\begin{document}
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
\end{document}
再次qtree
文档会帮助你。
来源维基百科