我只想自动生成报告,但我必须逐个添加文件夹中的照片(所有照片都具有相同的结尾(.jpg)),是否有宏或可以一次添加所有照片的东西?现在我手动进行,但这样做会更快更容易。我想我需要编写一个宏,然后将其添加到我的 LaTeX 文件中,但我是新手,我不知道该怎么做。我正在使用 Windows
{\section{Imatges seguiment}
\begin{figure}[h]
\includegraphics[width=\linewidth]{images/coffee1.jpeg}
\caption{Coffee.}
\end{figure}
\begin{figure}[h]
\includegraphics[width=\linewidth]{images/coffee2.jpeg}
\caption{Coffee.}
\end{figure}
\begin{figure}[h]
\includegraphics[width=\linewidth]{images/coffee3.jpeg}
\caption{Coffee.}
\end{figure}
\newpage}
这就是我手动调用的,所以事情是拍摄同一文件夹中的所有照片(注意:并非所有照片都以咖啡开头,这只是一个例子)
答案1
\documentclass[a4paper]{image-gallery}
\gallerySetup{left=20mm,right=20mm,top=20mm,bottom=20mm,
width=5cm,height=3.75cm,rows=6,columns=3,autorotate=true}
\begin{document}
\makeGallery{mypics.txt}
\end{document}
mypics.txt
如果没记错的话,在 Windows 中制作很简单dir *.jpg > mypics.txt
,但最好删除扩展名。如评论所述,不需要图像扩展名(除非您有同名的 JPG、PNG 和 PDF 文件),这样就不会显示在图库中。
答案2
这样的任务通常可以归结为一行,因此将以下内容保存到文件中。
列表命令
for %%f in (*.jpg) do echo \begin{figure}[h!] \includegraphics[width=\linewidth]{images/%%f} \end{figure}>>includes.tex
要用于 png,只需将其更改*.jpg
为*.png
对于多种类型来说,使用它是最安全的,*.jpg,*.png
但它们将按类型分组。
将该文件放在 Images 文件夹中的 jpg 旁边,然后双击它,您将在include.tex
类似这样的列表中找到它,然后将其剪切并粘贴到 report.tex 中。
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image1.jpg} \end{figure}
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image10.jpg} \end{figure}
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image18.jpg} \end{figure}
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image19.jpg} \end{figure}
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image2.jpg} \end{figure}
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image20.jpg} \end{figure}
\begin{figure}[h!] \includegraphics[width=\linewidth]{images/image3.jpg} \end{figure}
请注意,这可能不是您所期望的,因为在我的例子中,顺序是按字母自然顺序排列的,我至少需要将这些单个编号的文件重命名为 image01.jpg image02.jpg 等,以确保所有文件都按数字顺序列出。如果您想测试序列在编译后可能是什么样子,您可以运行这个自生成的contact-sheet.cmd
。
echo \documentclass{article}\usepackage{graphicx}\begin{document}\centering My Images\newpage>includes.tex
for %%f in (*.jpg,*.png) do echo \begin{figure}[h!] \includegraphics[width=\linewidth]{%%f} \end{figure}>>includes.tex
echo \end{document}>>includes.tex
pdflatex includes