[Catalina] MacTex 2019 + VS Code で LaTeX の環境を構築する

# ※ 2019/12/03 追記
最初の投稿時は macOS Mojave + MacTex 2018 の組み合わせで構築しました．
macOS Catalina + MacTex 2019 でも問題ないことを確認したので，タイトルを変更しています．
また，VS Code のアップデートに合わせて一部内容を修正しました．

余談ですが，VS Code で `Settings Sync` を使う場合は最近の記事を参考にすると良いと思います．
[Settings SyncでVS Codeの設定をPC間で同期する](https://qiita.com/hajime0316/items/87c0c89f5d2ce498c3bd)
以前のように Token を手動で取得する必要は無くなったみたいですね．

# 古い TexLive のアンインストール
古いバージョンを削除したい場合は，以下のコマンドを実行してください．

```
$ sudo rm -rf /usr/local/texlive/2017
$ rm -rf /Applications/TeX
```

もともと Cask で入れたのであれば，以下のコマンドで OK です．
途中でフリーズしたのかと思うくらい，結構な時間がかかります．

```
$ brew cask uninstall mactex
==> Uninstalling Cask mactex
==> Running uninstall process for mactex; your password may be necessary
==> Uninstalling packages:
org.tug.mactex.ghostscript9.21
Password:
org.tug.mactex.gui2017
org.tug.mactex.texlive2017
==> Removing files:
/usr/local/texlive/2017
/Applications/TeX
/Library/PreferencePanes/TeXDistPrefPane.prefPane
/etc/paths.d/TeX
/etc/manpaths.d/TeX
==> Purging files for version 20170524 of Cask mactex
```

# MacTex 2019 のインストール
MacTeX は Cask からインストールできます．
かなり時間がかかるので気長に待ちましょう．
同じように Cask から入れたことがある方は `brew cask reinstall mactex` しろと言われるかもしれません．

```
$ brew cask install mactex
```

GUI-Applications (TeXShop など) が不要な場合，`mactex-no-gui` というものもあるようです．

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

インストールが終わったら，TeXLive のリポジトリを更新しましょう．
これも結構な時間がかかります．

```
$ source ~/.bash_profile
```

`~/.bash_profile` を読み込んでから

```
$ sudo tlmgr update --self --all
```

上記コマンドを入力してください．

もし `tlmgr` が実行できない場合は，ターミナルを再起動してみてください．


# ヒラギノフォントの利用
Mac であればやはりヒラギノを使いたいですよね．
フォント周りの仕様は OS のアップグレードごとにどんどん変わっているため，情報が錯綜しているようです．
私は munepi さんという方が公開している [bibunsho7-patch](https://github.com/munepi/bibunsho7-patch/releases) を使用しました．
dmg ファイルをダウンロードし，中の app ファイルを起動するだけでヒラギノフォントが利用できるようになります．

# Visual Studio Code
公式サイトからダウンロードします．
[Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)
次に，VS Code 用の LaTeX プラグインをインストールしてください．
[LaTeX Workshop - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)
[Code] -> [Preferences] -> [Extensions] から拡張機能の検索ができます．

# 設定ファイルの編集
VS Code は `settings.json` というファイルで設定を記述します．
[Code] -> [Preferences] -> [Setting] の後，右上の [Open Settings (JSON)] を選択します．
下図の赤丸部分です．以前とはアイコンの見た目が変わりましたね．
![スクリーンショット 2019-12-03 22.59.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131552/2c5c1256-e462-0f2e-b289-b6c2da6f5de8.png)


表示された JSON ファイルに，ユーザ独自の設定を記述していきます．

今回は `platex + pbibtex` の利用例を発見したので，非常に参考にさせていただきました．
[VSCode でLatexの日本語環境を作る · GitHub](https://gist.github.com/Ikuyadeu/204d06fffd912f441b383eb02463e29b)

しかし，このままだとエラー時にユーザ入力を求められます．
 [LaTeX] -> [Build LaTeX project] -> [Terminate current compilation]
でコンパイルを中断できますが，面倒ですよね．

ユーザ入力なしでコンパイルを中断するためには，いくつかのオプションを追加する必要があります．
私が使用している設定を [Gist](https://gist.github.com/khys/ee50f6891ed1825479ed38ba79fbc896) にアップロードしておきました．


# コンパイル
ここまでで，tex ファイルのコンパイルはできるようになるはずです．
VS Code 上で `.tex` のファイルを保存すると，自動的に PDF が生成されます．
「Command + Alt + v」で PDF の表示 & 再読み込みができます． 

引用や参考文献がないとエラーになりますが，PDF は出力されているので問題ありません．

# 設定ファイルの同期
LaTeX 環境を複数のマシンで構築したい場合， `settings.json` を同期できると便利ですね．
以下の記事を参考に設定しました．
[Visual Studio Codeの設定をバックアップして同期する Settings Sync](http://dlrecord.hatenablog.com/entry/2017/10/27/205440)

# フォントの確認
ちなみに，生成された PDF にフォントが埋め込まれているかを確認するには `pdffonts` というコマンドが便利です．
`brew install xpdf` でインストールできます．

```
$ pdffonts hoge.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
KBARDZ+NimbusRomNo9L-Regu            Type 1C           WinAnsi          yes yes no       4  0
MHYTOZ+HiraMinProN-W3-Identity-H     CID Type 0C       Identity-H       yes yes no       6  0
HMAQHK+NimbusSanL-Regu               Type 1C           WinAnsi          yes yes no       7  0
```

`emb` が yes になっていれば埋め込まれています．
確かに，ヒラギノ明朝らしきものが表示されていますね．

# 感想
今まで TeXstudio を使っていましたが．環境によって PDF の表示がうまくいかず，うんざりしていました．
VS Code ではモダンなデザインで論文執筆ができるので良いですね！

※ VS Code で自動フォーマット機能が動作しない場合は以下の記事を参考にしてみてください．
[[LaTeX] [Mojave] Mac で latexindent が上手く動作しないときの対処法 - Qiita](https://qiita.com/khys/items/332c3a3f34a82acf7a7a)

# 参考
- [Uninstalling - MacTeX - TeX Users Group](http://www.tug.org/mactex/uninstalling.html)
- [MacTeX 2018 のインストール＆日本語環境構築法](http://doratex.hatenablog.jp/entry/20180501/1525144736)
- [［改訂第7版］LaTeX2e 美文書作成入門](https://okumuralab.org/bibun7/)
- [TeX Live/Mac - TeX Wiki](https://texwiki.texjp.org/?TeX%20Live%2FMac)
- [TeX処理系の気に食わない点(0) — エラー時の挙動 | 雑記帳](https://blog.miz-ar.info/2015/01/tex-error/)