macOS + VSCode での LaTeX 環境構築

## 1　前提

### 1.1　この記事の目的

過去１年間、５回ほど LaTeX の環境構築を試み５回失敗し６回目で遂に導入に成功しました。次やる時にまた苦しみたくないのでメモを残しておきます。

### 1.2　手許環境

+ macOS Big Sur 11.3
+ Visual Studio Code 1.57.1

## 2　LaTeX のインストール

今回は Homebrew を使ってインストールを行いました。

### 2.1　Homebrew がインストールされていない場合

[Homebrew 公式](https://brew.sh/index_ja) に次のようなコマンドが載っているのでこれをコピペしてターミナルで実行します。最新のコマンドは以下とは異なっている場合があるので、必ず公式サイトから取ってくるようにしてください。

```terminal
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

Homebrew は CUI 中心のパッケージ管理ツールなので、今回は GUI にも対応できる Homebrew-cask というものを使用します。最近の OS だと特に何もしなくても使えるようですが、古いバージョンだと上記のコマンドで一緒に入っていない可能性があります。その場合はターミナルで

```terminal
$ brew install cask
```

を実行します。

### 2.2　LaTeX を入れる

LaTeX を入れていきます。VSCode でファイル編集を行いたいので、ここでは GUI アプリが一緒になっていないものをインストールします。

```terminal
$ brew install mactex-no-gui --cask
```

使用している回線にもよりますが、ダウンロードにかなりの時間がかかるのでゲームなり課題なりして待ちましょう。

インストールまで終わったら TeXLive のアップデートを実行します。

```terminal
$ exec $SHELL -l
$ sudo tlmgr update --self --all
```

これも結構な時間がかかるので、ゲームなり課題なりして (ry

終わったらデフォルトを A4 用紙に設定しておきます。

```terminal
$ sudo tlmgr paper a4
```

### 2.3　jlisting.sty をダウンロード

`jlisting.sty` は日本語を含んだソースコードをエラーなしに表示するために必要なパッケージです。情報系のレポートをよく書くような人は入れておいて損はないです。そうでなければここでは飛ばしてしまって、必要になった時に入れるでも良い気はします。

まず [ここ](https://ja.osdn.net/projects/mytexpert/downloads/26068/jlisting.sty.bz2/) から `jlisting.sty.bz2` をダウンロードします。これがダウンロードされたディレクトリまで移動し

```terminal
$ bunzip2 jlisting.sty.bz2
```

で解凍します。

次に `listing.sty` （欧文のみのソースコードを表示する際に使うパッケージ）と同じ場所に `jlisting.sty` を保存するため、

```terminal
$ kpsewhich listing.sty
```

で `listing.sty` の場所を検索します。そうして確認した場所に先ほど解凍した sty ファイルを移動します。

```terminal
$ sudo mv jlisting.sty /usr/local/texlive/2021/texmf-dist/tex/latex/listing/
```

権限を付与しておき、変更を反映させます。

```terminal
$ sudo chmod +r /usr/local/texlive/2021/texmf-dist/tex/latex/listing/jlisting.sty
$ sudo mktexlsr
```

## 3　VSCode の設定

[VSCode 公式](https://azure.microsoft.com/ja-jp/products/visual-studio-code/) からダウンロードし、VSCode 内で拡張機能 `LaTeX-Workshop` をインストールしておきます。

### 3.1　setting.json の編集

`⌘` + `,` で設定を開き、`setting.json` を見つけて中身に下のような設定を追記します。このへんはよくわかんなくて色々調べたのをぜんぶぺたぺたしたので冗長だったらごめんなさい……ごめんなさい……

```json
{
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-halt-on-error",
                "-pdfdvi",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-lualatex",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "latexmk_rconly",
            "command": "latexmk",
            "args": [
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ],
            "env": {}
        },
        {
            "name": "ptex2pdf",
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOC%"
            ],
            "env": {}
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk 🔃",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "latexmk (latexmkrc)",
            "tools": [
                "latexmk_rconly"
            ]
        },
        {
            "name": "latexmk (lualatex)",
            "tools": [
                "lualatexmk"
            ]
        },
        {
            "name": "pdflatex ➞ bibtex ➞ pdflatex × 2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
        {
            "name": "ptex2pdf",
            "tools": [
                "ptex2pdf"
            ]
        }
    ],
    "latex-workshop.view.pdf.viewer": "tab",
    "editor.renderControlCharacters": true
}
```

### 3.2　使ってみる

適当な tex ファイルを用意し、左の TeX ボタンから `Build LaTeX project` を選択します。特に何もなくビルドが完了して左下にチェックマーク ✔️ がついたら、その下の `View LaTeX PDF` を選択すると実際に PDF ファイルの内容を見ることができます。

![スクリーンショット 2021-06-20 21.43.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1459334/03a17538-9d42-2d8a-9f63-8b439682190d.png)



動作確認ができたらおわりです。おつかれさまでした！


## 参考文献

[1] Homebrew 公式ページ, https://brew.sh/index_ja
[2] TeXWiki, https://texwiki.texjp.org/?TeX%20Live%2FMac
[3] [LaTeX]macOS(Mojave)でのVSCode環境構築備忘録, https://qiita.com/uoyuki/items/c172235a0caf2f637ea4
[4] MacでTex環境を構築【その１】, https://qiita.com/mizuhof/items/1225a1ce85d28d3a5c5a