我有一张小图像,想在另一张 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钾Z 有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
也接受参数。