Crie nomes de variáveis ​​automaticamente (mesclagem de strings)

Crie nomes de variáveis ​​automaticamente (mesclagem de strings)

não consigo descobrir como resolver meu problema. Algumas informações básicas para que você entenda por que eu faria essas coisas: tenho algumas variáveis ​​​​que contêm números. Como isso não é possível (até onde eu sei), nomeei então: VoltageI VoltageII etc. Agora quero processá-los em um loop for com o loopcounter. Isso funciona bem para figuras que chamei de figura1 etc.

includegraphics{path/figure\arabic{counter}}.

Meu objetivo é substituir o contador (neste caso 1) por um I e assim por diante. Eu já escrevi um novo comando:

\newcommand{\Romannum}{%
\ifnum #1=1
#1I
\fi
}

Para o Código no meu texto:

\Romannum{Profile}{1}

Isso me imprime:

ProfileI 

como pretendido. Mas eu preciso da saída não como um texto, mas como um nome de variável para exibir o conteúdo da variável->

\ProfileI

Isso é possível ou existe uma maneira mais fácil de obter números em nomes de variáveis?

Obrigado!

Aqui está um exemplo (não compila devido à falta da imagem, mas deixa minha pergunta mais clara).

\documentclass{article} 

\usepackage{forloop}
\newcommand{\Romannum}[2]{%
\ifnum #2=1
#1I
\fi
 \ifnum #2=2
#1II
\fi
} 

\newcommand{\ProfileI}{Some text is written here.}
\newcommand{\ProfileII}{Some text is written here.}

\newcounter{profilecounter}
\setcounter{profilecounter}{1}

\begin{document} 
\forloop{profilecounter}{1}{\value{profilecounter} < 3}{%
\begin{figure}[htbp]
\centering
\includegraphics[width = \textwidth]{Profil\arabic{profilecounter}.png} %This works
\caption{Profile \arabic{profilecounter} -~\Romannum{Profile}{profilecounter}}%This doesnt work (it writes ProfileI. I'd need \ProfileI to acces the string in the variable.
 \end{figure}
 }

\end{document} } 

Responder1

Você pode usar, por exemplo, expl3para converter o valor atual do seu contador para um número romano:

\documentclass{article}

\usepackage{forloop}
\newcommand{\ProfileI}{Some text for I is written here.}
\newcommand{\ProfileII}{Some text for II is written here.}

\newcounter{profilecounter}
\setcounter{profilecounter}{1}

\usepackage{xparse}
\ExplSyntaxOn 
 %changed to expandable to get it in the listoffigures.
\NewExpandableDocumentCommand\usecurrentProfile {}{ \use:c {Profile\int_to_Roman:n{ \value{profilecounter} }}}
\ExplSyntaxOff

\begin{document}
\listoffigures 
\forloop{profilecounter}{1}{\value{profilecounter} < 3}{%
\begin{figure}[htbp]
\centering
%graphic
\caption{Profile \arabic{profilecounter} -~\usecurrentProfile}%
 \end{figure}
 }

\end{document}

insira a descrição da imagem aqui

informação relacionada