我发现,如果我使用图形布局,相对定位就不起作用。请考虑以下示例:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{
graphdrawing
, graphs
, positioning
}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}[binary tree layout]
\graph {
n0 -> {n1, n2};
};
\node [left = of n0] {left of n0};
\end{tikzpicture}
\end{document}
它产生了以下意外的输出。
几乎所有与放置相关的操作都不起作用。您可以说at (n0.center)
,最后一个节点最终会位于同一位置。我如何相对于图中的节点放置节点?
答案1
您正在将其传递binary tree layout
给tikzpicture
环境。如果您将其移动到传递给 的选项\graph
,如下所示:\graph[binary tree layout]
,您的代码就可以正常工作。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{
graphdrawing
, graphs
, positioning
}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}%[binary tree layout]
\graph[binary tree layout] {
n0 -> {n1, n2};
};
\node[left= of n0] {left of n0};
\end{tikzpicture}
\end{document}
答案2
您可以使用树库来实现这一点。您可以通过为节点指定节点名称来定位节点。
代码如下
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[level distance=1.5cm,
level 1/.style={sibling distance=3cm}]
\node (n0) {n0}
child {node (n1) {n1}}
child {node (n2) {n2}
};
\node [left of=n0, xshift=-1cm] {left of n0};
\end{tikzpicture}
\end{document}
输出如下