如何使缩放影响 tikzpicture 中的 TikZ-pics?

如何使缩放影响 tikzpicture 中的 TikZ-pics?

我想要在 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}

相关内容