Hier mal eine klassische Handwerkslösung mit `datatool`:
**0)** Erstmal habe ich mir einen Ordner angelegt, mit Hilfsdateien `alpha.tex, beta.tex, gamma.tex`; sie sehen inhaltlich schlicht so aus:
Das ist die Datei alpha.tex
___
**1)** Als erstes brauchen wir eine Liste `Files.csv`, welche die genannten Dateien auflistet.
Der **1a)** Mit dem Windows-Befehl ist hierzu
dir /s /p *.tex >Files.csv
Das Erg. sieht so aus:
erhalten wir folgendes Übersicht über unsere einzubindenden Dateien:
Datenträger in Laufwerk C: ist Boot
Volumeseriennummer: 8A59-DE79
Verzeichnis von C:\Test
20.09.2014 23:13 27 alpha.tex
20.09.2014 23:13 26 beta.tex
20.09.2014 23:13 29 gamma.tex
20.09.2014 23:49 682 main.tex
4 Datei(en), 764 Bytes
Anzahl der angezeigten Dateien:
4 Datei(en), 764 Bytes
0 Verzeichnis(se), 121.686.958.080 Bytes frei
Wenn **1b)** Für unsere Zwecke passen wir hier den Unrat beseitigen bleibt [DIR-Befehl][1] noch an:
dir /b *.tex >Files.csv
was ohne Weiteres die Liste (`Files.csv`)
20.09.2014 23:13 27 alpha.tex
20.09.2014 23:13 26 beta.tex
20.09.2014 23:13 29 gamma.tex
20.09.2014 23:49 682 main.tex
liefert.
Hierzu zwei Anmerkungen:
eine Anmerkung:
- Wir könnten auch gleich die Die evtl. vorhandene Hauptdatei (s.u.) an dieser Stelle beseitigen; aus Übungsgründen machen `main.tex` wird mitgefunden; wir das aber werden sie später in der datatool-Schleife.
- Mir ist auf die Schnelle -aus der 225seitigen Anleitung- nicht klar, wie man diese Umrandungstexte "`Datenträger in Laufwerk C: blabla`" bei datatool ausschließt. Wenn ich das wüßte, hätte ich sogar eine Methode, wie man alle Schritte in einem Zug ausführen könnte.
datatool-Schleife ausschließen.
___
**2)** So, und jetzt können wir folgende Hauptdatei (`main.tex`) übersetzen:
\documentclass{article}
\usepackage{datatool}
\DTLsetseparator{ %\DTLsetseparator{ }
\DTLloaddb[
noheader,
keys={date,time,size,name}
keys={name}
]{myfiles}{Files.csv}
\begin{document}
\section*{Einbindung der Dateien:}
\DTLforeach*[\not\DTLiseq{\Name}{main.tex}] %main.tex ausschließen
{myfiles}{\Name=name}{%%
\DTLforeach*[\not\DTLiseq{\Name}{main.tex}
] %
{myfiles}{\Name=name}{%%
\section{\Name}
\input{\Name}
}%%
\end{document}
![alt text][1]
text][2]
___
___
___
___
___
___
Wir könnten auch auf die Idee kommen, die o.g. Schritte automatisch in einem Zug, und zwar dokumentintern, auszuführen.
Dazu können wir `arara` und die arara-Regel [`console.yaml`][3] von @Clemens
verwenden.
Mit arara kompilieren wir dann das gleiche Dokument, mit ergänztem arara-Dokumentkopf:
% arara: console: { command: 'cmd /c dir /b *.tex >Files.csv' }
% arara: pdflatex
\documentclass{article}
\usepackage{datatool}
%\DTLsetseparator{ }
\DTLloaddb[
noheader,
keys={name}
]{myfiles}{Files.csv}
\begin{document}
\section*{Einbindung der Dateien:}
\DTLforeach*[\not\DTLiseq{\Name}{main2.tex}
] %
{myfiles}{\Name=name}{%%
\section{\Name}
\input{\Name}
}%%
\end{document}
Was die selbe Ausgabe wie in **2)** liefert.
[1]: http://texwelt.de/wissen/upfiles/555555555555555e3BUX_1.pnghttp://www.i8086.de/dos-befehle/dir.html
[2]: http://texwelt.de/wissen/upfiles/555555555555555e3BUX_1.png
[3]: http://texwelt.de/wissen/fragen/5097/wie-kann-ich-mit-arara-einen-kommandozeilenbefehl-ausfuhren/5109