Tikz предоставляет все, что требуется: цикл и математическая оценка.
Вот предложение. Предполагается, что ваши красные / синие фигуры находятся соответственно в red.pdf и blue.pdf. Я заменил его на красные и синие квадраты в файлах red.pdf и blue.pdf.
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}
\def\rowwidth{5}
\def\rownumber{3}
\def\threshold{12}
\parindent 0pt
\foreach \i in {0,...,\rownumber}{
\foreach \j in {0,...,\rowwidth}{
\pgfmathparse{ifthenelse((6*\i+\j>\threshold),"red","blue")}%
\includegraphics[width=1cm]{\pgfmathresult}
}
\newline
}
\end{document}
Первые строки просто определяют параметры чертежа (\ rowwidth и \ rownumber) и значение при изменении цвета (\ threshold).
\ foreach позволяет делать циклы, а \ i (или \ j) будет принимать последовательные значения 0, 1 и т. д.
\ pgfmathparse - это способ, которым tikz обрабатывает математические выражения. Я использую математическую функцию «fthenelse», которая оценивает свой первый параметр (6 * \ i + \ j> 12) и устанавливает для \ pgfmatresult либо второй, либо третий параметр.
Затем просто используйте этот \ pgfmathresult в качестве аргумента \ includegraphics
Но если ваш рисунок, например, сделан с помощью tikz, вы можете использовать его для указания цвета. Например, я позаимствовал из этой темы tex.se https://tex.stackexchange.com/questions/84275/custom-human-shape-for-tikz
следующий рисунок, который соответствует вашим потребностям.
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{positioning,arrows}
\begin{document}
\newcommand{\body}[1]{
\begin{tikzpicture}[#1]
\node[circle,fill,minimum size=5mm] (head) {};
\node[rounded corners=2pt,minimum height=1.3cm,minimum width=0.4cm,fill,below = 1pt of head] (body) {};
\draw[line width=1mm,round cap-round cap] ([shift={(2pt,-1pt)}]body.north east) --++(-90:6mm);
\draw[line width=1mm,round cap-round cap] ([shift={(-2pt,-1pt)}]body.north west)--++(-90:6mm);
\draw[thick,white,-round cap] (body.south) --++(90:5.5mm);
\end{tikzpicture}
}
\def\rowwidth{5}
\def\rownumber{3}
\def\threshold{12}
\parindent 0pt
\foreach \i in {0,...,\rownumber}{
\foreach \j in {0,...,\rowwidth}{
\pgfmathparse{ifthenelse((6*\i+\j>\threshold),"red","blue")}%
\edef\mycolor{\pgfmathresult}
\body{color=\mycolor}
}
\newline
}
\end{document}
\edef
позволяет сохранить \ pgfmathresult и избежать его заделывания.