[Tikz-]Qtree:強制單一孩子的方向向左還是向右?

[Tikz-]Qtree:強制單一孩子的方向向左還是向右?

我正在嘗試繪製一棵樹,該樹的內部節點只有一個子節點,但必須是定向的。

    /
    \
    /\
      \
      /\

而不是典型的 qtree,其中所說的孩子只是「掛起」:

    |
    |
   / \
      |
      |
     / \

我認為(但我不知道如何)可能有看不見的葉子來強制方向,但也許(希望)有更好的解決方案?這可以在 qtree 或 tikz-qtree 中...

編輯:後續問題將是有用的,當節點沒有標記時,如何使每個分支(在直線上)不同 - 即,當樹連續有多個連接時,就像第二個例子一樣,如何我可以讓它們稍微分開一點,這樣它們就不會形成一條難以區分的直線嗎?

編輯2:謝謝你的回复,我現在有兩棵樹:

  \documentclass[tikz]{standalone}
  \usepackage{tikz-qtree}
  \begin{document}
  \begin{tikzpicture}\footnotesize
    \Tree [ \edge node[midway,left] {000};
          [ \edge[draw=none]; {} \edge node[midway,right] {111};
            [
            \edge node[midway,left] {0}; $U_2$
            \edge node[midway,right] {11};
            [ \edge[draw=none]; {} \edge node[midway,right] {11};
            [ \edge node[midway,left] {0}; $U_1$
                \edge node[midway,right] {1}; $U_3$ ] ] ] ]
          \edge[draw=none]; {}  ]
  \end{tikzpicture}
  \begin{tikzpicture}\footnotesize
    \Tree [ \edge node[midway,right] {$U_1=U_2$, $U_1=U_3$};
          [.. \edge node[midway,right] {$U_1=U_2$, $U_1=U_3$};
          [ \edge node[midway,left] {$0$}; $U_2$ 
              \edge node[midway,right] {$U_1\not=U_2$, $U_1 = U_3$}; [
                  \edge node[midway, right] {$U_1 = U_3$}; 
                  [ \edge node[midway, left] {$0$}; $U_1$
                      \edge node[midway, right] {$U_1\not=U_3$}; $U_3$ ] ] ] ] ]
  \end{tikzpicture}
  \end{document}

有什麼想法可以讓它們看起來更好嗎?

答案1

使用一個空節點並在其前面{}放置。\edge[draw=none];

程式碼

\documentclass[tikz]{standalone}
\usepackage{tikz-qtree}
\tikzset{
    n/.style={draw=none},
    every node/.append style={inner ysep=+0pt,outer ysep=+0pt,minimum size=+0pt}
}
\begin{document}
\Tree
    [.{}
        [.{} 
            \edge[n];[.{} ]
            [.{}
                {} 
                [.{}
                    \edge[n];[.{} ]
                    [.{} 
                        {} 
                        {} 
                    ]
                ]
            ]
        ]
        \edge[n];{} 
    ]
\end{document}

輸出(未激活和every node激活樣式時)

在此輸入影像描述 在此輸入影像描述

答案2

您也可以使用xshift(和yshift) 來微調您想要的節點位置。

\documentclass[tikz]{standalone}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}\footnotesize
  \Tree [.{a}
      \edge node[midway,left] {1};
      [.\node[xshift=0.5cm,inner sep=0pt,minimum size=0pt] {}; \edge node[midway,left] {2}; {c} ]
  ]
\end{tikzpicture}

相關內容