Ich möchte es in einem Makefile verwenden latexmk
, also habe ich den Abschnitt im Handbuch dazu gelesen. Der Schritt zur Abhängigkeitsgenerierung scheint jedoch nicht ideal zu sein. Insbesondere scheint es, dass latexmk
Abhängigkeiten erst angezeigt werden können, nachdem eine Ausgabedatei vollständig erstellt wurde (was in meinem Fall lange dauern kann). Gibt es eine Möglichkeit, latexmk
nur Ausgabeabhängigkeiten zu einer Datei zu haben und die eigentliche Ausgabedatei nicht als aktuell zu markieren?
Ich habe die folgende Regel in meinem Makefile ausprobiert, aber sie scheint die Ausgabedatei als aktuell zu markieren. Ich könnte auch denken, dass sie mehrmals ausgeführt werden könnte (oder denken könnte, dass sie fehlgeschlagen ist), je nachdem, was in der Protokolldatei steht.
%.d: %.tex
@echo "Generating $@ from $<"
@set -e; \
$(LATEXMK) -M -MF $@ -quiet -pdf \
-pdflatex="echo Generating dependencies from %T" $<
Antwort1
@tohecz: Du hast recht.
Das Problem besteht darin, dass die Abhängigkeiten auf komplizierte Weise vom detaillierten Inhalt der TeX-Datei abhängen (und von allen darin aufgerufenen Dateien, einschließlich der Klassendatei und der Stildateien). Die einzige einfache Möglichkeit, die Abhängigkeiten zu ermitteln, besteht darin, pdflatex
(oder latex
je nach Bedarf) auszuführen und dann die resultierenden Dateien zu analysieren (die relevanten sind die Dateien .fls
, .log
und .aux
). Wenn sich die .tex
Datei ändert, sind sowohl die .pdf
als auch die Abhängigkeitsinformationen gleichzeitig veraltet.
pdflatex
Wenn Sie also die Abhängigkeiten ermitteln möchten , erhalten Sie .pdf
als Nebeneffekt eine neue Datei. Es hat also keinen Sinn, zu versuchen, die Abhängigkeitsinformationen zu aktualisieren, ohne die .pdf
Datei zu aktualisieren.