我有很多图像,编号如下:
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}