我已经阅读了多个解决方案,其中发布者迭代文件数量,但我正在寻找一种简单的方法来迭代目录中的文件。例如,
\documentclass{article}
\begin{document}
\foreach\x in {dir/*.tex}{
\input{/\x}
}
\end{document}
此外,解决方案最好不要针对特定操作系统,因为我有时在 Windows 上工作,有时在 Mac 上工作,有时在 Linux 上工作。我知道应该有一种简单的方法来实现这一点,而不必用大约 10 行函数或使用 bash/python 来弄乱主文件。
答案1
您需要 shell 转义。一种可能的方法是使用l3sys-shell
,它以平台中立的方式抽象出各种文件函数
\documentclass{article}
\usepackage{l3sys-shell}
\ExplSyntaxOn
\NewDocumentCommand \inputfiles { m }
{
\sys_shell_split_ls:nN {#1} \l_tmpa_seq
\seq_map_inline:Nn \l_tmpa_seq { \input {##1} }
}
\ExplSyntaxOff
\begin{document}
\inputfiles{dir/*.tex}
\end{document}
请注意,这里的文件顺序并不固定:因此您可能需要对其进行排序seq
。