当我尝试使用below=
语法将一个节点放置在另一个节点上方时,出现了一个无用的错误。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[] (node1) at (0, 0) {Node 1};
\node[
below = 5pt of node1
] (node2) {Node 2};
\end{tikzpicture}
\end{document}
错误信息是:
Package PGF Math Error: Unknown operator 'o' or 'of' (in '5pt of node1').
如何将节点与其他节点关联放置而不出现错误消息?
答案1
该<placement>=<distance> of <node>.<anchor>
语法仅适用于高级positioning
库。部分
distance
和of <node>.<anchor>
都是可选的.<anchor>
也是。
待放置节点的键取决于内部设置,具体如下表所示。第三列显示省略部分时的默认值<placement>
。(无符号键只是键的更易理解版本。)anchor
<anchor>
.<anchor>
positioning
<placement>
anchor
<placement> anchor .<anchor>
——————————————————————————————————————————
above south .south
left east .west
below north .south
right west .east
––––––––––––––––––––––––––––––––––––––––––
base left base east .base west
base right base west .base east
mid left mid east .mid west
mid right mid west .mid east
––––––––––––––––––––––––––––––––––––––––––
above left south west .north east
above right south east .north west
below left north west .south east
below right north east .south west
如果没有给出,则采用<distance>
的值。node distance
请注意,对于底部的四个,<distance>
部分可以由组成。 (对于由库增强的键也是<vertical distance> and <horizontal distance>
如此。)node distance
positioning
该on grid
选项将两个锚点(待放置节点和引用的锚点.<anchor>
)设置为,.center
以便将节点放置在网格中。
最后两段所涵盖的主题在PGF 手册在第 16.5.3 节“高级放置选项”中,第 185 页。
示例(带positioning
库)
代码
\documentclass[tikz,border=2pt]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[nodes=draw]
\node (node1) at (0, 0) {Node 1};
\node[below=5pt of node1] (node2) {Node 2};
\end{tikzpicture}
\end{document}
示例(不含positioning
库)
如果没有positioning
库,可以通过组合来实现
- 旧的
<placement>=<distance>
和 - 钥匙
at=<node>.<opposite anchor>
,
其中是上表的<opposite anchor>
对应部分。.<anchor>
anchor
没有库的情况下也设置了正确的部分positioning
。
代码
\documentclass[tikz,border=2pt]{standalone}
\begin{document}
\begin{tikzpicture}[nodes=draw]
\node (node1) at (0, 0) {Node 1};
\node[below=5pt,at=(node1.south)] (node2) {Node 2};
\end{tikzpicture}
\end{document}
输出
答案2
缺少定位库:
\usetikzlibrary{positioning}