[Tikz-]Qtree: forçar a direção do único filho para a esquerda ou para a direita?

[Tikz-]Qtree: forçar a direção do único filho para a esquerda ou para a direita?

Estou tentando desenhar uma árvore que possui nós internos com apenas um filho, mas que deve ser orientada.

    /
    \
    /\
      \
      /\

Em vez do típico qtree onde as crianças simplesmente "penduram":

    |
    |
   / \
      |
      |
     / \

Acho (mas não sei como) que seria possível ter folhas invisíveis para forçar a direção, mas talvez (espero) haja uma solução melhor? Isso pode ser em qtree ou tikz-qtree...

EDITAR: pergunta de acompanhamento que seria útil, como tornar cada ramo (em linha reta) distinto quando os nós não estão rotulados - ou seja, quando a árvore tem várias conexões em uma linha, como no segundo exemplo, como posso deixá-los ligeiramente espaçados um do outro para que não formem uma linha reta indistinguível?

EDITAR 2: obrigado pela sua resposta, agora tenho estas duas árvores:

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

Alguma ideia de como torná-los mais bonitos?

Responder1

Use um nó vazio {}e coloque um \edge[draw=none];na frente dele.

Código

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

Saída (sem e com every nodeestilo ativado)

insira a descrição da imagem aqui insira a descrição da imagem aqui

Responder2

Você também pode usar xshift(e yshift) para ajustar onde deseja que seus nós estejam.

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

informação relacionada