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 node
estilo ativado)
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}