自动构建图像文件名

自动构建图像文件名

我有很多图像,编号如下:

image_0001.png
image_0002.png
image_0003.png
...

我想要设置一个 Latex 命令来包含特定编号的图像,例如:

\myimageinclude{3}

...将包括“image_0003.png”。

在 Latex/C 混合语言中,这可能看起来像这样:

\newcommand{\myimageinclude}[1]{%
   \includegraphics{sprintf('image_%04d.png', #1)]}}

但我不确定字符串形成语法。这在 Latex 中可行吗?

答案1

您可以使用命令将数字转换为添加前导零的四位数字:

\documentclass{article}
\usepackage{graphicx}

\def\fourdigits#1{%
  \ifnum#1<1000 0\fi
  \ifnum#1<100 0\fi
  \ifnum#1<10 0\fi
  \number#1}
\newcommand\myinclude[2][]{%
  \includegraphics[#1]{image_\fourdigits{#2}}}

\begin{document}

\myinclude[width=3cm]{18}

\end{document}

顺便说一句,我宁愿不在图像文件的名称中使用下划线;也许连字符会更安全。

答案2

当数字小于 10 时,有一个简单的解决方案:

\newcommand{\myimageinclude}[1]{%
\includegraphics{{image_000#1.png}}}

您需要更大的数字吗?

答案3

如果您有具有合适扩展名的文件“image_1”和“image_2”,这应该可以工作。

\documentclass{article}
\newcommand\myimageinclude[1]{\includegraphics{image_#1}}
\usepackage{graphicx}
\begin{document}
\myimageinclude{1}
\myimageinclude{2}
\end{document}

您可以按照如下方式在图像编号前插入零。

\documentclass{article}
\newcommand\myimageinclude[1]{%
\ifnum #1 < 10
  \def\zs{000}
\else
  \ifnum #1 < 100
    \def\zs{00}
  \else
     \def\zs{0}
  \fi
\fi
\includegraphics{image_\zs#1}}

\usepackage{graphicx}
\begin{document}
\myimageinclude{1}
\myimageinclude{20}
\end{document}

相关内容