\documentclass[12pt]{report}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[x=1cm, y=1cm]
\draw [help lines] (0, 0) grid (6, 1);
\node (A) at (0, 0) {A};
\node[right = 2 of A] (B) {B};
\node[right = 2 of B] (C) {C};
\draw[->, thick] (A.east) -- (B.west);
\draw[->, thick] (B.east) -- (C.west);
\end{tikzpicture}
\end{document}
我正在tikzpicture
使用库定位我的节点positioning
。运行上面的代码,我希望在(0, 0)、(2, 0)、(4, 0)处绘制A,B,C。
但是我得到的却是 (0, 0) 处的 A、(2.6, 0) 处的 B、(5.2, 0) 处的 C:
看起来辅助线和节点的坐标单位不匹配。我该如何解决这个问题?
答案1
默认情况下,库distance
的positioning
测量范围是节点边界之间的距离。您可以使用on grid
选项将其更改为节点中心之间的距离。
在您的代码中我已经应用了完整的tikzpicture
,但它可以应用于某个scope
或仅应用于某些节点。
\documentclass[12pt]{report}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[x=1cm, y=1cm, on grid]
\draw [help lines] (0, 0) grid (6, 1);
\node (A) at (0, 0) {A};
\node[right = 2 of A] (B) {B};
\node[right = 2 of B] (C) {C};
\draw[->, thick] (A.east) -- (B.west);
\draw[->, thick] (B.east) -- (C.west);
\end{tikzpicture}
\end{document}