我想用\includegraphics{folder/*.pdf}
这种简单的方法,我有一个文件夹,里面有不同的文件,我只想选择 pdf 文件。这可能吗?
答案1
假设一个Unix系统:
\documentclass{article}
\usepackage{xparse}
\usepackage{graphicx}
\ExplSyntaxOn
\NewDocumentCommand{\includegraphicsfromfolder}{O{}mm}
{% #1 = options, #2 = folder path, #3 = extension
\sys_get_shell:nnN { ls~-m~#2/* } { } \l_tmpa_tl
\seq_set_split:NnV \l_tmpa_seq { , } \l_tmpa_tl
\seq_map_inline:Nn \l_tmpa_seq
{
\regex_match:nnT { \.#3\Z } { ##1 }
{
\includegraphics[#1]{##1}
\seq_map_break:
}
}
}
\ExplSyntaxOff
\begin{document}
\includegraphicsfromfolder[width=4cm]{folder}{pdf}
\includegraphicsfromfolder[height=2cm]{folder}{png}
\end{document}
这需要-shell-escape
选择。
我们ls
从给定的文件夹中获取一个,其中条目用逗号分隔;然后列表在逗号处拆分,并测试每个条目以所需的扩展名结尾;如果成功,则包含图像并停止映射。
可以添加代码以确保在找不到合适的图像时发出警告。
该folder
示例的子目录包含
> ls folder
example-image-a.png example-image.pdf