
Ich muss mehrere Vererbungstyphierarchien zeichnen. Der schlimmste Fall sieht etwa so aus:
Ich habe Tabellen und tree-dvips
zum Zeichnen dieser Figuren verwendet, suche jetzt aber nach etwas, das xelatex
kompatibel ist.
Ich habe angefangen, einfache Hierarchien mit zu setzen forrest
, aber für Fälle wie den obigen scheint das übertrieben. Ich habe bereits gefundenGibt es eine Bibliothek zum Zeichnen von Objektvererbungsbäumen in TikZ?Das Problem ist jedoch komplizierter, da die Vererbung zwei oder mehr übergeordnete Knoten betreffen kann.
Also: Gibt es dafür ein Paket oder einen vordefinierten Stil dafür forest
?
Antwort1
Wenn Sie keinen automatischen Weg wünschen, reichen ein TiKZ matrix
und einige Schleifen:foreach
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (A) [matrix of nodes, row sep=1cm, nodes={minimum width=2cm}]
{
arg1+ & arg4+ & arg2+& arg3+ & arg3- & arg4- & arg1- & arg2- \\
arg12-123-124 & arg-124-2-24 & arg1-12 & arg12-23 & arg0-2 \\
arg124 & arg123 & arg12 & arg24 & arg1 & arg2 & arg23 & arg0 \\
};
\path (A-1-4)--(A-1-5) node[above=1cm, midway] (link) {link};
\foreach \i in {1,...,8}
\draw (link.south) -- (A-1-\i.north);
\foreach \i/\j in {1/1,1/3,3/1,3/2,3/4,5/2,5/3,5/5,6/5}
\draw (A-1-\i.south)--(A-2-\j.north);
\foreach \i/\j in {2/1,2/3,4/2,4/6,5/4,7/4,7/7,8/5,8/8}
\draw (A-1-\i.south)--(A-3-\j.north);
\foreach \i/\j in {1/1,1/2,1/3,2/1,2/3,2/4,2/6,3/3,3/5,4/3,4/7,5/6,5/8}
\draw (A-2-\i.south)--(A-3-\j.north);
\end{tikzpicture}
\end{document}