Visual Studio CodeのLaTeX Workshopはいろいろと便利なのですが、私の環境ではLaTeXのコンパイル・エラーをProblemsペーンにレンダリングしてくれません。ちょっと困っています。
たとえば以下のようなエラーが.logファイルに出力されている場合、それはLaTeX Workshopによって捕捉されてProblemsペーンに表示されるはずです。ところが、このエントリの頭のアイキャッチ画像のように、ペーンの中には何も表示されません。
./010_raspi_pico.tex:86: Paragraph ended before \a was complete. <to be read again> \par
.latexmkrcの内容はこんな感じ。
# LaTeX max_repeat = 10;
settings.jsonの中身はこんな感じです。
// 生成ファイルを "out" ディレクトリに吐き出す "latex-workshop.latex.outDir": "out", // ビルドのレシピ "latex-workshop.latex.recipes": [ { "name": "Run latexmk", "tools": [ "convert2pdf-process", "latexmk-process" ] }, ], // ビルドのレシピに使われるパーツ "latex-workshop.latex.tools": [ { "name": "latexmk-process", "command": "latexmk", "args": [ "-silent", "-outdir=%OUTDIR%", "%DOC%" ], }, { "name": "convert2pdf-process", "command": "script/convert2pdf", }, ],
それほど凝ったことはしていないので動くはずなのですが。ちなみにlatexmkrcとsettgins.jsonの中でlatexmkの引数を故意に間違うと、ちゃんとエラーを出して止まります。ですので、.latexmkrcの中のlatexのコマンドライン定義もsettings.jsonの中レシピもきちんと動作しているはずです。3台の異なるコンピュータで試しましたが同じ結果でした。LaTeX Workshopの古いバージョンも、昨年、一昨年の分と試しましたがダメでした。
この機能以外はきちんと動いているのがまた頭の痛いところです。文法エラーがあればlogファイルにエラーを記して停止しますし、なければPDFに変換します。
はてさてどうしたものやら。
追記 2023/Oct/03
解決しました。
原因はlatexmkの引数に-silentを与えていたことです。この引数を与えると、latexmkは標準出力(標準エラー出力?)にエラーの詳細を出力しません。代わりに「ログを見ろ」というメッセージが表示されます。私はLaTeX Workshopはログをパース指定るものだとばかり思っていましたが、latexmkの出力をパースしていたのでした。
上のsetting.jasonを以下のように変更すると問題は解決し、Problemsペーンに問題が表示されるようになります。
// 生成ファイルを "out" ディレクトリに吐き出す "latex-workshop.latex.outDir": "out", // ビルドのレシピ "latex-workshop.latex.recipes": [ { "name": "Run latexmk", "tools": [ "convert2pdf-process", "latexmk-process" ] }, ], // ビルドのレシピに使われるパーツ "latex-workshop.latex.tools": [ { "name": "latexmk-process", "command": "latexmk", "args": [ "-outdir=%OUTDIR%", "%DOC%" ], }, { "name": "convert2pdf-process", "command": "script/convert2pdf", }, ],
- Ubuntu 22.04 LTS
- VS Code 1.82.2
- LaTeX Workshop 9.14.6
- pLaTeX2e <2021-11-15> (based on LaTeX2e <2022-06-01> patch level 5)