
Я обнаружил, что относительное позиционирование не работает, если я использую макет графика. Рассмотрим следующий пример:
\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}
Выход такой: