如何根据内部节点定位 tikz 树,即不是定义根的位置,而是定义内部节点的位置?
例如,考虑以下代码。
\documentclass[border=10pt,multi,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node {a}
child {node at (1,0) {b}
child {node {c}}
};
\node {x}
child {node at (3,0) {y}
child {node {z}}
};
\end{tikzpicture}
\end{document}
这段代码确实不是产生所需的输出,但它显示的是我所想象的。
期望有两棵树,其中b
和分别y
位于(1,0)
和(3,0)
,其余的树在它们周围是正常的,例如,a
在上方b
和c
在下方,b
尊重level distance
等等。
特别是当a
和c
成为更大的树时,在内部节点对齐两棵树就变成了繁琐的转移工作。
答案1
为了防止节点按照定义放置,可以使用 Ti钾Z 的图形绘制功能与trees
布局库。
例如,
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
\documentclass[border=10pt,multi,tikz]{standalone}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph [tree layout]
{
a -- { b[at={(1,0)}] , c }
};
\graph [tree layout]
{
x -- { y[at={(3,0)}] , z }
};
\end{tikzpicture}
\end{document}
使用 LuaTeX 编译得到以下结果。
如果您愿意,您可以坚持使用更详细的语法,同时仍使用算法图形绘制功能。这只是更简洁而已。