
Я хочу иметь «глобальное масштабирование» в изображении TikZ, которое также влияет на все изображения, определенные в tikzpicture
среде. MWE:
\documentclass[tikz, border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}[scale=0.5]
\draw [green] (0,0) rectangle (10,10);
\tikzset{square/.pic={\draw [red] (0,0) rectangle (10,10);}}
\draw (0,0) pic {square};
\end{tikzpicture}
\end{document}
Почему красный квадрат, определенный в , square
не соответствует зеленому квадрату, нарисованному внутри tikzpicture
? Как сделать масштабирование глобальным, затрагивающим все изображения, определенные в нем? Я хотел бы избежать масштабирования каждого pic
вручную.
решение1
transform shape
ваш друг. Обычно такие вещи, как узлы (и, очевидно, картинки) не масштабируются. С помощью transform shape
вы можете это принудительно реализовать. Обратите внимание, что это также масштабирует текст.
\documentclass[tikz, border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}[scale=0.5, transform shape] % <--- Here!
\draw [green] (0,0) rectangle (10,10);
\tikzset{square/.pic={\draw [red] (0,0) rectangle node[midway, transform shape = false] { Foo } (10,10);}} % note the inserted, not transformed text node
\draw (0,0) pic {square};
\end{tikzpicture}
\end{document}