Wie gebe ich nur Abhängigkeiten von Latexmk aus?

Wie gebe ich nur Abhängigkeiten von Latexmk aus?

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 latexmkAbhä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, latexmknur 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 latexje nach Bedarf) auszuführen und dann die resultierenden Dateien zu analysieren (die relevanten sind die Dateien .fls, .logund .aux). Wenn sich die .texDatei ändert, sind sowohl die .pdfals auch die Abhängigkeitsinformationen gleichzeitig veraltet.

pdflatexWenn Sie also die Abhängigkeiten ermitteln möchten , erhalten Sie .pdfals Nebeneffekt eine neue Datei. Es hat also keinen Sinn, zu versuchen, die Abhängigkeitsinformationen zu aktualisieren, ohne die .pdfDatei zu aktualisieren.

verwandte Informationen