はじめに
こんにちは!アドカレ19日目担当のリュカです。 LaTeX、皆さんは使っておられますでしょうか。 LaTeXの特徴として、適切に環境を構築すれば文書の内容と構造のみに集中して執筆することが可能になるという点があります。 私はlatexmkとLaTeX Workshopを使った環境でレポート作成や資料作成にと日々便利に使っております。 効率的に書けることがレポート作成にLaTeXを利用する理由といってもいいでしょう。
しかしあるときからLaTeX Workshopの中間ファイルの自動削除が効かなくなってしまいました。 これではファイルが散乱して効率が下がるばかりか精神衛生上もよろしくありません。 聞くところによるとどうやら他の人の環境でも起こっている様子。 設定をミスっているわけではなくLaTeX Workshopの問題によって起こっていると判断して別の方法で中間ファイルの自動削除を実現することにしました。
環境
latexmkとLaTeX Workshopでコンパイルを自動化しています "latex-workshop.latex.autoClean.run": "onBuilt" と設定してビルド後に中間ファイルが自動で削除されるようにしていましたが、ファイルが残るようになりました。
- windows 11
- TeX Live 2020
- latexmk Version 4.67
- LaTeX Workshop v9.15.0
設定
実は中間ファイルを削除する機能はlatexmkにもあります。 ヘルプを見てみましょう。
$ latexmk -h
Latexmk 4.70b: Automatic LaTeX document generation routine
Usage: latexmk [latexmk_options] [filename ...]
Latexmk_options:
...
-c - clean up (remove) all nonessential files, except
dvi, ps and pdf files.
This and the other clean-ups are instead of a regular make.
...
-h, -c and -C override all other options.
...
latexmk -cで中間ファイルを削除してくれます。 ヘルプにはdvi, ps, pdfファイルが残ると書いてありますがsynctexを利用する場合は.synctex.gzも消さないでおいてくれるようです。 これで大半のファイルは一掃できますが、dviファイルが残るので別で処理することにしましょう。 Windowsではdelコマンドで消せます。 Max/Linuxではrmとすれば動くと思います。
あとはLaTeX Workshopの設定に書き加えるだけです。 "latex-workshop.latex.tools"に下記の内容を追記します。
{
...
"latex-workshop.latex.tools": [
...
{
"name": "clean up nonessential files",
"command": "latexmk",
"args": [
"-c",
"%DOC%"
]
},
{
"name": "clean dvi file",
"command": "del",
"args": [
"%DOCFILE%.dvi"
]
}
]
}
次は中間ファイルの自動削除をしたいビルドレシピに
"clean up nonessential files",
"clean dvi file"
を追加します。
{
...
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk",
"clean up nonessential files",
"clean dvi file"
]
},
]
}
こんな感じになります。
おわりに
ビルドしてみるとちゃんと中間ファイルが消えていることが確認できます。 ついでにビルドの進捗状況が左下に表示されるようになっていい感じです。 最後に"latex-workshop.latex.autoClean.run": "onBuilt"は消しておきましょう。 この記事が皆様のよきTeX lifeの一助となれば幸いです。