자식이 하나만 있는 내부 노드가 있지만 방향이 지정되어야 하는 트리를 그리려고 합니다.
/
\
/\
\
/\
아이들이 단지 "멈추는" 전형적인 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}