In diesem Baum, den ich mit tikz-qtree erstellt habe, sind die child nodes unterschiedlich groß, und der Baum sieht nicht nicht gut aus:

\documentclass{article}
\usepackage{tikz-qtree}
\newcommand*{\knoten}[1]{\tikz\node[draw,thick,rounded corners,
    fill=yellow!15,inner sep=.8ex]{#1};}
\begin{document}
\begin{tikzpicture}[every tree node/.style={align=center}]
  \Tree
    [.{\knoten{Gruppieren in \TeX}}
      [.{\knoten{{$\mathtt{\{}$} \ldots\ $\mathtt{\}}$}} ]
      [.{\knoten{\texttt{\char`\\ begingroup} \\ \ldots \\ \texttt{\char`\\ endgroup}}} ]
      [.{\knoten{\texttt{\char`\\ bgroup} \\ \ldots \\ \texttt{\char`\\ egroup}}} ]] 
\end{tikzpicture}
\end{document}

Baum

Wie kann ich einstellen, dass alle Blätter an ihrer Oberkante aneinander ausgerichtet sind?

gefragt 15 Jul '13, 18:38

Felix's gravatar image

Felix
1.3k525666
Akzeptiert-Rate: 47%

bearbeitet 13 Aug '13, 14:02

cgnieder's gravatar image

cgnieder
22.1k243463


Dazu musst Du nur noch ein anchor=north mit angeben, damit TikZ weiß, wo verankert werden soll.

\documentclass{article}
\usepackage{tikz-qtree}
\newcommand*{\knoten}[1]{\tikz\node[draw,thick,rounded corners,
    fill=yellow!15,inner sep=.8ex]{#1};}
\begin{document}
\begin{tikzpicture}[every tree node/.style={align=center,anchor=north}]
  \Tree
    [.{\knoten{Gruppieren in \TeX}}
      [.{\knoten{{$\mathtt{\{}$} \ldots\ $\mathtt{\}}$}} ]
      [.{\knoten{\texttt{\char`\\ begingroup} \\ \ldots \\ \texttt{\char`\\ endgroup}}} ]
      [.{\knoten{\texttt{\char`\\ bgroup} \\ \ldots \\ \texttt{\char`\\ egroup}}} ]] 
\end{tikzpicture}
\end{document}

Ausgabe des Dokuments

Permanenter link

beantwortet 15 Jul '13, 18:55

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 17 Jul '13, 14:41

stefan's gravatar image

stefan ♦♦
18.1k143048

Den wesentlichen Punkt hat @saputello in seiner Antwort bereits genannt1: die Option anchor=north, die man einfach dem Stil für every tree node hinzufügt. Genauso sollte man, statt das Layout über ein weiteres tikzpicture (versteckt im \knoten Makro) zu definieren, dasselbe einfach dem Stil hinzugefügen.

Ich würde mir außerdem Makros für die Ausgabe von Befehlssequenzen und Glyphen definieren, was ich hier mit den beiden Makros \cs{} (für Befehlsequenzen) und \glyph{} (für Glyphen) gemacht habe:

Ergebnis

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tikz-qtree}

\tikzset{
  every tree node/.style={
    align=center,
    anchor=north,
    draw,
    thick,
    rounded corners,
    fill=yellow!15,
    inner sep=.8ex
  }
}

\newcommand*\cs[1]{\texttt{\textbackslash#1}}
\newcommand*\glyph[1]{\texttt{#1}}

\begin{document}
\begin{tikzpicture}
  \Tree
    [.{Gruppieren in \TeX}
      [.{\glyph{\{} \ldots\ \glyph{\}}} ]
      [.{\cs{begingroup} \\ \ldots \\ \cs{endgroup}} ]
      [.{\cs{bgroup} \\ \ldots \\ \cs{egroup}} ]] 
\end{tikzpicture}
\end{document}

1 und hat dafür eine Stimme verdient :)

Permanenter link

beantwortet 15 Jul '13, 19:03

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 17 Jul '13, 14:42

stefan's gravatar image

stefan ♦♦
18.1k143048

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:

×728
×68
×53
×5

gestellte Frage: 15 Jul '13, 18:38

Frage wurde gesehen: 12,903 Mal

zuletzt geändert: 13 Aug '13, 14:02