我想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
。