Измените цвет всего изображения tikz, импортированного с помощью ввода

Измените цвет всего изображения tikz, импортированного с помощью ввода

У меня есть небольшое изображение, которое я хочу использовать в другой картинке Tikz.

Допустим, файл img.tex содержит:

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

и я хочу, чтобы он появился в нескольких местах на другом изображении

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

Можно ли как-то задать цвет вставленного изображения, скажем, иногда красный, иногда синий?

Пример:

\mycuteimage[blue]{0.1}

Я пытался использовать

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

но он изменяет только цвет тех линий, для которых я не указал цвет, т. е. если некоторые элементы были красными на исходном изображении, они останутся красными.

решение1

Ваше предложение вложено tikzpictureв s, чего следует избегать. TiкpicДля таких целей у Z есть s.

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

введите описание изображения здесь

picsтакже принимают параметры.

Связанный контент