Como incluir gráficos do enésimo elemento em uma lista de arquivos?

Como incluir gráficos do enésimo elemento em uma lista de arquivos?

Estou escrevendo um documento para gerar um baralho de cartas. Os valores dos cartões são armazenados em uma lista geral. Cada cor/naipe de carta possui um conjunto próprio de arquivos gráficos, também definidos em listas gerais. Ou seja, os valores e nomes dos arquivos são arbitrários, mas para fins de depuração os nomes dos arquivos são sistematizados no código abaixo.

A idéia é executar um índice em um loop for e gerar o valor e o nome do arquivo gráfico para cada cartão no loop. O índice em execução pode ir além do comprimento de qualquer lista para gerar mais cartões, daí o uso da função MyModulo.

Usando a função/macro GetListMember para gerar saída de texto, ele produz os nomes dos arquivos corretamente.

Ao usar a função/macro GetListMember junto com includegraphis para os nomes dos arquivos, a compilação falha:
! \iffalse incompleto; todo o texto foi ignorado após a linha 64.
texto inserido
\fi

e não consigo descobrir o porquê.

Eu realmente gostaria de ter uma solução generalizada, onde os nomes dos arquivos pudessem ser arbitrários. (O comprimento das diferentes listas são números primos, portanto, uma solução com tuplas provavelmente não é a mais eficaz.)

\documentclass{article}
\usepackage{ifthen}
\usepackage{pgffor}
\usepackage{graphicx}
\usepackage{intcalc}
\usepackage{xstring}

\graphicspath{{../images/}}

% Define card values and graphics
\newcommand{\MyValues}{10,Kn,D,K,E}% Values of the cards
\newcommand{\MyValuesN}{5}

\newcommand{\MyCard}{temp1,temp2,temp3}% Card images in one color
\newcommand{\MyCardN}{3}

\newcommand{\MyCardA}{tempA,tempB,tempC}% Card images in second color
\newcommand{\MyCardAN}{3}

% Define wrap around index function.
\newcommand{\MyModulo}[2]{%
  \intcalcInc{\intcalcMod{\intcalcDec{#1}}{#2}}% 
}

% From http://tex.stackexchange.com/questions/21559/macro-to-access-a-specific-member-of-a-list
% This works both with inline lists and with macros containing lists
\newcommand*{\GetListMember}[2]{%
    \edef\dotheloop{%
    \noexpand\foreach \noexpand\a [count=\noexpand\i] in {#1} {%
      \noexpand\IfEq{\noexpand\i}{#2}{\noexpand\a\noexpand\breakforeach}{}%
    }}%
\dotheloop%
}%

%Stand in function generating the cards, the real function is more elaborated.
\newcommand{\docard}[2]{%
  !#1! % Value
  \includegraphics[width=2cm]{#2} %graphics
}

\begin{document}

\foreach \n in {1,...,7} {%
  %
  %This works, shows the values.
  %\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}               
  %
  %This works, produces the correct image file names.
  %\GetListMember{\MyCard}{\MyModulo{\n}{\MyCardN}}.png               
  %
  %This works, includes the images. 
  %\includegraphics[width=2cm]{temp\MyModulo{\n}{\MyCardN}.png}       
  %
  %This does not work.
  %\includegraphics[width=2cm]{\GetListMember{\MyCard}{\MyModulo{\n}{\MyCardN}}.png}    
  %
  %This works, calls the card macro correctly. 
  %\docard{\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}}{temp\MyModulo{\n}{\MyCardN}.png} 
  %
  %This does not work.
  \docard{\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}}
         {\GetListMember{\MyCard}{\MyModulo{\n}{\MyCardN}}.png}
  \par  
}

% Second color of cards
%\foreach \n in {1,...,7} {
%  \docard{\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}}
%         {\GetListMember{\MyCardA}{\MyModulo{\n}{\MyCardNA}}.png}
%  \par  
%}

% Third colors of cards
%\foreach ...

\end{document}

informação relacionada