
別の 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
パラメータも受け取ります。