Tengo una imagen pequeña que quiero reutilizar en otra imagen tikz.
Digamos que el archivo img.tex contiene:
\begin{tikzpicture}
\draw (0,0) circle (1);
\end{tikzpicture}
y quiero que aparezca en varios lugares en otra imagen
\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}
¿Puedo establecer de alguna manera el color de la imagen insertada, digamos a veces rojo, a veces azul?
Ejemplo:
\mycuteimage[blue]{0.1}
He intentado usar
{\color{blue} \mycuteimage{0.1}}
pero solo cambia el color de las líneas para las que no especifiqué un color, es decir, si algunos elementos eran rojos en la imagen original, permanecerán rojos.
Respuesta1
Su propuesta anida tikzpicture
s, lo que debe evitarse. TikZ tiene pic
s para tales propósitos.
\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
también tomar parámetros.