Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Alle *.tex Dateien in einem Verzeichnis/Ordner automatisch mittels \input{} einbinden (Windows)

225 views
Skip to first unread message

Manuel Kuehner

unread,
Jun 16, 2011, 12:05:26 AM6/16/11
to
Hallo zusammen,
ich verwende Windows und das "normale" aktuelle LaTeX. Gibt es eine
Möglichkeit, alle Dateien in einem Ordner (mit einer bestimmten
Endung) mittels \input{} einzubinden?

Ich fand im Netz leider nichts - nur das hier

% ----------------------------------------------------
http://tex.stackexchange.com/questions/6547/how-to-include-all-files-within-a-directory-relative-to-the-edited-tex-file
% ----------------------------------------------------

Ich habe leider sehr wenig Erfahrung im Schreiben von Batch-Dateien.
Vielleicht kann man "einfach" eine Batch-Datei schreiben, die dann so
eine Textdatei erzeugt:

% ----------------------------------------------------
\input{PGF-DateiOrdner/Grafik-Code_1.tex}
\input{PGF-DateiOrdner/Gaussverteilung.tex}
\input{PGF-DateiOrdner/Beispiel_4.tex}
% ----------------------------------------------------

Diese eine Datei kann man dann ja einfach einbinden, da sie die Pfade
zu allen anderen enthält. Oder kann man in LaTeX auch mit Wildcards
arbeiten? Habe ich bisher noch nicht gesehen.

