如何才能使球b1
和b2
彼此精确对齐?此外,above=1cm of b1.center, anchor=center
和所有带有north
- south
、north east
-的组合south west
都不会产生所需的结果。
\documentclass[tikz, margin=1pt]{standalone}
\usetikzlibrary{positioning}
\tikzset{ball/.style={draw, circle, minimum size=.1cm}}
\begin{document}
\begin{tikzpicture}
\begin{scope}[]
\matrix[nodes={draw, ball}]{
\node (b1) {b1}; &
\node (b2) [above=.1cm of b1] {b2}; \\
};
\end{scope}
\end{tikzpicture}
\end{document}
答案1
您的代码matrix
不正确,因为您的节点位于同一行,它们被分隔开,并且矩阵中&
只有一个。\\
如果您想使用矩阵,我建议使用以下代码加载matrix
库并使用matrix of nodes
来简化语法。
但我认为第二种解决方案更好,只需使用above=0pt of ...
,你就会得到两个节点,一个在另一个之上。
\documentclass[tikz, margin=1pt]{standalone}
\usetikzlibrary{positioning, matrix}
\tikzset{ball/.style={draw, circle, minimum size=.1cm}}
\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes, nodes={draw, ball}, row sep=0pt]{
b2\\
b1\\
};
\end{tikzpicture}
\begin{tikzpicture}
\node[ball] (b1) {b1};
\node[ball, above=0pt of b1] (b2) {b2};
\end{tikzpicture}
\end{document}