Zeichnen Sie mehrere Vererbungshierarchien

Zeichnen Sie mehrere Vererbungshierarchien

Ich muss mehrere Vererbungstyphierarchien zeichnen. Der schlimmste Fall sieht etwa so aus:

Bildbeschreibung hier eingeben

Ich habe Tabellen und tree-dvipszum Zeichnen dieser Figuren verwendet, suche jetzt aber nach etwas, das xelatexkompatibel 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 matrixund 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}

Bildbeschreibung hier eingeben

verwandte Informationen