🙂

VSCode と WSL2 で LaTeX 執筆環境を作ろう

2021/12/23に公開

こんにちは,みなとです.この記事は UEC Advent Calender 2021 その2 に投稿した記事です.この記事では WSL2 上に LaTeX をインストールし,Windows 上から編集できるような環境を構築します.

はじめに


この記事をよんで VSCode と WSL2 をインストールして設定すれば,LaTeX ソースファイルを編集している状態で Ctrl-s を押すだけで自分の好きな手順(例えば大学などから指定されたビルド方法)でコンパイルすることができます.とても便利なのでおすすめしています.

VSCode のインストール


Microsoft Azure のサイトに行って VSCode をダウンロードしましょう.インストーラをクリックしてダイアログに従ってインストールを行えばよいです.インストール作業に自信がないという方はここなどを参考にすればよいでしょう.

WSL2 のインストール


Microsoft 公式サイトに従ってインストールしましょう.少し前はもっと大変だった気がしますが,今は非常に簡単な手順でインストールが行えるようです.

  • Windows 10 バージョン 2004 以降 (ビルド 19041 以降) または Windows 11 の場合
    管理者として Powershell を起動したら

    wsl --install
    

    を実行します.これだけで,自動で

    • WSL2 用の最新 Linux カーネルのダウンロード
    • WSL2 を既定値として設定
    • 既定のディストリビューションとして Ubuntu のインストール

    が行われます.

  • Windows 10 バージョン 2004 (ビルド 19041) より前のバージョンの場合
    以前のバージョンの WSL の手動インストール手順に従ってインストールを行いましょう.簡単に言うと,上の wsl --install がやってくれたことを手動で行うということです.

なお,Ubuntu がインストールされたら Windows の左下の検索欄に ubuntu と入力することで,以下の画像のように起動するためのプログラムが表示されるので,クリックして実行してみましょう.

実行したら最初にユーザー作成とそのユーザーのパスワードを設定するように求められると思います.冷静に表示された英語を読んで指示通り入力すればユーザー作成は終わります.ユーザー作成が終わったらコンソールにて

$ sudo apt -y update && sudo apt -y upgrade

を実行しておきましょう.

TeX Live のインストール

WSL2 上の Ubuntu で LaTeX を書くのですが,LaTeX を PDF に変換するためには LaTeX をコンパイルする環境が必要です.それを担うのが TeX Live です.ミラーサイトからネットワークインストールもできるのですが,ここでは簡単に Ubuntu のコンソールで

$ sudo apt -y install texlive-lang-japanese

を実行することをおすすめします.インストールには結構時間がかかるかもしれません.気長に待ちましょう.これでインストールは終わりです.

Remote WSL のインストール


WSL2 上の Ubuntu にあるファイルを VSCode で編集するために必要な VSCode 拡張機能をインストールしましょう.Windows の画面の左下の検索欄で vscode と入力して Visual Studio Code をクリックして VSCode を起動させて,VSCode の左下の歯車マークをクリックして拡張機能(または extensions)をクリックすると左上に検索欄が開きます.検索欄に remote wsl と入力すると一番上の方に Remote WSL が現れるのでクリックすると以下のような画面になります.私の環境では日本語化されていますが,おそらく Install という文字が見えるのでクリックしてインストールしてください.

インストールが終わったらタブバー(下の画像で黄線で囲われている部分)の Remote WSL のタブのバツ印をおしてタブを閉じましょう.

ここまで来たら VSCode メニューバー(下の画像で赤線で囲われている部分)にあるPCモニターようなマーク(リモートエクスプローラ)を開きましょう.すると細かい違いを除いて次の画像のようになるはずです.

この画像で WSL TARGETS の Ubuntu (画像のものとバージョンは異なるかもしれません)を右クリックして Connect to WSL をクリックすると,新しいウィンドウで VSCode が開かれ WSL に繋がれた状態になります.ここまでくれば,メニューバーの一番上のファイルエクスプローラーから好きなフォルダを開いて作業ができるようになっています.

LaTeX Workshop のインストール


VSCode で LaTeX を書くのにおすすめの拡張機能が LaTeX Workshop です.ところで Remote WSL や Remote SSH などの拡張機能を入れた VSCode では,拡張機能をインストールする際にこちら(接続元)に拡張機能をインストールするのか,向こう(接続先)に拡張機能をインストールするのかという概念が生じます.今回の場合は LaTeX を扱うのは WSL 上なので,LaTeX Workshop は WSL 上にインストールします.Remote WSL を用いて VSCode で WSL に繋いでいる状態で,上で記述したのと同じ手順で拡張機能の検索欄で LaTeX Workshop を探すと,次のように見つかります.

