Ich habe ein kleines Bild, das ich in einem anderen Tikz-Bild wiederverwenden möchte.
Nehmen wir an, die Datei img.tex enthält:
\begin{tikzpicture}
\draw (0,0) circle (1);
\end{tikzpicture}
und ich möchte, dass es an mehreren Stellen in einem anderen Bild erscheint
\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}
Kann ich die Farbe des eingefügten Bildes irgendwie einstellen, also beispielsweise mal rot, mal blau?
Beispiel:
\mycuteimage[blue]{0.1}
Ich habe versucht,
{\color{blue} \mycuteimage{0.1}}
aber es ändert nur die Farbe der Linien, für die ich keine Farbe angegeben habe, d. h. wenn einige Elemente im Originalbild rot waren, bleiben sie rot.
Antwort1
Ihr Vorschlag enthält tikzpicture
Verschachtelungen, die vermieden werden sollten.kZ hat pic
für solche Zwecke 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
nehmen auch Parameter an.