迭代目录中文件的简单方法

迭代目录中文件的简单方法

我已经阅读了多个解决方案,其中发布者迭代文件数量,但我正在寻找一种简单的方法来迭代目录中的文件。例如,

\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

相关内容