如何只從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

相關內容