Como posso fazer com que o dimensionamento afete as fotos do TikZ em uma imagem do tikz?

Como posso fazer com que o dimensionamento afete as fotos do TikZ em uma imagem do tikz?

Quero ter "escala global" em uma imagem TikZ, que também afeta todas as fotos definidas em um tikzpictureambiente. 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}

Por que o quadrado vermelho definido em squarenão cabe no quadrado verde desenhado dentro de tikzpicture? Como posso tornar o dimensionamento global, afetando todas as fotos definidas nele? Eu gostaria de evitar dimensionar tudo picmanualmente.

insira a descrição da imagem aqui

Responder1

transform shapeé seu amigo. Normalmente, coisas como nós (e obviamente fotos) não são dimensionadas. Com transform shape, você pode impor isso. Observe que isso também dimensiona o texto.

\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}

informação relacionada