В конце концов, я хотел бы нарисовать картинку внутри узла большей картинки. Поскольку вложение tikzpicture
s не рекомендуется, я подумал, что pic
синтаксис предоставляет удобную альтернативу.
Однако, pic
похоже, это не работает так, как я думал, когда есть краевые узлы: на pic
рисунке краевой узел находится там, где конец пути, а не посередине.
Может ли кто-нибудь объяснить, что здесь происходит, и предложить выход из этой ситуации?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikzset{test/.pic={
\node (a) at (0,0) {a};
\node (b) at (3,0) {b};
\draw (a)--node{edge node} (b);
}
}
\begin{tikzpicture}
\pic {test};
\end{tikzpicture}
\begin{tikzpicture}
\node (a) at (0,0) {a};
\node (b) at (3,0) {b};
\draw (a)--node{edge node} (b);
\end{tikzpicture}
\end{document}
решение1
К сожалению, я понятия не имею, что происходит, но указание pos
опции для краевого узла решает проблему размещения:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikzset{test/.pic={
\node (a) at (0,0) {a};
\node (b) at (3,0) {b};
\draw (a)--node[pos=0.5]{edge node} (b);
}
}
\begin{tikzpicture}
\pic {test};
\end{tikzpicture}
\begin{tikzpicture}
\node (a) at (0,0) {a};
\node (b) at (3,0) {b};
\draw (a)--node{edge node} (b);
\end{tikzpicture}
\end{document}