VSCodeでLaTeX(latexmkやLaTeX Workshop)を使っていると、「入力中は自動ビルドを止めたいが、入力完了後には自動でビルドしたい」というニーズがよくあります。本記事では、その仕組みと実現方法について、設定の考え方と実用的な構成を整理します。
VSCode LaTeX Workshopの自動ビルド仕様
VSCodeでLaTeXを扱う場合、多くは拡張機能「LaTeX Workshop」を使用します。
この拡張は autoBuild.run の設定によって自動コンパイルの挙動が決まります。
例えば「never」に設定すると完全に自動ビルドが停止し、「onFileChange」などでファイル変更時にビルドが実行されます。
入力完了後に自動ビルドさせる考え方
入力途中のビルドを防ぎつつ、入力完了後にビルドしたい場合は「遅延トリガー」を利用する必要があります。
ポイントは「保存タイミング」または「ファイル変更の停止」を検知する仕組みです。
VSCode単体では完全な“入力終了検知”は難しいため、実質的には autoSave と連動させる方法が現実的です。
おすすめ設定(autoSaveとLaTeX Workshopの組み合わせ)
以下のような構成にすることで、入力完了後に近いタイミングで自動ビルドが可能になります。
{"files.autoSave":"afterDelay","files.autoSaveDelay":1000,"latex-workshop.latex.autoBuild.run":"onFileChange"}
この設定では「入力停止から約1秒後に保存→その後ビルド」という流れになります。
結果として疑似的に“入力完了後ビルド”を実現できます。
latexmkを使った自動ビルドの仕組み
より安定した運用をしたい場合はlatexmkを使う方法もあります。
latexmkはファイル変更を監視し、一定時間変更がなければ自動でコンパイルする仕組みを持っています。
VSCode側の設定と組み合わせることで、より柔軟なビルド制御が可能です。
よくある問題と注意点
自動ビルドが「遅すぎる」「頻繁すぎる」と感じる場合はautoSaveDelayの調整が重要です。
また大規模なTeXファイルでは、毎回のビルドが重くなるため onSave トリガーの方が安定する場合もあります。
環境によって最適値が異なるため、数値調整が必要です。
まとめ
VSCodeのLaTeX環境で「入力完了後に自動ビルド」を完全に実現する専用機能はありませんが、autoSaveとLaTeX Workshopの設定を組み合わせることで、ほぼ同様の挙動を再現できます。
さらにlatexmkを利用すれば、より安定した監視型コンパイル環境を構築することも可能です。


コメント