Hallo, ich erstelle mir gerade mit tikz einen Baum. Dabei möchte ich die childnodes links und rechts anordnen. Jedoch bekomme ich probleme bezüglich meiner gesetzten Anker. Könnt ihr mir da weiterhelfen? Öffne in Overleaf
\documentclass[margin=5pt]{standalone} \usepackage{tikz} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usetikzlibrary{calc} \tikzset{ my edge from parent fork down/.style={ edge from parent path={ (\tikzparentnode\tikzparentanchor) -- ($(\tikzparentnode.south)!0.5!(\tikzchildnode.north-|\tikzparentnode.south)$) -| (\tikzchildnode\tikzchildanchor) }} } \begin{document} \begin{tikzpicture}[ nodes={ draw, rounded corners=8pt, }, root/.style={% text centered, text width=7cm, minimum height=2cm, font=\LARGE\bfseries, fill=gray!50,}, first/.style={% text centered, text width=7cm, minimum height=2cm, anchor=north, fill=gray!30, font=\large\bfseries,}, second/.style={% text centered, text width=6cm, minimum height=2cm, anchor=north, fill=gray!30, font=\large,}, third/.style={% anchor=west, grow=down, xshift=1.1cm, % Horizontal position of the child node text centered, text width=4cm, minimum height=1cm, edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}}, level1/.style ={level distance=2cm}, level2/.style ={level distance=4cm}, level3/.style ={level distance=6cm}, level4/.style ={level distance=8cm}, level5/.style ={level distance=10cm}, level 1/.style={sibling distance=13cm,level distance=3cm}, ] % root \node[anchor=south,root]{Gesenkschmieden} [my edge from parent fork down] % Ebene 1 und 2 child{node [first] {Gesenkschmieden\\mit teilweise\\umschlossendem Werkstück} child[third,level1] {node {Formrecken}} child[third,level2] {node {Rollen (Reckstauchen)}} child[third,level3] {node {Formrundkneten}} child[third,left, xshift=-2cm, level1] {node {Schließen im Gesenk}} child[third,left, xshift=-2cm, level2] {node {Formstauchen}} } child{node [first] {Gesenkschmieden\\mit ganz\\umschlossendem Werkstück} child[third,left, xshift=-2cm, level1] {node {Formpressen mit Grat}} child[third,level1] {node {Formpressen ohne Grat}} child[third,left, xshift=-2cm, level2] {node {Prägen im Gesenk}} child[third,level2] {node {Anstauchen im Gesenk}} } ; \end{tikzpicture} \end{document} |
Ich weiß, dass es nicht der klassischen Konstruktion eines Baumes entspricht. Ich bin aber ein Fan davon, auch bei Baumdigrammen, die TikZ-Bibliothek Das ist m.E. weit übersichtlicher und Abstände, Layout usw. sind einfacher zu manipulieren. Damit die Matrix selbst übersichtlich bleibt, empfehle ich immer, dort keine ellenlangen Texte reinzuschreiben, sondern die Inhalte in sinnvoll benannten Man kann sich zunächst eine Schablone bauen, hier etwa Öffne in Overleaf
A & B & C & D & E & F & G \\ A & B & C & D & E & F & G \\ A & B & C & D & E & F & G \\ A & B & C & D & E & F & G \\ A & B & C & D & E & F & G \\ und beim Ausfüllen daran orientieren. Im folgenden Beispiel sieht das dann bei mir so aus Öffne in Overleaf
& & & \Par & & & \\ & \ParL & & & & \ParR & \\ \ChLiL & & \ChLiR & & \ChRiL & & \ChRiR \\ \ChLiiL & & \ChLiiR & & \ChRiiL & & \ChRiiR \\ & & \ChLiiiR & & & & \\ %A & B & C & D & E & F & G \\ Hier mal als Workaround: Öffne in Overleaf
%\documentclass[]{article} \documentclass[border=5pt]{standalone} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} %\usepackage[german]{babel} \usepackage{tikz} \usetikzlibrary{matrix} \begin{document} \begin{tikzpicture}[ commonstyle/.style={align=center, rectangle, draw, rounded corners}, parentstyle/.style={commonstyle, fill=lightgray, minimum width=12em, minimum height=5em, font=\bfseries}, childstyle/.style={commonstyle, fill=none, minimum width=8em, minimum height=2em,} ] % Inhalte \def\Par{|[parentstyle]| Gesenkschmieden} \def\ParL{|[parentstyle]| {Gesenkschmieden \\ mit teilweise \\ umschlossenem Werkstück}} \def\ParR{|[parentstyle]| {Gesenkschmieden \\ mit ganz \\ umschlossenem Werkstück}} \def\ChLiL{|[childstyle]| Bezeichnung} \def\ChLiR{|[childstyle]| Bezeichnung} \def\ChLiiL{|[childstyle]| Bezeichnung} \def\ChLiiR{|[childstyle]| Bezeichnung} \def\ChLiiiR{|[childstyle]| Bezeichnung} \def\ChRiL{|[childstyle]| Bezeichnung} \def\ChRiR{|[childstyle]| Bezeichnung} \def\ChRiiL{|[childstyle]| Bezeichnung} \def\ChRiiR{|[childstyle]| Bezeichnung} \matrix[matrix of nodes, nodes in empty cells, font=\footnotesize, nodes={align=center, text width=8em, anchor=center}, inner sep=5pt, row sep=2em, %column sep=1em, ] (m) { & & & \Par & & & \\ & \ParL & & & & \ParR & \\ \ChLiL & & \ChLiR & & \ChRiL & & \ChRiR \\ \ChLiiL & & \ChLiiR & & \ChRiiL & & \ChRiiR \\ & & \ChLiiiR & & & & \\ %A & B & C & D & E & F & G \\ }; % Linien \draw (m-1-4) -| (m-2-2) (m-1-4) -| (m-2-6) % (m-2-2) -- (m-5-2.center) % (m-3-1) -- (m-3-3) (m-4-1) -- (m-4-3) (m-5-2.center) -- (m-5-3) % (m-2-6) -- (m-4-6.center) % (m-3-5) -- (m-3-7) (m-4-5) -- (m-4-7) ; \end{tikzpicture} \end{document} beantwortet 03 Feb '18, 08:25 cis |