【備忘録】pLaTeX on  VSCode

#はじめに

VSCodeでpLaTeXを書こうとしたら割と苦労したので、忘れないようにメモしておきます。
苦労した原因は、VSCodeを古いバージョンと新しいバージョンの情報をあまり区別せずに集めてしまったことにありました……。
2018年ぐらいに、後程紹介するVSCopdeの拡張機能の仕様が変わっていたらしいです泣

以下、TeXLiveは入っているものとして進めます。

# VSCodeの拡張機能 LaTeX Workshop

まず、VSCode上にてCtrl + Shift + X で拡張機能を開き、LaTeX Workshopで検索！
インストールしましょう！

## コマンドパレットにSetting(JSON)と入力し、**基本設定：設定(JSON)を開く**を選択

お次は、pLaTeXを扱うための環境設定です。
VSCodeの環境設定は、ユーザーの設定→ワークスペースの設定→フォルダの設定、と階層的な構造を持っています。上流の方が広範囲だが効力が弱いです。ユーザーの設定よりも、フォルダの設定が優先されます。
今回のLaTeX利用の環境では、その適用範囲を制限する必要も特にないと思ったので、**ユーザーの設定**をいじることにします。
VSCodeの環境設定に関して詳しく知りたい方は、こちらの記事をご覧ください。
[vscodeの利用に必須な”ワークスペース”の概念](https://prius.cc/itya/20181218_vscode-workspace)
上記の階層構造や環境設定の方法について、わかりやすく書いてあります！

それでは、コマンドパレットで、Settings.jsonを検索し**基本設定：設定(JSON)**を開きましょう！

## ユーザー設定を編集

```json
{
// 設定: LaTeX Workshop

　　"latex-workshop.latex.tools":[
　　　　 {
          "command": "ptex2pdf",
          "args": ["-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%"],
          "name": "Step 1: ptex2pdf"
        },
        {
          "command": "pbibtex",
          "args": ["%DOCFILE%", "-kanji=utf8"],
          "name": "Step 2: pbibtex"
        },
        {
          "command": "ptex2pdf",
          "args": ["-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%"],
          "name": "Step 3: ptex2pdf"
        },
        {
          "command": "ptex2pdf",
          "args": ["-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%"],
          "name": "Step 4: ptex2pdf"
        },
        {
          "command": "ptex2pdf",
          "args": ["-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%"],
          "name": "ptex2pdf"
        },
        {
            "name":"ptex2pdf (uplatex)",
            "command": "ptex2pdf",
            "args": ["-l","-u","-ot","-kanji=utf8 -synctex=1","%DOC%"]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": ["%DOCFILE%"],
        }
    ], 
    "latex-workshop.latex.recipes": [
        {
            "name": "pt2p-pt2p",
            "tools": [
                "ptex2pdf",//タイプセットに使うtoolの名前
                "ptex2pdf"
            ]
        },
        {
          "name": "pt2p-bib-pt2p-pt2p",
          "tools": [
            "Step 1: ptex2pdf",
            "Step 2: pbibtex",
            "Step 3: ptex2pdf",
            "Step 4: ptex2pdf"
          ]
        }
    ],
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.ist", "*.fls", "*.log", "*.fdb_latexmk", "*.synctex.gz",
        // for Beamer files
        "_minted*", "*.nav", "*.snm", "*.vrb",
    ],
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.latex.autoClean.run": "onFailed",
    "latex-workshop.latex.clean.enabled": true, //上とぶつからないかな？auxiliaryファイル削除
    "latex-workshop.latex.autoBuild.run": "never",
}

```
このコードをsettings.jsonに追加しましょう。
上二つ（tools,recipes)が肝です。toolsでタイプセットに使うtoolを列挙し、recipesからこのtoolを実行する仕組みです。"tools"の中に多数のtookを置くことで、連続で実行可能です。図・表番号やリファレンスなどで、何度かコンパイルしないといけないときに、助けてくれるでしょう。
コンパイルの進み具合を簡単に調べるために、同じtoolを名前を変えて定義しています（Step1,3,4）。

# ビルドしてみる
VScode上でpLaTeX文章をビルドできるか確かめましょう！
コマンドパレットに*latex build*と入力し、
Build with recipeで、例えば、-pt2p-pt2pを選択！

# 先達のおかげ
**助けられました…ありがとうございます！**
[VSCode で LaTeX を書く (2018)](https://qiita.com/popunbom/items/7d02fc75ad23b735d28c)
[VScodeで快適LaTeX環境を構築する方法](https://qiita.com/skikkh/items/707e8a5def368a69e9a6)
[Visual Studio CodeでTeXのコンパイルをできるようにする方法](https://qiita.com/SUZUKI_Masaya/items/7fb5509006163e7e671f)
[VS Code で LaTeX の執筆環境を整える](https://ichiro-maruta.blogspot.com/2019/12/vs-code-latex.html)
[VSCodeでTeXを書こう](https://kerikeri.top/posts/2019-01-14-vscode-latex/)
[VSCodeでTeXがいじれなくなった](http://lyncs.hateblo.jp/entry/2018/04/15/055543)
[VSCodeでTeXをビルドしてpdf表示までする](http://msz006aeug.hatenablog.com/entry/2019/02/08/160404)

#メモ
pLaTeX or upLaTeX？
Latexmkのみの呼び出し(tool and recipe)で、各文書ごとにビルド設定するのが良い？(latexmkrc)