No puedo encontrar la manera de resolver mi problema. Un poco de información general para que entiendas por qué haría tales cosas: tengo algunas variables que contienen números. Debido a que esto no es posible (hasta donde yo sé), los nombré como: VoltajeI VoltajeII, etc. Ahora quiero procesarlos en un bucle for con el contador de bucles. Esto funciona bien para figuras que llamé figura1, etc. ->
includegraphics{path/figure\arabic{counter}}.
Mi objetivo es sustituir el contador (en este caso 1) por una I y así sucesivamente. Ya escribí un nuevo comando:
\newcommand{\Romannum}{%
\ifnum #1=1
#1I
\fi
}
Para el Código en mi texto:
\Romannum{Profile}{1}
Esto me imprime:
ProfileI
Como era la intención. Pero necesito la salida no como un texto sino como un nombre de variable para mostrar el contenido de la variable->
\ProfileI
¿Es esto posible o existe una forma más sencilla de obtener números en nombres de variables?
¡Gracias!
Aquí un ejemplo (no se compila debido a la falta de la imagen pero aclara mi pregunta).
\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} }
Respuesta1
Puede utilizar, por ejemplo, expl3
para convertir el valor actual de su contador a un 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}