Wieder ein Problem aus der TikZ-Woche. Diesmal will das Organigramm nicht so wie ich will. Die Kinder von Martha Pfahl auf der rechten Seite des Organigramms sollten ausgehend vom West-Anker gelistet werden.

Wo kann ich denn für diese Seite anchor = west setzen? Global wurde tikzparentnode.south gesetzt.

Öffne in Overleaf
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{figure}[ht]
\begin{tikzpicture}[kasten/.style={rectangle, draw, minimum height=0.8cm,
                    align=left},
                    level distance=20mm,
                    enkelkind/.style={grow=down,xshift=1em,anchor=west,
                    edge from parent path={(\tikzparentnode.south) |- 
                                           (\tikzchildnode.west)}},
                    erstes/.style={level distance=15mm},
                    zweites/.style={level distance=30mm},
                    drittes/.style={level distance=45mm},
                    viertes/.style={level distance=60mm},                               
                    level 1/.style={sibling distance=17em},
                    level 2/.style={sibling distance=7em}
                    ]
\node[rectangle, draw, minimum height=1cm, align=center] {Reiner Zuphall}
[edge from parent fork down] {
   child{node[kasten] {Rosa Schl\"upfer}   
   [edge from parent fork down] {
      child{node[kasten] {Rosa Roth}
      [edge from parent fork down] {
         child[enkelkind, erstes] {node[kasten] {Roman Schreiber}}
         child[enkelkind, zweites] {node[kasten] {Gerold Steiner}}     
                                   }
             }
      child{node[kasten] {Klaus Uhr}} 
                                   }
             }                                                    
   child{node[kasten] {Axel Schweiss}
   [edge from parent fork down] {
      child{node[kasten] {Giess Kanne}
      [edge from parent fork down] {
         child[enkelkind, erstes] {node[kasten] {Albert Tross}}
         child[enkelkind, zweites] {node[kasten] {Klaus Thaler}}
         child[enkelkind, drittes] {node[kasten] {Ellen Lang}}
         child[enkelkind, viertes] {node[kasten] {Kai Mauer}}     
                                   }
           }                                                          
      child{node[kasten] {Andreas Kreuz}}
      child{node[kasten] {Heide Rose}}  
                                   }                
          }   
   child{node[kasten] {Martha Pfahl}
   [edge from parent fork down] {
      child[enkelkind, erstes] {node[kasten] {Klara Fall}}
      child[enkelkind, zweites] {node[kasten] {Anna Bolika}}
      child[enkelkind, drittes] {node[kasten] {Franz Ohse}}
      child[enkelkind, viertes] {node[kasten] {Marie Juana}}     
                                }
           }                                                    
                               };
\end{tikzpicture}
\end{figure}
\end{document}

gefragt 12 Feb '18, 13:18

Delorian's gravatar image

Delorian
66912333
Akzeptiert-Rate: 17%

bearbeitet 12 Feb '18, 13:33

Ist nicht forest inzwischen das Mittel der Wahl für Bäume? Ich kenne mich selbst damit überhaupt nicht aus und interessiere mich auch nicht weiter dafür (sorry), glaube aber auf TeX.SX mitbekommen zu haben, dass das eine Verbesserung gegenüber der trees-Bibliothek darstellt. Ich würde es mir auf jeden Fall einmal anschauen. Ansonsten sei noch auf die Baumbeispiele auf TeXample.net hingewiesen.

(15 Feb '18, 09:07) gast3

In der Heiligen Schrift steht sinngemäß: "Suchst Du Hilfe, dann findest Du sie am Ende Deinen rechten Armes".

(18 Feb '18, 11:47) Delorian

@Delorian War der Spruch jetzt eingeschnappt und beleidigend gemeint? Die Frage war vielleicht ein bisschen zu speziell, um das zu wissen oder sich für Dich in ein unbekanntes Thema einzuarbeiten.

(18 Feb '18, 12:06) stefan ♦♦

Weder noch, und beleidigend schon 'mal garnicht.

(18 Feb '18, 12:18) Delorian

@Delorian Gut, ich frag lieber mal nach, wenn was missverstanden werden kann ;-) Bei TikZ kann ich meist auch helfen, hatte die Frage hier nur nicht gesehen (ich betreue auch TeXample.net). Vielleicht bei der nächsten TikZ-Frage.

(18 Feb '18, 12:47) stefan ♦♦

Mittlerweile habe ich eine Lösung gefunden, auch ohne die Pakete trees und forest. Der Knoten Martha hat jetzt eine Koordinate links neben sich, über die jetzt eine Verbindung mit den Kindern über deren anchor = west möglich ist. Nicht gerade schlank, aber es funktioniert.

Hier das Minimal-Beispiel:

Öffne in Overleaf
\documentclass[landscape]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{center}
\begin{tikzpicture}[auto, node distance = 1.5cm, thick,
                    every node/.style = {rectangle, draw, font = \sffamily,
                    black, text width = 2.8cm, align = center,
                    minimum height = 1cm}] 
\node (Reiner) {\textbf{Reiner Zuphall}};
\coordinate [below = 0.5cm of Reiner] (Mitte);

\node (Axel) [below = 10mm of Reiner] {\textbf{Axel Schweiss}};
\node (Rosa) [left = 48mm of Axel]  {\textbf{Rosa Schl\"upfer}};
\node (Martha) [right = 45mm of Axel]  {\textbf{Martha Pfahl}};
\coordinate [left = 0.5cm of Martha] (MarthaLinks);
\node (Klara) [anchor=west, text width = 2.3cm,%
               below right = 10mm of Martha, xshift=-37mm%
              ] {\textbf{Klara Fall}};
\node (Anna) [anchor=west, text width = 2.3cm, below = 5mm of Klara]
               {\textbf{Anna Bolika}};
\node (Franz) [anchor=west, text width = 2.3cm, below = 5mm of Anna]
               {\textbf{Franz Ohse}};
\node (Marie) [anchor=west, text width = 2.3cm, below = 5mm of Franz]
              {\textbf{Marie Juana}};

\coordinate [below = 0.75cm of Rosa] (MitteRosaR);
\coordinate [below = 0.6cm of Rosa] (ObenRosa);
\node (RosaR) [text width = 2cm, below left = 5mm of MitteRosaR]
               {\textbf{Rosa Roth}};
\node (Klaus) [text width = 2cm, below right = 5mm of MitteRosaR]
               {\textbf{Klaus Uhr}};
\node (Roman) [anchor=west, text width = 3.3cm, below right = 10mm of RosaR,
               xshift=-14mm] {\textbf{Roman Schreiber}};
\node (Gerold) [anchor=west, text width = 3.3cm, below = 5mm of Roman]
               {\textbf{Gerold Steiner}};

\node (Andy) [below = 1.1cm of Axel] {\textbf{Andreas Kreuz}};
\node (Giess) [text width = 2.2cm, left = 5mm of Andy] {\textbf{Giess Kanne}};
\node (Heide) [text width = 2.2cm, right = 5mm of Andy] {\textbf{Heide Rose}};
\coordinate [below = 0.6cm of Axel] (AxelMitte);

\draw [thick]
     (Reiner) -- (Mitte) -| (Rosa)
     (Mitte) -- (Axel)
     (Mitte) -| (Martha)
     (Rosa) -- (ObenRosa) -| (RosaR)
     (ObenRosa) -| (Klaus)
     (Roman) -| (RosaR)
     (Gerold) -| (RosaR)
     (AxelMitte) -- (Andy)
     (Axel) -- (AxelMitte) -| (Giess)
     (AxelMitte) -| (Heide)
     (Klara) -| (MarthaLinks)
     (Anna) -| (MarthaLinks)
     (Franz) -| (MarthaLinks)
     (Marie) -| (MarthaLinks)
     (MarthaLinks) -- (Martha);

\end{tikzpicture}
\end{center}
\end{document}
Permanenter link

beantwortet 18 Feb '18, 11:37

Delorian's gravatar image

Delorian
66912333
Akzeptiert-Rate: 17%

bearbeitet 18 Feb '18, 11:52

Du darfst übrigens auch deine eigene Antwort akzeptieren. ;-)

(06 Dez '18, 10:05) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×7
×3

gestellte Frage: 12 Feb '18, 13:18

Frage wurde gesehen: 6,757 Mal

zuletzt geändert: 06 Dez '18, 10:05