BEARBEITEN

BEARBEITEN

Ich versuche, einen Tizktree zu erstellen, der wie folgt aussehen soll:

Bildbeschreibung hier eingeben

Ab sofort lautet mein Latex-Code:

\begin{tikzpicture}
\node {r} [grow'=right]
child {node {$C^h$}  
child {node {$C^h$} }
child {node {$C^l$}}
}
child {node {$C^l$}
child {node {$C^h$}}
child {node {$C^l$}}
};
\end{tikzpicture}

Das Problem besteht darin, dass dieser Code zu einer Überlappung einiger Knoten führt und ich nicht sicher bin, wie ich die Pfeile mit P^h und P^l beschriften soll.

Jede Hilfe wäre willkommen.

Antwort1

Wenn forestdiese Option aktiviert ist, wird das Layout des Baums automatisch an die Knoten angepasst. Außerdem können Bäume sehr präzise angegeben werden und das Erscheinungsbild des Baums kann individuell angepasst werden. Beispiel:

\documentclass[tikz,border=10pt,multi]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
  for tree={
    grow'=0,
    math content,
    tier/.wrap pgfmath arg={tier #1}{level()},
    l sep+=5mm,
  },
  before typesetting nodes={
    for tree={
      if n=1{
        edge label/.wrap value={node [midway, font=\scriptsize, above] {$#1$}}
      }{
        edge label/.wrap value={node [midway, font=\scriptsize, anchor=north] {$#1$}}
      }
    }
  }
  % now to specify the tree itself - as you see, the syntax is quite concise
  [r
    [C^h, edge label=P^h
      [C^h, edge label=P^h]
      [C^l, edge label=P^l]
    ]
    [C^l, edge label=P^l
      [C^h, edge label=P^h]
      [C^l, edge label=P^l]
    ]
  ]
\end{forest}
\end{document}

Waldbaum

BEARBEITEN

In einem Kommentar wurde gefragt, wie man ohne den Stammknoten auskommt. Jeder Baum muss eine Wurzel haben, es kann jedoch eine unsichtbare sein, die keinen Platz einnimmt. Forest bietet phantomfür diesen Fall eine Option:

\begin{forest}
  for tree={
    grow'=0,
    math content,
    tier/.wrap pgfmath arg={tier #1}{level()},
    l sep+=5mm,
  },
  before typesetting nodes={
    for tree={
      if n=1{
        edge label/.wrap value={node [midway, font=\scriptsize, above] {$#1$}}
      }{
        edge label/.wrap value={node [midway, font=\scriptsize, anchor=north] {$#1$}}
      }
    }
  }
  [, phantom
    [C^h, edge label=P^h
      [C^h, edge label=P^h]
      [C^l, edge label=P^l]
    ]
    [C^l, edge label=P^l
      [C^h, edge label=P^h]
      [C^l, edge label=P^l]
    ]
  ]
\end{forest}

Phantomwurzel

verwandte Informationen