如果待使用的文件在同一文件夹内,命名无规则且文件数量多,可以参考下
用LaTeX3通过遍历插入指定目录中的所有图像
% 使用LaTeX3遍历图像目录中的图像并实现插图
\documentclass{ctexart}
% 需要的宏包
\usepackage{expl3}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage{zhlipsum}
% 开启LaTeX3环境
\ExplSyntaxOn
% 插图标签处理函数
\cs_new_protected:Nn \fig_label:N
{
#1 % 可以是\label 或 \ref
{
fig \c_colon_str
% 整数转换为小写罗马数字
\int_to_roman:n {\l_cnt_int}
}
}
% 声明计数整数变量,并赋初值为1
\int_new:N \l_cnt_int
\int_set:Nn \l_cnt_int {1}
% 声明文件名列表变量
\tl_new:N \l_figs_tl
% 创建clist
\clist_new:N \l_figs_clist
% 定义排版命令,默认排版当前目录下figs目录下的图像
\NewDocumentCommand{\figslist} {O{figs}}
{
% 调用命令“ls -m #1/*”命令列出当前指定目录下的文件,并保存在\l_figs_tl中
\sys_get_shell:nnN {ls~-m~#1/*}{}\l_figs_tl
% 设置clist
\clist_set:NV \l_figs_clist \l_figs_tl
% 遍历clist并实现插图及label和ref引用
\clist_map_inline:Nn \l_figs_clist
{
\zhlipsum[1]\par
如``图\fig_label:N \ref''所示\par
\begin{figure}[!htb]
\centering
\includegraphics[width=0.35\textwidth]{##1}
\caption{##1}
\fig_label:N \label
\end{figure}
\int_incr:N \l_cnt_int
}
}
\ExplSyntaxOff
\begin{document}
\figslist
\figslist[pics]
\end{document}
问 在 LaTeX 中如何使用 for-loop 包含一组文件呢?