Bei Verwendung von `lualatex` kann man unabhängig vom Betriebssystem die darin enthaltene `lfs`-Erweiterung nutzen, um sämtliche Dateien eines Verzeichnisses zu ermitteln:
\documentclass{article}
\usepackage{luacode}
\begin{document}
\section*{Einbindung der Dateien:}
\begin{luacode}
fileend=".tex"
searchdir="dir" -- Hier statt dir das gewünschte Verzeichnis angeben.
for file in lfs.dir( searchdir ) do
-- file ist jetzt die aktuelle Datei, von der wir noch testen müssen
-- ob sie die Endung .tex hat
if string.sub( file, #file-3 ) == fileend then
print ( "Lese: " .. file )
tex.print( "\\section*{" .. file .. "}\\input{".. searchdir .. "/" .. file .. "}" )
end
end
\end{luacode}
\end{document}
Dafür benötigt man nicht einmal `--shell-escape`. Wenn die LaTeX-Aktion, die man für die gefundene Datei anwenden möchte, etwas aufwendiger ist, lohnt es sich, ein Makro dafür zu definieren:
\documentclass{article}
\usepackage{luacode}
\newcommand*{\doforfileindir}[2]{%
\typeout{Lese Datei: `#1' in Verzeichnis `#2'}
\section*{#1}
\input{#2/#1}
}
\begin{document}
\section*{Einbindung der Dateien:}
\begin{luacode}
local fileend=".tex"
local searchdir="dir" -- Hier statt dir das gewünschte Verzeichnis angeben.
for file in lfs.dir( searchdir ) do
-- file ist jetzt die aktuelle Datei, von der wir noch testen müssen
-- ob sie die Endung .tex hat
if string.sub( file, #file-3 ) == fileend then
tex.print( "\\doforfileindir{" .. file .."}{".. searchdir .. "}" )
end
end
\end{luacode}
\end{document}
Und natürlich kann man auch gleich ein Makro für das ganze definieren:
\documentclass{article}
\usepackage{luacode}
\newcommand*{\doforfileindir}[2]{%
\typeout{Lese Datei: `#1' in Verzeichnis `#2'}
\section*{#1}
\input{#2/#1}
}
\newcommand*{\inputalltexfilesin}[1]{%
\luaexec{
local fileend=".tex"
local searchdir="#1"
for file in lfs.dir( searchdir ) do
% file ist jetzt die aktuelle Datei, von der wir noch testen müssen
% ob sie die Endung .tex hat
if string.sub( file, \#file-3 ) == fileend then
tex.print( "\\doforfileindir{".. file.. "}{".. searchdir .. "}" )
end
end
}
}
\begin{document}
\section*{Einbindung der Dateien:}
\inputalltexfilesin{dir}% Das Argument ist das Verzeichnis, das durchsucht wird.
\end{document}
Näheres zur Syntax von `luacode` und `\luadirect` ist der Anleitung zum Paket [`luacode`](http://www.ctan.org/pkg/luacode) zu entnehmen. Daraus erklärt sich dann auch, warum ich einmal Lua-Kommentare und einmal TeX-Kommentare verwende. Näheres zu Lua selbst findet man in der [Lua-Dokumentation](http://www.lua.org/docs.html) und zu LuaTeX in der [Referenz-Anleitung](http://mirrors.ctan.org/systems/luatex/base/manual/luatexref-t.pdf).
Es sei noch darauf hingewiesen, dass im angegebenen Verzeichnis `dir` wie bei TeX üblich auch unter Windows `/` an Stelle von `\\` zur Trennung zwischen Unterverzeichnisnamen zu verwenden ist.