我在一个文件夹中保存了几个以 .pdf 格式的图表,我想知道是否有办法将它们全部一次性添加到文档中,而无需输入每个文件的路径。
答案1
最好在 latex 外部执行此操作(尽管您可以根据需要使用 shell-escape(write18)功能从 latex 内部执行命令)。
我假设 bash 语法但其他命令行系统也可以做类似的事情。
假设你有一个目录/文件夹,img
里面有三个 pdf 文件
$ ls img
a.pdf b.pdf other.pdf
并且您希望按字母顺序排列它们(或者通过使用参数ls
或其他命令可以实现的任何其他顺序)
然后执行
ls img/*.pdf | sed -e "s/.*/\\\\includegraphics{\\0}/" > img/imglist.tex
img/imglist.tex
会留下一个看起来像的文件
\includegraphics{img/a.pdf}
\includegraphics{img/b.pdf}
\includegraphics{img/other.pdf}
因此您只需要\input{img/imglist}
在主文件中进行操作,并在imglist.tex
每次更新图像目录时(或每次运行 latex 时)安排重新生成。
答案2
使用 texlive 2024 您可以访问所有文件,而无需使用明确的脚本或--shell-escape
。
该l3sys-query
工具允许在默认的受限 shell 转义模式下调用,因此您可以执行
\documentclass{article}
\usepackage{graphicx,l3sys-query}
\begin{document}
\QueryFiles{img/*.pdf}
{\begin{center}\includegraphics{#1}\end{center}}
\end{document}