tikzpicture 坐标单位

tikzpicture 坐标单位
\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

默认情况下,库distancepositioning测量范围是节点边界之间的距离。您可以使用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}

在此处输入图片描述

相关内容