
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 \forloop
pero no puedo usarlos en el \includegraphics
comando:
\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@digits
lo 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 i
el contador LaTeX no exceda 999 como valor.