% ----------------------------------------------------
\input{PGF-DateiOrdner/*.tex}
% ----------------------------------------------------

Ich habe auch Perl (für pdfcrop) installiert, wenn das einfacher sein
sollte.

Hintergrund:
Ich möchte mehrere Grafiken mittels PGF bzw. PGFPLOTS erzeugen. Jeder
Grafik-Code ist in einer separaten TEX-Datei. Diese möchte ich alle in
ein Dokument einbinden - es geht nicht um schöne Anordnung, sondern
nur darum, alle Grafiken automatisiert in einem Dokument zu haben.

Beste Grüße
Manuel

Manuel Kuehner

unread,
Jun 16, 2011, 12:43:35 AM6/16/11
to
On 16 Jun., 06:05, Manuel Kuehner

<manuel.kuehner.newslet...@googlemail.com> wrote:
> Hallo zusammen,
> ich verwende Windows und das "normale" aktuelle LaTeX. Gibt es eine
> Möglichkeit, alle Dateien  in einem Ordner (mit einer bestimmten
> Endung) mittels \input{} einzubinden?
>
> Ich fand im Netz leider nichts - nur das hier
>
> % ----------------------------------------------------http://tex.stackexchange.com/questions/6547/how-to-include-all-files-...

> % ----------------------------------------------------
>
> Ich habe leider sehr wenig Erfahrung im Schreiben von Batch-Dateien.
> Vielleicht kann man "einfach" eine Batch-Datei schreiben, die dann so
> eine Textdatei erzeugt:
>
> % ----------------------------------------------------
> \input{PGF-DateiOrdner/Grafik-Code_1.tex}
> \input{PGF-DateiOrdner/Gaussverteilung.tex}
> \input{PGF-DateiOrdner/Beispiel_4.tex}
> % ----------------------------------------------------
>
> Diese eine Datei kann man dann ja einfach einbinden, da sie die Pfade
> zu allen anderen enthält. Oder kann man in LaTeX auch mit Wildcards
> arbeiten? Habe ich bisher noch nicht gesehen.
>
> % ----------------------------------------------------
> \input{PGF-DateiOrdner/*.tex}
> % ----------------------------------------------------
>
> Ich habe auch Perl (für pdfcrop) installiert, wenn das einfacher sein
> sollte.
>
> Hintergrund:
> Ich möchte mehrere Grafiken mittels PGF bzw. PGFPLOTS erzeugen. Jeder
> Grafik-Code ist in einer separaten TEX-Datei. Diese möchte ich alle in
> ein Dokument einbinden - es geht nicht um schöne Anordnung, sondern
> nur darum, alle Grafiken automatisiert in einem Dokument zu haben.
>
> Beste Grüße
> Manuel

Hallo,
das hat ja eigentlich gar nichts mit LaTeX zu tun - sorry.

Habe jetzt mal nach Batch-Zeug gegoogelt und die Code-Schnipsel naiv
angepasst - und es funktioniert. Ich verstehe aber (noch) nicht warum.

% ----------------------------------------
http://dl.dropbox.com/u/1833443/TestVerzeichnis.zip
% ----------------------------------------

myBatchFile.bat
% ----------------------------------------
del myDateiListe_Var1.txt
del myDateiListe_Var2.txt

REM Nur dateinamen
dir /b *.tex > myDateiListe_Var1.txt

REM Dateinamen in \input
for /r %%g in (*.tex) do echo \input{%%~nxg}>>myDateiListe_Var2.txt
% ----------------------------------------

Die Datei "myBatchFile.bat" einfach in das Verzeichnis mit den anderen
Dateien packen und ausführen.

Vielleicht kann das jemand mal gebrauchen.

Beste Grüße
Manuel

Ulrich D i e z

unread,
Jun 18, 2011, 3:57:57 AM6/18/11
to
Manuel Kuehner schrieb:

> Habe jetzt mal nach Batch-Zeug gegoogelt und die Code-Schnipsel naiv
> angepasst - und es funktioniert. Ich verstehe aber (noch) nicht warum.
>
> % ----------------------------------------
> http://dl.dropbox.com/u/1833443/TestVerzeichnis.zip
> % ----------------------------------------
>
> myBatchFile.bat
> % ----------------------------------------
> del myDateiListe_Var1.txt
> del myDateiListe_Var2.txt
>
> REM Nur dateinamen
> dir /b *.tex > myDateiListe_Var1.txt
>
> REM Dateinamen in \input
> for /r %%g in (*.tex) do echo \input{%%~nxg}>>myDateiListe_Var2.txt
> % ----------------------------------------
>
> Die Datei "myBatchFile.bat" einfach in das Verzeichnis mit den anderen
> Dateien packen und ausführen.
>
> Vielleicht kann das jemand mal gebrauchen.

Statt mittels einer batch-Datei kann man diese Anweisungen
auch mittels \write18 während eines (La)TeX-Compilier-
vorganges aufrufen.

Man muss dann allerdings wissen, wie in (La)TeX Dinge
an externe Dateien (die durch \write18 angeschriebene
Konsole kann man als eine solche betrachten) geschrieben
werden.

Ausserdem gibt es, was die zeitliche Abfolge in der die
Dinge ablaufen, betrifft, betriebssystemspezifische Eigenheiten
zu beachten - auf manchen Plattformen werden \write18-
Aufrufe nacheinander abgearbeitert, dh mit der Abarbeitung
eines nachfolgenden Aufrufes wird erst begonnen, nachdem
die Abarbeitung des vorhergehenden Aufrufs beendet ist.
(Bspw MiKTeX 2.4 unter Win95)
Auf anderen Plattformen werden \write18-Aufrufe auch parallel
abgearbeitet, dh mit der Abarbeitung nachfolgender Aufrufe
wird begonnen nachdem mit der Abarbeitung vorhergehender
Aufrufe begonnen wurde wobei aber die Abarbeitung besagter
vorhergehender Aufrufe noch gar nicht beendet sein muss.
(Bspw MiKTeX 2.9 unter Win 7)

Ulrich

Manuel Kuehner

unread,
Aug 14, 2011, 6:00:11 PM8/14/11
to

Hallo Ulrich,
Danke für die Antwort - ich habe es erst jetzt gesehen! Mit \write18-
Aufrufen habe ich noch keine Erfahrung - wäre aber eine sehr elegante
Lösung. Mal sehen, ob ich dazu in einem Buch was finde.

Beste Grüße
Manuel

0 new messages