Tikz: Winkel in einem Baumdiagramm ändern

Tabellen und Grafiken erstellen und anordnen


StarFlesh
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 15. Mai 2017, 00:25

Tikz: Winkel in einem Baumdiagramm ändern

Beitrag von StarFlesh »

Hi!
Ich habe einen Baum mit dem Tikz Paket erstellt.
Nur leider sind die Knoten teilweise sehr dicht beieinander, so dass die Lesbarkeit drunter leidet.
Ich habe den Code eines Beispiel Baums genommen und so weit ich konnte angepasst.
Nur das mit den Winkel der Äste, bzw den Abstand der Knoten, hab ich noch nicht herausgefunden.

Wäre nett wenn ihr mir da helfen könntet.

Hier mein Latex Baum:
 \begin{center}
		\tikzset{
			treenode/.style = {align=center, inner sep=0pt, text centered,
				font=\sffamily},
			arn_n/.style = {treenode, circle, white, font=\sffamily\bfseries, draw=black,
				fill=black, text width=1.5em},
			arn_r/.style = {treenode, circle, black, draw=black, 
				text width=4em, thin, draw=none,fill=none},
			arn_x/.style = {treenode, rectangle, draw=black,
				minimum width=0.5em, minimum height=0.5em}
		}
	
		
			\begin{tikzpicture}[-,>=stealth',level/.style={sibling distance = 5cm/#1,
				level distance = 2cm}] 
			\node [arn_r] {program}
			child{ node [arn_r] {=} 
				child{ node [arn_r] {null xs} 
				}
				child{ node [arn_r] {@}
					child{ node [arn_r] {@}
						child{ node [arn_r] {= \\(compare)}}
						child{ node [arn_r] {xs}}   
						   }
					   child{ node [arn_r] {nil}}   
				}                            
			}
			child{ node [arn_r] {where}
				child{ node [arn_r] {@} 
					child{ node [arn_r] {var(null)}
					}   
					child{ node [arn_r] {var(l)}
					}   
				}
				child{ node [arn_r] {=}
					child{ node [arn_r] {l}
					} 
					child{ node [arn_r] {@}
						child{ node [arn_r] {@}
							child{ node [arn_r] {:\\(List)}
							}
							child{ node [arn_r] {l}
							}      
						} 
						child{ node [arn_r] {nil}
						}     
					}     
				}
			}
			; 
			\end{tikzpicture}
		\end{center}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Mögliche Helfer müssten Dein Beispiel erst einmal vervollständigen, um es testen zu können. In diesem Fall ist das zwar nicht besonders aufwendig, aber es läge an Dir, bei weiteren Beispielen auf deren Vollständigkeit zu achten.

Was hältst Du davon?
\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}[
	nodes = {
		align=center, 
		inner sep=10pt, 
		text centered,
		font=\ttfamily
	},
	level/.style = {
		sibling distance = 8cm/#1,% <- Zähler vergrößert
		level distance = 2cm
	},
	level 3/.style = {sibling distance = 2cm}% <- eingefügt
] 
\node {program}
	child{ node {=} 
		child{ node {null xs} }
		child{ node {@}
			child{ node {@}
				child{ node {=\\(compare)}}
				child{ node {xs}}   
			}
			child{ node {nil}}   
		}                            
	}
	child{ node {where}
		child{ node {@} 
			child{ node {var(null)} }   
			child{ node {var(l)} }   
		}
		child{ node {=}
			child{ node {l} } 
			child{ node {@}
				child{ node {@}
					child{ node {:\\(List)} }
					child{ node {l} }      
				} 
				child{ node {nil} }     
			}     
		}
	}; 
\end{tikzpicture}
\end{document}

StarFlesh
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 15. Mai 2017, 00:25

Beitrag von StarFlesh »

Danke das sieht gut aus :)

Antworten