macOSにTeX Liveを入れてIntelliJ IDEAでタイプセットする

# ローカルでLaTeXでタイプセットしたい

今やOverleafなどのクラウド型LaTeXサービスは存在しますが、例えば卒業論文を書こうとすると画像の大きさでタイムアウト...なんてことが頻発します。
ローカルでできるようにすれば簡単ですが、macOS上でTeX Liveをセットアップしようとして一悶着あったのでまとめてみました

# 環境

```
macOS Monterey 12.6 (21G115)
TeX Live 2022
IntelliJ IDEA 2022.2.3 (Ultimate Edition (Student Licenseも可、Communityは未検証))
```

# MacTeXをインストール

macOSではMacTeXを使ってTeX Liveを入れることができる。MacTeXの入れ方自体はさまざまなサイトに書いてあるのであまり深入りしないが、
参考までに日本語コミュニティのページを記載しておく。

https://texwiki.texjp.org/?MacTeX

ちなみに、こちらではhomebrewを使った。 `brew install --cask mactex`

# IntelliJ IDEAをTeXに対応させる

https://www.jetbrains.com/idea/

IntelliJ IDEAは元々Java関係のプログラムを開発するために作られているが、Ultimate EditionではPHPやRuby、Goなどにも対応させることができる。  
さらに、プラグインを入れることで元々どのエディションもサポートしない言語に対応させることができる。

TeX/LaTeXに対応させるためにインストールするプラグインはこれ:
 
https://plugins.jetbrains.com/plugin/9473-texify-idea

これをインストールすると、TeXファイルのシンタックスハイライトが有効になるだけではなく、TeXコマンドの補完が可能になり、
さらには**コンパイル用のRun Configurationのテンプレを追加してくれる。**
今回はこのテンプレを使ってIDEA上でタイプセットまでできるようにする。

# Run Configuration としてTeXファイルをコンパイルする

ここが一番躓いた。

まず、日本語環境にインストールするTeX Liveの場合、実際の論文が日本語を含むかどうかに関わらず、
LaTeXのタイプセット関連のツールをまとめて呼んでくれる `latexmk` を使うのが良いようだ。

そこで、まずは `latexmkrc` を用意する。
これはホームディレクトリの中かプロジェクトルートのどちらかに`.latexmkrc`のファイル名で置いておけば良い。

日本語用`latexmkrc` の設定内容は様々なところで紹介されているが、どこもだいたいこのような内容で紹介しているはずだ。

```perl:.latexmkrc
#!/usr/bin/env perl
$pdf_mode         = 3;
$latex            = 'platex -halt-on-error';
$latex_silent     = 'platex -halt-on-error -interaction=batchmode';
$bibtex           = 'pbibtex';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'mendex %O -o %D %S';
```

次に Run Configuration を作る。

まず、Run Configurationの追加ボタンから`LaTeX`をテンプレとして選択する。

[![Image from Gyazo](https://i.gyazo.com/c8643c05703fa596985197c3856606bd.png)](https://gyazo.com/c8643c05703fa596985197c3856606bd)

そしてここからがつまずきポイントなのだが、**macOSはセキュリティの関係上、「特定の場所にインストールされたコマンドを実行するのにユーザの明示的なパス指定が必要」となっていて、**  
**TeX Liveのコマンドはこの「特定の場所にインストール」されている。**

そのため、`Compiler`を `Latexmk` に指定しただけではエラーばかり出てコンパイルできない。  
(これに気づくまで小一時間ハマり散らかしていた)

よほどのことをしていない限りは、次のパスにあるはずだ。

```
/Library/TeX/texbin/latexmk
```

もちろん `which` コマンドの結果をクリップボードにコピーしても良い。

```sh:pbcopyはmacOS特有のコマンドで、パイプで繋いだコマンドの出力をクリップボードにコピーしてくれます
which latexmk | pbcopy
```

この値を `Select custom compiler executable path (required on Mac OS X)` を有効にした下のテキストボックスにペーストすれば良い。

[![Image from Gyazo](https://i.gyazo.com/7e27d6dd520f13d49771586f90901bfd.png)](https://gyazo.com/7e27d6dd520f13d49771586f90901bfd)

> [ちなみに]
> PDF Viewerは `PDF Viewer` というプラグインを入れていると `Built-in PDF Viewer` という名前で出現する。
> ただし、場合によってはPDFにはちゃんと日本語文字があるはずなのに
> このViewerで見た時*だけ*全部消えることもあるようなので、
> しっかり確認するにはmacOS付属のプレビュー.appを使った方が良い。

少しスクロールして下の部分に存在するこれらの値はそれぞれ

|項目|値|
|:---|:---|
|Main file to compile|コンパイルするTeXファイルへのフルパス（画像ではファイル名だけだが**フルパス**でなければ実行できない）|
|Directory for output files|出力するPDFなどの場所、 `{projectDir}/output` としておくとプロジェクトの `output` ディレクトリに出力される|
|Output format|DEFAULTを選択|

としておく。特に、 `Directory for output files` は `{projectDir}/output` と入力しておく方が良い。  
というのも、LaTeXはコンパイル時にPDF以外にも高速化のために様々なファイルを出力するからである。
プロジェクトフォルダにそのまま出力してしまうと結構大変なことになるのでおすすめしない。

[![Image from Gyazo](https://i.gyazo.com/f6ee0759d579fb3c2809814071fe770d.png)](https://gyazo.com/f6ee0759d579fb3c2809814071fe770d)

`Name:` の部分に適当に Run Configuration の名前を与えて [OK] をクリックし、これを `Run` (画面上部緑色の矢印) から実行すれば、LaTeXファイルに問題がない限りはコンパイルされるはずである。

[![Image from Gyazo](https://i.gyazo.com/2fcfb951f40ff04ca23ed78cdf847353.png)](https://gyazo.com/2fcfb951f40ff04ca23ed78cdf847353)

ちなみに、IDEAの設定画面の `Languages & Frameworks > TeXiFy` から確認できる設定のうち、
赤枠で囲まれた部分にチェックを入れておくと、保存するごとにコンパイルしてくれる。
CPUに余裕のある場合はチェックしていても良いだろう。

[![Image from Gyazo](https://i.gyazo.com/b9f004b6b939f68e0c9ad4a376aff414.png)](https://gyazo.com/b9f004b6b939f68e0c9ad4a376aff414)