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, expl3
para 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}