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

관련 정보