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 ファイル (およびクラス ファイルやスタイル ファイルなど、TeX ファイルが呼び出すすべてのファイル) の詳細な内容に複雑に依存していることです。依存関係を判別する唯一の簡単な方法は、pdflatex
(またはlatex
必要に応じて) を実行し、結果のファイル (関連するのは.fls
、、.log
および.aux
ファイル) を分析することです。ファイルが変更されると.tex
、 と依存関係情報の両方が.pdf
同時に古くなります。
pdflatex
したがって、依存関係を判別するために実行すると、.pdf
副作用として新しいファイルが作成されます。したがって、.pdf
ファイルを更新せずに依存関係情報を更新しようとしても意味がありません。