下面是两张 TikZ 图片。在第二张图片中,我添加了一个\scalebox
来缩放节点 ABC 及其之间的距离。我希望 A 保持在同一位置,但不幸的是坐标是相对于原点缩放的。
我怎样才能在不平移图形的情况下重新调整该部分的比例?
带有比例框的图片的 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node at (0,0) {0,0};
\node at (4,4) {4,4};
\node at (0,4) {0,4};
\node at (4,0) {4,0};
\scalebox{0.67}{
\node at (2,2) (A) {A};
\node [right=of A] {B};
\node [below=of A] {C};
}
\end{tikzpicture}
\end{document}
要清楚:我确实希望 A、B 和 C 之间的距离按比例缩放,我只是不希望整个比例框朝原点移动。在我的实际文档中,比例框的内容更为复杂。
答案1
使用scope
带有选项的scale=0.67
和transform shape
代替\scalebox
。范围内的所有数字坐标都将被缩放。但您可以使用scope
定义之外的名为coordinate
“anchor”的 来定位节点A
。
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\draw[help lines](0,0)grid(4,4);
\node at (0,0) {0,0};
\node at (4,4) {4,4};
\node at (0,4) {0,4};
\node at (4,0) {4,0};
\coordinate (O) at (2,2);% coordinate for positioning node A
\begin{scope}[scale=0.67,transform shape]
\node at (O) (A) {A};
\node [right=of A] {B};
\node [below=of A] {C};
\end{scope}
\end{tikzpicture}
\end{document}