編輯

編輯

我正在嘗試建立一個 tizktree,它應該如下所示:

在此輸入影像描述

截至目前,我的乳膠代碼由以下給出:

\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}

問題是這段程式碼使一些節點重疊,我不確定如何用 P^h 和 P^l 標記箭頭。

任何幫助,將不勝感激。

答案1

如果forest是一個選項,它將自動調整樹的佈局以適應節點。它還允許非常簡潔地指定樹,並且在樹的外觀方面非常可自訂。例如:

\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}

森林樹

編輯

有評論問沒有根節點怎麼辦。任何一棵樹都必須有一個根,然而,它可以是一個看不見的、不佔空間的根。 Forestphantom為這種情況提供了選擇:

\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}

幻根

相關內容