Seite 1 von 1

TikZ children sollen oben anfangen

Verfasst: Do 22. Jan 2015, 15:18
von mofehl
Moin!

Ich habe ein grundlegendes Problem mit der automatischen Positionierung von children in TikZ. Folgendes stört mich: Bei der library "trees" kann ich die "children" ineinander verschachteln. Außerdem erlaubt mir eine globale Einstellung, einen Baum in verschiedene Richtungen wachsen zu lassen. Bei "grow=right" allerdings passiert es, dass nodes, die im Quellcode unten stehen, oben angeordnet werden. Dieses Verhalten resultiert daraus - so meine Vermutung - dass bei "grow=down" (quasi der Standardfall) children natürlich von links nach rechts angeordnet werden. Dreht man das ganze um 90 Grad, kommt man auf dasselbe Verhalten bei "grow=right".

Ich möchte dieses Standardverhalten ändern, sodass ich bei "grow=right" children, die im Quellcode oben stehen, auch oben angeordnet werden.

Ich habe ein Minimalbeispiel angefügt. Wer weiß eine Lösung?
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5mm}
\usetikzlibrary{trees}

\begin{document}
\begin{tikzpicture}[
	grow=right,
	edge from parent fork right,
]
\node (root) {Ich}
	child {node (Vater) {Vater}}
	child {node (Mutti) {Mutti}};
\end{tikzpicture}
\end{document}

Nur eine Annahme

Verfasst: Do 22. Jan 2015, 15:36
von Stamm-
Ich vermute, dass sich der Aufbau solcher Bäume dem jener Bäume ähnelt, welche von oben nach unten wachsen. Die Anordnung der child-Knoten beginnt dann von links. Diesem Aufbau folgen wohl auch nach rechts gerichtete Bäume, in dem diese Anordnung von unten beginnt. Wie man das ändert, weiß ich momentan jedoch nicht. Da bleibt eigentlich nur ein Umdenken bei der Eingabe der Inhalte.

Verfasst: Do 22. Jan 2015, 16:29
von esdd
Wenn Du die zur Standardanordnung entgegengesetzte für die Reihenfolge der child Knoten haben möchtest, dann nimm \grow' statt \grow:
\documentclass[margin=5mm]{standalone} 
\usepackage{tikz} 
\usetikzlibrary{trees} 

\begin{document} 
\begin{tikzpicture}[ 
    grow'=right, 
    edge from parent fork right, 
] 
\node (root) {Ich} 
    child {node (Vater) {Vater}} 
    child {node (Mutti) {Mutti}}; 
\end{tikzpicture} 
\end{document}
Gruß
Elke

Verfasst: Do 22. Jan 2015, 23:32
von mofehl
Hallo Elke,

das ist genau, wonach ich gesucht habe! Tausend Dank für die schnelle Hilfe!

Grüße