ここで,WSL: Ubuntu-***の中のインストール(または Install on WSL のような英語表記)をクリックして WSL 上に LaTeX Workshop をインストールしましょう.これでインストールは終わりです.

LaTeX Workshop の設定


LaTeX Workshop ではビルド手順を登録し,ショートカットキーで素早くビルドすることが可能となります.そのための設定を行いましょう.LaTeX Workshop ではビルド手順のことをレシピと呼んでいます.レシピを編集したいのですが,その前にレシピで使用するコマンドを登録する作業を行います.WSL に接続した VSCode の画面の左下の歯車マークをクリックして,"設定" または "settings" をクリックすると検索タブが開きます.検索欄に "latex tools" と入力すると Latex-workshop > Latex: Tools という項目が出てきます.

この項目の "settings.json で編集" または "edit in settings.json" をクリックすると,settings.json が開きます.

settings.json の

"latex-workshop.latex.tools": []

の部分を編集します.コマンドを登録するためには以下のようにします:

{
    "name": "recipes で使われる名前",
    "command": "コマンドラインで実際にタイプする名前",
    "args": [
        "引数1", "引数2", ...
    ]
}

引数の部分に "%DOC%" を書くと編集中のファイル名から拡張子を除いた文字列が入ります.platex や dvipdfmx といったコマンドは勝手に適切な拡張子のファイルを引数に取るように調整するみたいなので,こうしたコマンドは "%DOC%" だけを書いておけばよいです.このような {} で囲まれた部分を

"latex-workshop.latex.tools": []

[] の中に並べていきます.私の設定は次のようになっています.

settings.json
"latex-workshop.latex.tools": [
        {
            "name": "platex",
            "command": "platex",
            "args": [
                "-interaction=nonstopmode",
                "%DOC%"
            ]
        },
        {
            "name": "dvipdfmx",
            "command": "dvipdfmx",
            "args":[
                "-V 4",
                "%DOC%"
            ]
        },
]

ここで platex のオプションとして -interaction=nonstopmode を指定しています.このオプションを指定しておかないとコンパイルエラーが生じたときにコンパイルが終了しなくなってしまうので指定する必要があります.tools の設定が終わったら recipes の設定を行います.上と同じように設定の検索窓で "latex recipes" と入力すると Latex-workshop > Latex: Recipes という項目が見つかるので同じように settings.json を開いてください(または上で編集した tools の部分から上にスクロールしても recipes の部分を見つけることができます).開けたら

"latex-workshop.latex.recipes": []

の部分を編集します.レシピを登録するためには以下のようにします:

{
    "name": "レシピの名前",
    "tools": [
        "1番目に実行されるツールの名前",
	"2番目に実行されるツールの名前",
	...
    ]
},

レシピの名前は "1番目のツール名 → 2番目のツール名" や "1番目のツール名 × 2 → 2番目のツール名" などとすることが多いみたいです.また,"tools": [] で登録するツール名は上の tools で登録した名前です.私の設定は次のようになっています.

settings.json
"latex-workshop.latex.recipes": [
    {
        "name": "platex × 2 → dvipdfmx",
        "tools": [
            "platex",
            "platex",
            "dvipdfmx"
        ]
    },
]

参照(\ref{}\eqref{})や参考文献のコマンド(\cite{})などが含まれる LaTeX ソールファイルをコンパイルするために platex を 2 回実行するようにしています.ここまででレシピの設定は終わりです.最後にショートカットキーでビルドするための設定をしましょう.上と同じように設定の検索欄を開いて "latex build" と入力すると Latex-workshop > Latex > Auto Build: Run というメニューが見つかります.ここでドロップダウンメニューから onSave を設定しておきましょう.既定値なのでもともとこうなっているはずですが一応確認しておきます.こうするだけで Ctrl-s でファイルを保存すればレシピ通りにビルドが行われるようになります.これで LaTeX Workshop の設定は終わりです.LaTeX Workshop には他にもたくさんの設定(スニペットなど)ができるのですが,それについては今回は省略します.インターネットで調べて設定すればどんどん便利になるでしょう.

終わりに


長くなりましたが,読んでくださりありがとうございました.この記事を読んで VSCode & LaTeX Workshop 環境を使いこなせるようになりましたら幸いです.なお,この記事の内容に間違いを見つけた場合は私に連絡してくださると助かります.

Discussion