我想画一棵树,其中包含来自 2 个或更多父节点的节点,有什么方法可以用 tikz 和树来设置它吗
\documentclass{scrartcl}
% input encoding
\usepackage[utf8]{inputenc}
% new german spelling
\usepackage[ngerman]{babel}
% choose font
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% KOMA-Script options
\KOMAoptions{%
parskip=full,%
fontsize=12pt,%
DIV=calc}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes.geometric}
\tikzset{
level/.style={
sibling distance=20mm/#1
},
level distance=10mm,
}
\usepackage{tkz-graph}
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Empty]
\Vertex{$\emptyset$}
\Vertex[x=2,y=0]{Q}
\Vertex[x=1,y=-2]{X}
\Vertex[x=-1,y=-2]{Z}
\Vertex[x=3,y=-2]{R}
\Vertex[x=0,y=-3]{A}
\Vertex[x=2,y=-3]{B}
\Vertex[x=-1,y=-4]{C}
\Vertex[x=1,y=-4]{D}
\Vertex[x=3,y=-4]{E}
\Edges(Z,X,Q,R)
\Edges(A,X,B)
\Edges(C,A,D,B,E)
\end{tikzpicture}
\end{document}
答案1
为了给顶点赋予与其标识符不同的显示名称,请使用键L
。请参阅手册第 5 节tkz-graph
。(不,我不会说法语,但可以从示例中猜出这一点。)
\documentclass{scrartcl}
% input encoding
\usepackage[utf8]{inputenc}
% new german spelling
\usepackage[ngerman]{babel}
% choose font
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% KOMA-Script options
\KOMAoptions{%
parskip=full,%
fontsize=12pt,%
DIV=calc}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes.geometric}
\tikzset{
level/.style={
sibling distance=20mm/#1
},
level distance=10mm,
}
\usepackage{tkz-graph}
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Empty]
\Vertex[L=$\emptyset$]{Y}
\Vertex[x=2,y=0]{Q}
\Vertex[x=1,y=-2]{X}
\Vertex[x=-1,y=-2]{Z}
\Vertex[x=3,y=-2]{R}
\Vertex[x=0,y=-3]{A}
\Vertex[x=2,y=-3]{B}
\Vertex[x=-1,y=-4]{C}
\Vertex[x=1,y=-4]{D}
\Vertex[x=3,y=-4]{E}
\Edges(Z,Y,X,Q,R)
\Edges(A,X,B)
\Edges(C,A,D,B,E)
\end{tikzpicture}
\end{document}