Hallo, ich bin bestimmt zu blöd, bekomme es aber nicht hin. Die Überschrift sagt es ja schon. Ich habe einen Ordner mit ca. 20 *.tex Dateien, die alle Arara-Regeln beinhalten. Nun möchte ich sie von der Kommandozeile unter Linux einfach alle auf einmal kompilieren. Mit latexmk ging latexmk *.tex oder einfach nur latexmk im Verzeichnis von einer Konsole aus. Mit arara geht das aber nicht, man kann immer nur eine Datei kompilieren. Weiß jemand wieso? VG Thorsten gefragt 08 Okt '15, 18:36 thor |
Gegenwärtig ist in arara diese Möglichkeit nicht vorgesehen, ein entsprechendes Feature habe ich aber gerade vorgeschlagen (cereda/arara #74). Bis dahin gibt es verschiedene Möglichkeiten das fehlende Feature zu umgehen, die Mehrprozessor Varianten bewirken dabei allerdings immer eine Vermischung der Ausgaben der verschiedenen Eine Schleife auf der KommandozeileLinux/OS X:Open in Online-Editor
for f in in *.tex; do arara "$f"; done Alternativ kann man auch Open in Online-Editor
find -name '*.tex' -print0 | xargs -0 -n1 arara # Baut immer nur ein Dokument find -name '*.tex' -print0 | xargs -0 -n1 -P2 arara # Baut 2 Dokumente gleichzeitig, die Zahl 2 darf gerne durch die tatsächliche Anzahl Kerne ersetzt werden. Windows:Open in Online-Editor
for %%f in ('dir /b *.tex') do arara %f
Zur einfachereren Handhabung kann man diese Befehle natürlich auch gerne in eine Ein MakefileWenn einem GNU-make zur Verfügung steht sollte auch folgendes Makefile funktionieren (bin gerade unter Windows, kann daher nicht genauer testen): Open in Online-Editor
SOURCES = $(wildcard *.tex) TARGETS = $(SOURCES:%.tex=%.pdf) all: $(TARGETS) %.pdf: %.tex arara $< # Diese Zeile muss durch Tab eingerückt werden, nicht durch Leerzeichen!!! Dieses Makefile geht davon aus, dass sich alle Dateien im Arbeitsverzeichnis von make befinden. Ausserdem geht es davon aus, dass in keiner der tex-Dateien Es ist sehr einfach mehrere Dokumente gleichzeitig zu kompilieren, indem man dem beantwortet 09 Okt '15, 11:06 NobbZ In eine
(09 Okt '15, 14:00)
saputello
@NobbZ: Beim
(09 Okt '15, 14:02)
saputello
Mit batchscripting unter Windows kenne ich mich nicht so aus, und wegen find hast du natürlich auch recht. Ist eine Sache die ich immer wieder vergesse... Werde den Beitrag entsprechend bearbeiten wenn ich wieder zuhause bin.
(09 Okt '15, 14:25)
NobbZ
Ich antworte hier als Kommentar und hoffe, dass das so ok ist. Danke für die qualifizierten Beiträge. Zurzeit komme ich mit latexmk doch etwas besser klar, vielleicht ändert sich das noch, weil arara ja auch latexmk/xelatexmk unterstützt. So muss ich aber nur in ein Verzeichnis gehen und auf der Konsole (Linux) latexmk eingeben und alle Dateien werden kompiliert. Das reicht mir zurzeit erst einmal. Ich werde aber das Makefile testen, vielleicht kann man es ja auch so konfigurieren, dass es mehrere Verzeichnisse durchsucht und automatisch alle Dateien kompiliert werden....
(09 Okt '15, 20:37)
thor
|
Weil das bei
arara
nicht vorgesehen ist. Du kannst aber etwas wie:for f in *.tex;do arara $f;done
machen. Windows Anwender verwenden stattdessen:for %f in ('dir /b *.tex') do arara %f
Danke schön!, das geht, wundert mich etwas, dass das mit Boarmitteln nicht geht, gerade das finde ich sehr hilfreich, wenn man viele Dateien kompilieren muss :-)
Da benutze ich doch lieber ein geschickt konzipiertes Makefile. Globbing kompiliert im Zweifel alles neu. Mein Makefile nur das was wirklich muss. Dazu hat das Makefile den Vorteil mit Dokumenten die über mehrere Dateien gesplittet besser umgehen kann als ein Glob.