我尝试使用树形图并得到了以下代码,
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{enumitem}
\usepackage{multicol}
\usepackage{tasks}
\usepackage{geometry}
% \usepackage{poker}
\usepackage{array}
\usepackage{indentfirst}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{arrows}
\usetkzobj{all}
\usetikzlibrary{trees}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
bottom=20mm
}
\settasks{
style = enumerate ,
counter-format = tsk),
label-align = right,
label-width = 2em,
label-offset = .75em
%label-format = \bfseries
}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcommand{\N}{\mathbb N}
\newcommand{\Q}{\mathbb Q}
\newcommand{\C}{\mathbb C}
\newcommand{\Z}{\mathbb Z}
\setcounter{secnumdepth}{0}
\begin{document}
% Set the overall layout of the tree
\tikzstyle{level 2}=[level distance=2cm, sibling distance=6cm]
\tikzstyle{level 3}=[level distance=2cm, sibling distance=3cm]
% Define styles for bags and leafs
\tikzstyle{bag} = [text width=4em, text centered]
\tikzstyle{end} = [circle, minimum width=3pt,fill, inner sep=0pt]
\begin{tikzpicture}[grow=up, sloped]
\node {}
child {
node[bag] {$2a$}
child {
node[bag] {$5a+b$}
child {
node {$16a+4b+c$}
}
child {
node {$9a+3b+c$}
}
}
child {
node[bag] {$3a+b$}
child {
node {$4a+2b+c$}
}
child {
node {$a+b+c+d$}
}
}
};
\end{tikzpicture}
\end{document}
问题是,如果我再创建一个包含另一个 2a 的集合,这两个 2a 将分支到一个节点。我应该如何更改我的代码?
答案1
树只有一个根,每个非根节点都有一个父节点。通常,用于绘制树的软件包是专门用于绘制这种意义上的树的软件,而不是更通用的图形。Ti钾Z 库不介意多个根,但处理多个父级等仍然很棘手。
我认为将图表想象成一个矩阵并且在某些节点之间绘制一些边会更容易。
例如,
\documentclass[border=10pt]{standalone}
\usepackage{tikz,amsmath}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (M) [matrix of math nodes]
{
& n=1 && n=2 && n=3 && n=4\\
T_n & a+b+c && 4a+2b+c && 9a+3b+c && 16a+4b+c\\
\text{1\textsuperscript{st} difference} & & 3a+b && 5a+b && 7a+b & \\
\text{2\textsuperscript{nd} difference} & & & 2a && 2a &&\\
};
\draw (M-2-2) -- (M-3-3) -- (M-4-4) -- (M-3-5) edge (M-2-4) edge (M-2-6) -- (M-4-6) -- (M-3-7) edge (M-2-6) -- (M-2-8) ;
\end{tikzpicture}
\end{document}