다중 상속 계층 그리기

다중 상속 계층 그리기

다중 상속 유형 계층을 그려야 합니다. 최악의 경우는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

저는 tree-dvips이런 그림을 그리기 위해 표를 사용했는데, 지금은 호환되는 것을 찾고 있습니다 xelatex.

나는 를 사용하여 간단한 계층 구조를 조판하기 시작했지만 forrest위와 같은 경우에는 이것이 과도한 것 같습니다. 난 이미 찾았어TikZ에 객체 상속 트리를 그리는 라이브러리가 있나요?그러나 상속에는 두 개 이상의 부모 노드가 포함될 수 있으므로 문제는 더 복잡합니다.

그래서: 이에 대한 패키지가 있습니까, 아니면 미리 정의된 스타일이 있습니까 forest?

답변1

자동 방식을 요청하지 않으면 a TiKZ matrix및 일부 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}

여기에 이미지 설명을 입력하세요

관련 정보