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の内容はこんな感じ。
# LaTeXmax_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)