
Я хотел бы использовать 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
файла.