在tikz中缩放“节点距离”

在tikz中缩放“节点距离”

好吧,这是另一个 TikZ 问题;这次,我不知道如何找到答案。我想为所有节点提供相对坐标:

\node (A) {A};
\node (B) [right = of A] {B};

使用positioning库。距离为node distance。不幸的是,将选项传递给这个距离似乎scale = <factor>没有{tikzpicture}达到预期的效果;事实上,它什么也没做。我怎样才能给出无单位的相对坐标距离?

答案1

方法 1显然,您不必为node distance键指定单位。如果不指定,它似乎会将其视为坐标。因此,这会将节点距离缩放为默认单位长度的三倍,并且默认单位长度与默认节点距离相同。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\begin{scope}[node distance=3]
\node (A) {A};
\node (B) [right = of A] {B};
\end{scope}
\end{tikzpicture}
\end{document}

方法 2 经过评论,大家一致认为这是首选方法可以绘制一个点,读取其坐标,并将节点距离设置为该点。

\begin{tikzpicture}[xscale=3]
\pgfpointtransformed{\pgfpointxy{1}{1}};
\pgfgetlastxy{\vx}{\vy}
\begin{scope}[node distance=\vy and \vx] % strange syntax here
\node (A) {A};
\node (B) [right = of A] {B};
\end{scope}
\end{tikzpicture}

编辑改进不会无形地扩大边界框,如 Andrew Stacey 的评论所述。谢谢!

相关内容