我有很多图像想要包含在乳胶文档中。
\begin{figure}[h]
\centering
\includegraphics[scale=0.15]{DSC_0001.jpg}
\end{figure}
此代码块仅在图像编号 0002 或 0003 等方面有所不同。有没有一种简单的方法可以循环执行,重复此代码块,但每次将变量编号增加 1。但我还希望每幅图像之间有不同的文本。因此,给出类似的东西,
\begin{figure}[h]
\centering
\includegraphics[scale=0.15]{DSC_0002.jpg}
\end{figure}
This is a pic of blah.
\begin{figure}[h]
\centering
\includegraphics[scale=0.15]{DSC_0003.jpg}
\end{figure}
And this pic is about ...
\begin{figure}[h]
\centering
\includegraphics[scale=0.15]{DSC_0004.jpg}
\end{figure}
答案1
我对以下问题的回答进行了修改创建循环浏览图像的文档
这并不是完全不重要的问题,所以我想它值得一个自己的答案。
请注意,您不需要环境figure
,只需要一个整体\centering
。使用 many\begin{figure}[h]
只会将 LaTeX 扩展到极限,在这种情况下它真的不需要(如果您不想单独为每张图片添加标题)。
\documentclass{article}
\usepackage[demo]{graphicx} % the demo option is just for the example
\newcounter{image}
\newcommand{\placeimages}[2]{%
\par{\centering
\setcounter{image}{#1}\addtocounter{image}{-1}%
\loop\ifnum\value{image}<#2\relax
\stepcounter{image}%
\vspace*{\fill}
\edef\current{DSC\string_\fourdigits{image}}%
\includegraphics{\current}%
\\[12pt]\texttt{\current.jpg} % comment this line if you don't want the file name here
\vfill
\repeat
\par}
}
\newcommand{\fourdigits}[1]{%
\ifnum\value{#1}<1000 0\fi
\ifnum\value{#1}<100 0\fi
\ifnum\value{#1}<10 0\fi
\arabic{#1}%
}
\begin{document}
\placeimages{1}{123} % start-end
\end{document}
如果你必须给每张图片添加文字,这样的快捷方式就行不通了。所以我建议定义一个不同的宏:
\documentclass{article}
\usepackage[demo]{graphicx} % the demo option is just for the example
\newcommand{\placeimage}[2]{% #1 = number, #2 = text
\par{\centering
\vspace*{\fill}
\edef\current{DSC\string_\fourdigits{image}}%
\includegraphics{\current}\\*[12pt]
#2\par}
\vfill
}
\newcommand{\fourdigits}[1]{%
\ifnum\value{#1}<1000 0\fi
\ifnum\value{#1}<100 0\fi
\ifnum\value{#1}<10 0\fi
\arabic{#1}%
}
\begin{document}
\placeimage{1}{This is some text}
\placeimage{2}{This is some different text}
\placeimage{3}{Other text}
\placeimage{4}{Again different}
\end{document}
如果每张图片都有不同的文本,那么简单的循环就无法工作。您必须在某个地方输入此文本,因此在文本前面添加\placeimage
图像编号应该不会太难。