變更透過輸入匯入的整個 tikz 圖片的顏色

變更透過輸入匯入的整個 tikz 圖片的顏色

我有一個小圖像,我想在另一張 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

你的建議嵌套了tikzpictures,應該避免。鈦kZ 有pics 用於此類目的。

\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也帶參數。

相關內容