我想在节点的边界上放置一些子节点。这是我的:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node[rectangle, draw, inner sep=10pt] (Foo) {Foo};
\node[rectangle, draw, fill=white, left=3pt of Foo.south] {\tiny S};
\node[rectangle, draw, fill=white, right=3pt of Foo.south] {\tiny T};
\end{tikzpicture}
\end{document}
得出的结论是:
但现在我想使用椭圆作为形状:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes}
\begin{document}
\begin{tikzpicture}
\node[ellipse, draw, inner sep=10pt] (Foo) {Foo};
\node[ellipse, draw, fill=white, left=3pt of Foo.south] {\tiny S};
\node[ellipse, draw, fill=white, right=3pt of Foo.south] {\tiny T};
\end{tikzpicture}
\end{document}
而且,不出所料,子节点不再放置在边界上,而是位于稍下方(但它们仍然大到足以重叠基节点):
我该如何将这些子节点准确地放置在基节点的边界上?
答案1
您可以将它们明确地放在形状边框上,而不是定位,因为您希望它们像这样:
\node[ellipse, draw, fill=white] at (Foo.-70) {\tiny T};
就足够了。如果需要,你可以使用shift=(<x amount>,<y amount>)
它进行微调。