У меня есть небольшое изображение, которое я хочу использовать в другой картинке 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
также принимают параметры.