¿Cómo puedo hacer que la escala afecte las fotos TikZ dentro de una imagen Tikz?

¿Cómo puedo hacer que la escala afecte las fotos TikZ dentro de una imagen Tikz?

Quiero tener una "escala global" en una imagen de TikZ, que también afecta a todas las imágenes definidas dentro de un tikzpictureentorno. 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 qué el cuadrado rojo definido en squareno encaja con el cuadrado verde dibujado dentro de tikzpicture? ¿Cómo puedo hacer que la escala sea global y afecte a todas las fotografías definidas dentro de ella? Me gustaría evitar escalar cada picmano.

ingrese la descripción de la imagen aquí

Respuesta1

transform shapees tu amigo. Por lo general, elementos como los nodos (y obviamente las fotografías) no están escalados. Con transform shape, puedes hacer cumplir esto. Tenga en cuenta que esto también escala el 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}

información relacionada