incluir gráficos con cero a la izquierda en el bucle for

incluir gráficos con cero a la izquierda en el bucle for

Me gustaría incluir gráficos que tengan un nombre de archivo con ceros a la izquierda. Los nombres de los archivos son:

pic_001_prueba.png
pic_002_test.png
.
.
.
pic_028_prueba.png

Puedo generar ceros a la izquierda en a \forlooppero no puedo usarlos en el \includegraphicscomando:

\documentclass{article}
\usepackage{forloop}
\usepackage{graphicx}
\usepackage{fmtcount}

\begin{document}

\newcommand{\filename}{}

\newcounter{i}
\forloop{i}{1}{\value{i} < 4}{
    \begin{figure}
        \renewcommand{\filename}{pic\_\padzeroes[3]{\decimal{i}}\_test.pdf}
        \includegraphics[scale=0.6]{pic_00\arabic{i}_test.png}
        \caption{Screenshot\_\arabic{i}}
        \filename
    \end{figure}
}

\end{document}

El siguiente código no funciona debido a "! secuencia de control indefinida":

\newcommand{\filename}{}
\newcounter{i}
\forloop{i}{1}{\value{i} < 4}{
    \begin{figure}
        \renewcommand{\filename}{pic\_\padzeroes[3]{\decimal{i}}\_test.pdf}
        \includegraphics[scale=0.6]{\filename}
        \caption{Screenshot\_\arabic{i}}
    \end{figure}
}

Respuesta1

LaTeX conoce el (ampliable)\two@digitslo cual parece suficiente para su uso (aunque también se puede ampliar, si es necesario):

\documentclass{article}
\usepackage{forloop}
\usepackage[draft]{graphicx}

\newcounter{filename}
\makeatletter
\newcommand{\twodigits}{\two@digits}
\makeatother
\begin{document}

\forloop{filename}{1}{\value{filename} < 4}{
  \begin{figure}
    \includegraphics[scale=0.6]{pic_0\twodigits{\value{filename}}_test.png}
    \caption{Screenshot\_\thefilename: pic\_0\twodigits{\value{filename}}\_test.png}
  \end{figure}
}

\end{document}

Dado que está utilizando guiones bajos en los nombres de archivo, pareció cierta replicación para evitar problemas de impresión y uso.

Respuesta2

El nombre del archivo debe ser ampliable:

\renewcommand*{\filename}{%
  pic_%
  \ifnum\value{i}<100 0\fi
  \ifnum\value{i}<10 0\fi
  \number\value{i}%
  _.pdf%
}%
\includegraphics[scale=0.6]{\filename}

Tenga en cuenta que una macro con el nombre del archivo, que oculta la extensión, debe comenzar desde el principio del argumento del nombre del archivo \includegraphics.

Respuesta3

Esto también debería funcionar:

% in preamble:
\makeatletter
% notice this will use the value of i at the time of macro use
% not at the time of definition here
\newcommand*{\filename}{%
  pic_%
  \expandafter\@gobble\the\numexpr 1000+\value{i}%
  _.pdf%
}%
\makeatother
% in body:
\includegraphics[scale=0.6]{\filename}

suponiendo que iel contador LaTeX no exceda 999 como valor.

información relacionada