PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatisches Einbinden aller .tex files aus einem Unterverzeichnis



msthab
22-06-2017, 13:13
Hallo,

ich möchte, dass LaTex automatisch alle .tex-files aus einem Unterverzeichnis per \input einbindet, ohne dass ich die (beliebigen) Namen explizit eingeben muss.

Bei https://tex.stackexchange.com/questions/7653/how-to-iterate-through-the-name-of-files-in-a-folder wurde das Thema schon einmal diskutiert, aber der Code läuft bei mir nicht, da offenbar nicht für windows geschrieben (und ich verstehe ihn auch nicht)

Hat jemand eine Idee?

Vielen Dank!

Manfred

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\begin{document}
\input{Docs/xyz.tex}
\input{Docs/abc.tex}
% \input{...}
% Alle .tex files aus dem Unterverzeichnis sollen automatisch geladen werden, ohne explizite Angabe des Namens
\end{document

klops
22-06-2017, 14:12
→ Wie kann ich sehr viele tex-Dateien einlesen? (http://texwelt.de/wissen/fragen/9344/wie-kann-ich-sehr-viele-tex-dateien-einlesen)

msthab
22-06-2017, 15:21
Vielen Dank für die schnelle Antwort
Mit LuaLaTex funktionierts wirklich recht einfach!

Ich würde aber trotzdem gerne bei pdflatex bleiben. Die im Link dafür beschriebene Lösung mit dem DOS-Befehl dir ist aber recht umständlich. Gibt es vielleicht noch eine einfachere Möglichkeit direkt aus pdflatex?

Vielen Dank

klops
22-06-2017, 15:52
Man kann den dir-Befehl natürlich wie shellesc-Paket aus pdflatex heraus aufrufen. Dazu muss man aber auch shell escapes aktivieren. Ebenso könnte man texlua mit passendem lua-Script aus pdflatex heraus wie shellesc-Paket aufrufen. Einfacher geht es mit pdflatex nicht, da pdflatex selbst keine Verzeichnisfunktionen bereit stellt.

msthab
23-06-2017, 17:14
Noch einmal vielen Dank. Ich habe leider bisher nie mit shellesc oder lua gearbeitet.

Daher habe ich das Problem pragmatisch gelöst:
Durch eine cmd-Datei die
1. Mit dem DOS-Befehl die Dateiliste erstellt
2. Direkt das TeXnicCenter mit dem LaTex Code aufruft.

=> Ein Klick auf die .cmd-Datei und ich brauche nur noch im LaTex-Editor die Compilierung zu starten.

Für alle, die vielleicht später das gleiche Problem haben und per google auf diesen Beitrag stoßen, hier die Dateien:

Die "start.cmd" Datei:

dir /b *.tex >FileListe.csv
"C:\Program Files\TeXnicCenter\TeXnicCenter.exe" AlleFilesImVerzLadenAusListe.tex

Die LaTex-Datei "AlleFilesImVerzLadenAusListe.tex"

\documentclass{article}

\usepackage{datatool}

%\DTLsetseparator{ }
\DTLloaddb[
noheader,
keys={name}
]{myfiles}{FileListe.csv}

\begin{document}
\section*{Einbindung der Dateien:}

\DTLforeach*[\not\DTLiseq{\Name}{AlleFilesImVerzLadenAusListe.t ex}]
{myfiles}{\Name=name}{%%
\section{\Name}
\input{\Name}
}%%
\end{document}

Noch einmal vielen Dank für den Link, ohne den hätte ich nie eine Lösung gefunden!