0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaTeX Workshop から latexmk を呼び出すまでの流れ

Last updated at Posted at 2024-09-30

こんにちは。とある大学院生です。

前回、LaTeX Workshop はどのように TeX ソースをコンパイルしているのかという記事にて、 LaTeX Workshop が VS Code の settings.json をどのように解釈しているのかの記事を書きました(と言っても公式ドキュメントを和訳しただけですが)

その続きとして、更に別のファイルを読み込む必要のある latexmk を呼び出すまでの流れを書いていきます。

settings.json

前回の記事と重複しますが、 まず LaTeX Workshop が settings.json を読みに行きます。

settings からレシピが読み込まれて、通常一番上にあるものが実行されます。

settings.json
"latex-workshop.latex.recipes": [
  {
    "name": "latexmk",
    "tools": [
      "latexmk"
    ]
  }
]

ここから更に "tools" と同じ "name" を持つオブジェクトが latex-workshop.latex.tools から読み込まれて、そこに記述されたコマンドが実行されます

settings.json
"latex-workshop.latex.tools": [
  {
    "name": "latexmk",
    "command": "latexmk",
    "args": [
      "-synctex=1",
      "-interaction=nonstopmode",
      "-file-line-error",
      "-pdf",
      "-outdir=%OUTDIR%",
      "%DOC%"
    ],
    "env": {}
  }
]

この場合は latexmk -synctex=1 -interaction=nonstopmode -file-line-error -pdf -outdir=%OUTDIR% %DOC が実行されています。

なお、この中の %OUTDIR%%DOC% は VS Code で利用できる環境変数です (command prompt で環境変数を呼び出す文法と同じなのは開発元が同じ Microsoft だからかしら)

.latexmkrc

settings.json から latexmk が呼び出された後に、 %HOME% ディレクトリにある .latexmkrc ファイルが呼び出されます。

  • OS の違いについての補足:
    • Windows で環境変数 %HOME% を設定しているとこのような動作をします
    • 設定がない場合は多分 %USERPROFILE% と同じ値になっていたと思います
    • UNIX では環境変数 $HOME.latexmkrc ファイルを読み込みに行きます

おわりに

この記事は LaTeX Workshop 内部でどういう流れで処理が行われるのかを記述しているものです。

このため、単体では直接的な問題解決の役に立たないかもしれませんが、処理の流れを知っておくことで、どこで問題が発生しているのかを特定するための見通しをつけやすくなると思います。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?