
하위 노드가 매트릭스 노드 내에서 이상하게 동작합니다. 그리고 하나의 매트릭스 노드에만 나타납니다. 이 간단한 경우에는 행렬 노드 없이 그리는 방법이 있다는 것을 알고 있습니다. 그러나 본질적으로 나는 각 요소가 트리인 부분적으로 정렬된 집합의 Hasse 다이어그램을 그려야 합니다. 그래서 매트릭스 노드를 유지하면 좋을 것 같습니다. 어쨌든 이상한 행동도 흥미롭다. 확인할 수도 있습니다이상하게 오른쪽으로 기울고 있는 자식 노드중첩된 tikzpicture를 사용할 때도 나타나는지 확인하세요. 매트릭스 노드의 경우에 대해 새로운 질문을 제기할 것을 제안합니다.
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
[level distance = 10mm]
\node [matrix, label=left:{$T_1$}] (T1)
{
\begin{scope}
[every node/.style={draw, circle, inner sep=1pt, minimum size = 1mm}]
\node {}
child {node {} child {node {}}}
child {node {} child {node {}}}
child {node {} child {node {}}};
\end{scope}\\
};
\node [matrix, right = of T1, label=left:{$T_2$}] (T2)
{
\begin{scope}
[every node/.style={draw, circle, inner sep=1pt, minimum size = 1mm}]
\node {}
child {node {} child {node {}}}
child {node {} child {node {}}}
child {node {} child {node {}}};
\end{scope}\\
};
\end{tikzpicture}
\end{document}
답변1
라이브러리 positioning
는 right = of …
암시적으로 anchor = west
. 불행히도 이것은 매트릭스 내부의 노드로 전달됩니다.
대신에 를 positioning
사용하는 행렬에 대한 추가 키를 생성할 수 있지만 이 경우 가장 쉬운 해결책은 행렬의 모든 노드에 대해 명시적으로 (기본값) 또는 (의 별칭 )을 설정하는 것입니다.matrix anchor
anchor
anchor = center
centered
anchor = center
TikZ의 트리 구문은 매우 간단하며 앵커를 자동으로 설정하지 않습니다.
암호
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
level distance = 10mm,
every matrix/.style={
nodes={draw, circle, inner sep=1pt, minimum size = 1mm, centered}}]
\node [matrix, label=left:{$T_1$}] (T1){
\node {}
child {node {} child {node {}}}
child {node {} child {node {}}}
child {node {} child {node {}}};\\};
\node [matrix, right = of T1, label=left:{$T_2$}] (T2){
\node {}
child {node {} child {node {}}}
child {node {} child {node {}}}
child {node {} child {node {}}};\\};
\end{tikzpicture}
\end{document}
산출
답변2
문제가 와 관련된 것 같습니다 positioning
. 다음과 같은 해결 방법이 있습니다.
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning,calc}
\begin{document}
\begin{tikzpicture}
[level distance = 10mm]
\node [matrix, label=left:{$T_1$}] (T1)
{
\begin{scope}
[every node/.style={draw, circle, inner sep=1pt, minimum size = 1mm}]
\node [grow=down] {}
child {node {} child {node {}}}
child {node {} child {node {}}}
child {node {} child {node {}}};
\end{scope}\\
};
\node [matrix, label=left:{$T_2$}, matrix anchor=west] at ($(T1.east) + (10mm,0)$) (T2)
{
\begin{scope}
[every node/.style={draw, circle, inner sep=1pt, minimum size = 1mm}]
\node {}
child {node {} child {node {}}}
child {node {} child {node {}}}
child {node {} child {node {}}};
\end{scope}\\
};
\end{tikzpicture}
\end{document}