latexmk から依存関係のみを出力するにはどうすればいいですか?

latexmk から依存関係のみを出力するにはどうすればいいですか?

latexmkMakefile で使用したいので、そのマニュアルのセクションを読みました。ただし、依存関係の生成手順は理想的ではないようです。具体的には、出力ファイルを完全に構築した後でのみ依存関係を表示できるようです (私の場合は長い時間がかかることがあります)。ファイルに依存関係のみを出力し、実際の出力ファイルを最新としてマークしないlatexmk方法はありますか?latexmk

Makefile で次のルールを試してみましたが、出力ファイルが最新としてマークされるようです。ログ ファイルの内容によっては、複数回実行される (または失敗したと考えられる) 可能性もあると思います。

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

答え1

@tohecz: おっしゃる通りです。

問題は、依存関係が TeX ファイル (およびクラス ファイルやスタイル ファイルなど、TeX ファイルが呼び出すすべてのファイル) の詳細な内容に複雑に依存していることです。依存関係を判別する唯一の簡単な方法は、pdflatex(またはlatex必要に応じて) を実行し、結果のファイル (関連するのは.fls、、.logおよび.auxファイル) を分析することです。ファイルが変更されると.tex、 と依存関係情報の両方が.pdf同時に古くなります。

pdflatexしたがって、依存関係を判別するために実行すると、.pdf副作用として新しいファイルが作成されます。したがって、.pdfファイルを更新せずに依存関係情報を更新しようとしても意味がありません。

関連情報