Как вывести зависимости только из latexmk?

Как вывести зависимости только из latexmk?

Я хотел бы использовать latexmkв Makefile, поэтому я прочитал раздел руководства по этому поводу. Однако этап генерации зависимостей кажется неидеальным. В частности, кажется, что он latexmkможет показывать зависимости только после полной сборки выходного файла (что может занять много времени в моем случае). Есть ли способ иметь latexmkтолько выходные зависимости для файла и не помечать фактический выходной файл как актуальный?

Я попробовал следующее правило в своем Makefile, но оно, похоже, отмечает выходной файл как актуальный. Я также думаю, что это может запуститься несколько раз (или подумать, что это не удалось) в зависимости от того, что в файле журнала.

%.d: %.tex
    @echo "Generating $@ from $<"
    @set -e; \
     $(LATEXMK) -M -MF $@ -quiet -pdf \
      -pdflatex="echo Generating dependencies from %T" $<

решение1

@tohecz: Вы правы.

Проблема в том, что зависимости сложным образом зависят от подробного содержимого файла TeX (и всех файлов, которые он вызывает, включая файл класса и файлы стилей). Единственный простой способ определить зависимости — запустить pdflatex(или, latexесли это уместно), а затем проанализировать полученные файлы (соответствующими являются файлы .fls, .logи .aux). Если .texфайл изменяется, то и .pdfинформация о зависимости и , одновременно устаревают.

Поэтому, если вы хотите запустить pdflatexдля определения зависимостей, вы получите новый .pdfфайл как побочный эффект. Поэтому нет смысла пытаться обновить информацию о зависимостях без обновления .pdfфайла.

Связанный контент