WSL2のLaTeXは速い

# LaTeXをWSL2で使う
WSL2でLaTeXを使ってみたところネイティブのWindows上で使うより速かったので記事を書きました。間違いなどありましたらご指摘お願いします。
なお、環境構築に関しては[texlive2020(basic)のインストール on WSL - 晴耕雨読](https://tex2e.github.io/blog/latex/texlive2020-in-wsl)の記事を全面的に参考にさせていただいています。

# WSL2を入れる
[Windows 10 用 Windows Subsystem for Linux のインストール ガイド](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)
今回はディストリビューションとしてUbuntu 20.04 LTSを選択しました。入れたら`sudo apt update` と`sudo apt upgrade`しておきましょう。

# TeX Liveのインストール
まず先にインストール先のレポジトリを作っておきます。

```.sh:bash
$ sudo mkdir /usr/local/texlive
$ sudo chown -R $(whoami):$(whoami) /usr/local/
```

適当なミラーサーバーからインストール用のパッケージを取ってきます。関東だと理研のサーバーが一番近いのでしょうか。

```.sh:bash 
$ wget http://ftp.riken.jp/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar -zxvf install-tl-unx.tar.gz
$ cd install-tl-*    #*には日付が入っているはず
$ $ ./install-tl
```

あとはCUIに従ってポチポチインストールしていきます。僕は

- schemeはcustom(fullかcustomでないと日本語パッケージが入らない)
- collectionsからGame, Humanities, TeXworks editor, Musicを外す
- optionからシンボリックリンクを配置するために`O`から

```:bash
===============================================================================
Options customization:

 <P> use letter size instead of A4 by default: [ ]
 <E> execution of restricted list of programs: [X]
 <F> create all format files:                  [X]
 <D> install font/macro doc tree:              [X]
 <S> install font/macro source tree:           [X]
 <L> create symlinks in standard directories:  [ ]
            binaries to:
            manpages to:
                info to:

Actions: (disk space required: 6940 MB)
 <R> return to main menu
 <Q> quit

Enter command:
```
L押してからEnter3回連打して

```:bash
===============================================================================
Options customization:

 <P> use letter size instead of A4 by default: [ ]
 <E> execution of restricted list of programs: [X]
 <F> create all format files:                  [X]
 <D> install font/macro doc tree:              [X]
 <S> install font/macro source tree:           [X]
 <L> create symlinks in standard directories:  [X]
            binaries to: /usr/local/bin
            manpages to: /usr/local/man
                info to: /usr/local/info

Actions: (disk space required: 6940 MB)
 <R> return to main menu
 <Q> quit

Enter command:
```

としました。あとは`I`を押せばインストールが始まります。30分から1時間ぐらいすれば終わるはずです。終わった後に`tex --version`とかしてバージョン表示が出れば成功しているはずです。

# VScode側の設定
テキストエディタとして今回はVScodeを使います。とりあえず拡張機能からRemote - WSLとLaTeX Workshopを入れておいて、latexmkでluatexとuptexを使うために`settings.json`で以下を設定します。LaTeX Workshopについては[LaTeX Workshopってなに？どうやって使うの？調べてみた！](https://qiita.com/moinslut/items/bc1d1b1e13cb38377406)もどうぞ

```json:settings.json
"latex-workshop.latex.recipes": [
        {
            "name": "latexmk(lualatex)",
            "tools": [
                "latexmk(lualatex)",
            ]
        },
        {
            "name": "latexmk(uplatex)",
            "tools": [
                "latexmk(uplatex)",
            ]
        }
    ],
"latex-workshop.latex.tools": [
        {
            "name": "latexmk(lualatex)",
            "command": "latexmk",
            "args": [
                "-e",
                "$lualatex=q/lualatex %O -synctex=1 -interaction=nonstopmode -file-line-error %S/",
                "-e",
                "$bibtex=q/upbibtex %O %B/",
                "-e",
                "$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/",
                "-e",
                "$makeindex=q/upmendex %O -o %D %S/",
                "-norc",
                "-gg",
                "-pdflua",
                "%DOC%"
            ],
        },
        {
            "name": "latexmk(uplatex)",
            "command": "latexmk",
            "args": [
                "-e",
                "$latex=q/uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode -file-line-error %S/",
                "-e",
                "$bibtex=q/upbibtex %O %B/",
                "-e",
                "$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/",
                "-e",
                "$makeindex=q/upmendex %O -o %D %S/",
                "-e",
                "$dvipdf=q/dvipdfmx %O -o %D %S/",
                "-norc",
                "-gg",
                "-pdfdvi",
                "%DOC%"
            ]
        },
    ],
```
これはそのままWindowsでも使えるみたいです。

# 速度比較
弊学科は卒業設計とかいうのがあるせいで他の学科より卒業論文の締め切りが他の学科より早いです。というわけでここに57ページの ~~小学5年生の夏休みの自由研究~~ 卒業論文があります. こいつをベンチマークとしてコンパイルしてみます.
![page.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529595/e81517ef-7fb6-08ce-1aba-2e259bdad751.png)
なおWSLからWindowsの`C:`側にあるものにアクセスすると遅いのでファイルはWSLでコンパイルするときにはファイルはWSL上に置きました。

### Windows(LuaLaTeX)
![luatex_windows.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529595/521b5f64-d62e-e2c6-17ca-becd08203a59.png)

### WSL2(LuaLaTeX)
![luatex_WSL2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529595/be7e74a2-9a03-587a-d9f6-cc14db16c25a.png)

### Windows(upLaTeX)
![uptex_windows.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529595/a989f785-2b74-cfcf-09b9-f8fe92449dcd.png)
画像が多いせいかめっちゃかかった。

### WSL2(upLaTeX)
![uptex_WSL2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529595/ab1d38cb-5431-8b65-62eb-461086dae3af.png)

# まとめ
|       | LuaLaTeX | upLaTeX |
|:------|:--------:|:-------:|
|Windows|63.55 s   |134.51s  |
|WSL2   |44.53 s   |38.99 s  |
というわけでWSL2の方が全体的にWindowsよりも速いという結果が出ました。 ~~理由は知らん。~~ WSL2上でもWindowsと同じように自由にフォントを変更出来る事は確認していますし、TeX使ってレポート書く時とかは基本WSL2を使うとしてしまって良いのではないでしょうか。

# 参考URL
[texlive2020(basic)のインストール on WSL - 晴耕雨読](https://tex2e.github.io/blog/latex/texlive2020-in-wsl)
[Windows 10 用 Windows Subsystem for Linux のインストール ガイド](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)
[LaTeX Workshopってなに？どうやって使うの？調べてみた！ - Qiita](https://qiita.com/moinslut/items/bc1d1b1e13cb38377406)