入力でインポートした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

あなたの提案はtikzpictures をネストしていますが、これは避けるべきです。TiZ にはpicそのような目的のための 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パラメータも受け取ります。

関連情報