Altere a cor de toda a imagem tikz importada com entrada

Altere a cor de toda a imagem tikz importada com entrada

Tenho uma imagem pequena que quero reutilizar em outra imagem tikz.

Digamos que o arquivo img.tex contenha:

\begin{tikzpicture}
    \draw (0,0) circle (1);
\end{tikzpicture} 

e quero que apareça em vários lugares em outra imagem

\newcommand\mycuteimage[1]{\scalebox{#1}{\input{img}}}

\begin{tikzpicture}
    \draw (0,0) grid (10, 1);
    \foreach \x in {2,5,9}
    {
        \node at (\x - 0.5, 0.5) {\mycuteimage{0.1}};
    }
\end{tikzpicture}

Posso definir de alguma forma a cor da imagem inserida, às vezes vermelha, às vezes azul?

Exemplo:

\mycuteimage[blue]{0.1}

Eu tentei usar

{\color{blue} \mycuteimage{0.1}}

mas apenas altera a cor das linhas para as quais não especifiquei uma cor, ou seja, se alguns elementos eram vermelhos na imagem original, eles permanecerão vermelhos.

Responder1

Sua proposta aninha tikzpictures, o que deve ser evitado. TikZ tem pics para tais fins.

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\tikzset{pics/.cd,
my cute pic/.style={code={
    \draw (0,0) circle (1);
}}}

\begin{tikzpicture}
    \draw (0,0) grid (10, 1);
    \edef\LstColors{{"red","green","blue"}}
    \foreach \X [count=\Y starting from 0]in {2,5,9}
    {
        \pgfmathsetmacro{\mycolor}{\LstColors[\Y]}
        \pic at (\X - 0.5, 0.5) [scale=0.1,color=\mycolor]{my cute pic};
    }
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

picstambém aceita parâmetros.

informação relacionada