Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

22 Sep '14, 11:51

gast3's gravatar image

gast3
(ausgesetzt)

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.
Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

22 Sep '14, 10:24

gast3's gravatar image

gast3
(ausgesetzt)

Bei Verwendung von `lualatex` kann man die unabhängig vom Betriebssystem die darin enthaltene `lfs`-Erweiterung nutzen, die darin enthalten ist, 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).
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

22 Sep '14, 10:21

gast3's gravatar image

gast3
(ausgesetzt)

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

22 Sep '14, 10:19

gast3's gravatar image

gast3
(ausgesetzt)

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

22 Sep '14, 10:18

gast3's gravatar image

gast3
(ausgesetzt)

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×