LaTeX Workshopがエラーをキャッチしない

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
= 'platex -synctex=1 -halt-on-error -interaction=nonstopmode -file-line-error %O %S'; 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)

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください