MacでTeX Live + Atomの環境構築に手こずったが成功した

TeX Liveでのインストール方法を紹介します。

MacはMacTeXという一括インストーラーもありますが、[こちらの記事](https://blog.wtsnjp.com/2020/07/07/about-mactex/)によると、MacTeXは完全なアンインストールが難しかったりフォルダの配置が特殊だそうで、使うのをやめておきます。

# 手こずったこと
最初に、手こずったことをまとめておきます。

- ディレクトリの権限を変えられなかった
- パスを通すのに手こずった
- パスを反映させるのに手こずった
- 必要パッケージが不足していた

これが主な原因でした。
これらを含めて、試行錯誤過程をまとめていきます。

# 実施環境
- macOS Big Sur (11.2.3)
- MacBook Pro (13-inch, 2017)
- TeX Live2021
- エンジンはLuaLaTeX
- jlreqクラスを使用

インストールに7GBほど必要なので、余裕をもったストレージの空きを確保しましょう。


# TeX Liveのインストール
## インストーラーを取得
こちらの[TeX Live公式のインストールページ](http://www.tug.org/texlive/acquire-netinstall.html)から`install-tl-unx.tar.gz`をクリックしてインストーラーをダウンロードします。
「この接続ではプライバシーが保護されません」と出てきた場合は、
「詳細」>「mirror.ctan.org」にアクセスする
でダウンロードします。

##ダウンロードしたものを展開
ダウンロードしたものを開くと、圧縮ファイルが解凍されます。
`install-tl`をダブルクリックして開こうとすると、
「"install-tl"は、開発元が未確認のため開けません。」と表示され、開けません。

`install-tl`は右クリックして「開く」をおせば、「開いてもよろしいですか？」と出てくるので、「開く」をクリックします。

フォルダの権限等はすべて「OK」で許可します。

## インストーラーの起動 (初回5分)
ターミナルが自動で起動して、
独特な動物のイラストが描かれたインストーラーが起動します
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/04604dfe-43ac-d0fe-583c-06d743502093.png" width=50%>


「特定のミラーを選択」
\> Asia
\>Japan
から適当なサーバーを選ぶと、日本に近いミラーサイトのサーバーからダウンロードしたほうが少し早くダウンロードできそうです。(やらなくてもOKです)

## インストールの設定
インストーラーの画面が起動したら、画面左下「高度な設定」をクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/1e453e3d-8702-0c06-d802-b761cdf8be9a.png" width=50%>
ここで、インストールをカスタマイズできます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/19ff4ccf-ea10-8fed-b956-c35e6cefa479.png" width=70%>

### ディレクトリ
インストールディレクトリを変更します。
デフォルトの`/usr/local/texlive/2021`では、`/usr/local`の権限をどうも付与できず手こずりました。
(インストールでエラーが起こってしまいます。ルートディレクトリの権限を委譲するのが、色々調べてみてもうまくいきませんでした。)

「変更」をクリックして、フォルダの位置を変更していきます。
たとえば「書類」フォルダの`/Users/USERNAME/Documents/`に設定します。

するとインストールできるようになります。

### 選択したもの
スキームは「full スキーム(すべて)」のままにします。
「追加コレクションの数」もデフォルトのままイジらず全て使います！
**僕はここでケチって、外国語を削除したところ、コンパイルができない問題が発生しました。**

これで、インストールできるはずです。
(もしうまく行かなければ、再度`install-tl`を開いてディレクトリなど調整してください)
7 GBのダウンロードは約50分で終わります。


## インストールの確認
インストールすると、書類フォルダ内に`texlive/2021`というフォルダが作成されているのを確認してください。

# パスを通す
ここが最も手こずりました。かなり苦労しました。
そもそも「パスを通す」の意味がよくわからなかったので、[PATHを通すとは？ (Mac OS X)](https://qiita.com/soarflat/items/09be6ab9cd91d366bf71)を読んだりして学びました。

[Mac(Catalina)にTeX Liveをインストールしたらパスを通すのが大変だった](https://qiita.com/mu-perori/items/57de9ee4d9149b4a4c90)の記事を参考にしました。
大変参考になり、大感謝です。が、少し表示が違ったのでうまくいきませんでした。

ターミナルを起動したときに、
`The default interactive shell is now zsh.
`
と書いてあればzshが使われています。

```:ターミナル
vi ~/.zshrc
```
を実行すると、`.zshrc`というパスを記録するファイル(みたいなやつ)が作成されます。
画面表示が切り替わりますが、英数入力モードで`:wq`と入力し、returnキーでもとに戻れます。

改めて

```:ターミナル
vi ~/.zshrc
```
でviエディタを開きます。

この`.zshrc`ファイルに、`PATH`, `MANPATH`, `INFOPATH`の3つのPATH名を指定してきます。

ここで、僕は上記のサイトの内容をコピペしたのですが、うまくいきませんでした。
そりゃ、フォルダの配置や名称(2020ではなく2021を使っている)も違うので当然のことです…。

PATHは、Finderでフォルダやファイルのフルパスを指定するのが良いです。

```:~/.zshrc
export PATH=$PATH:/Users/USERNAME/Documents/texlive/2021/bin/universal-darwin
export MANPATH=$MANPATH:/Users/USERNAME/Documents/texlive/2021/texmf-dist/doc/man
export INFOPATH=$INFOPATH:/Users/USERNAME/Documents/texlive/2021/texmf-dist/doc/info
```
このように指定します。(USERNAMEは各自置き換えてくださいね)

1つ目のPATHで指定するフォルダは、インストールした状況(？)によって、`universal-darwin`ではなく`x86_64-darwin`となることもあるようです。

書き込んだら、escキーを押して、`:w`→returnキー(保存)→`:q`→returnキー(終了)でもとの画面に戻ります。

さらに、ここで1手間必要です。
[PATHを通すために環境変数の設定を理解する (Mac OS X)](https://qiita.com/soarflat/items/d5015bec37f8a8254380)で記載されているように、`source`コマンドを実行しないとPATHが通らないのです。
なので、

```:ターミナル
source ~/.zshrc
```
と入力して、PATHを反映させます。

## PATHが通っているか確認する
```:ターミナル
echo $PATH
echo $MANPATH
echo $INFOPATH
```
とターミナルにそれぞれ入力して、パスがうまく通っていれば先ほど指定したパスが表示されます。
うまくいっていないと、何も表示されません、
(あるいは、1つ目の`$PATH`については他のソフトで自動的に指定されたパスが表示されることがあります。`texlive`の`universal-darwin`フォルダが表示されれば成功です。)

## `tlmgr`をターミナルで使えるように
tlmgr (TeX Live Manager)は、コマンドラインでパッケージのインストールやアップデート等ができるツールです。
しかし、TeX Liveをインストールしても、ターミナルでいきなり使えるようになるわけではありません。
やり方を探したところ、[MacBook Pro(macOS Sierra)にTeXを導入](https://kakubari-ryusei.hatenablog.com/entry/2017/07/03/193907)を参考にしました。
ターミナルを改めて起動して、僕の場合は、

```:ターミナル
sudo /Users/USERNAME/Documents/texlive/2021/bin/universal-darwin/tlmgr path add
```
これで、パスを指定し、「ココにtlmgrがあるよ」とターミナルに教えてあげます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/92e75657-de7d-a0e1-4a00-fe7a17658602.png)
↑このようにtlmgrのフォルダの位置を指定して、右クリックしてOptionを押しながら「"tlmgr"のパス名をコピー」を押せばパスをコピーできます。

Macのログインパスワードを入力します。

これでtlmgrコマンドが使えるようになりました。

# Atomのインストールと設定
[Atomの公式サイト](https://atom.io)から、Atomをダウンロードします。
`atom-mac.zip`を適当に展開すると、同フォルダにAtomアプリケーションが出てきます。
「アプリケーション」フォルダに移動させるとLaunchpadに表示されて便利です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/f5d64c20-ce19-9d24-df2b-3b46fbff5269.png" width=50%>


## Atomのパッケージをインストール
`Cmd + ,`でSettingsを開きます。
Installをクリックし、

- japanese-menu (by syon) 日本語化パッケージ
- latex (by thomasjo) : LaTeXのコンパイル
- latexer (by Focus) : LaTeXのオートコンプリート
- language-latex (by area) : LaTeXに合わせたハイライト
- pdf-view (by izuzak) : AtomでPDFを開く

この5つを入れます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/b97d067b-7ff6-de6d-ed8e-6976a683f466.png" width=50%>


## `latex`パッケージの設定
パッケージタブに移動して、`latex`パッケージの設定をしていきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/4df4ec7b-3691-7078-32ba-b2e96264b41f.png" width=50%>

### TeX Path
ここには、`texlive`の`bin`フォルダのフルパスを記入します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/6a693788-a23a-0bce-a77c-141f733cf090.png)

Finderでフルパスをコピーするには、フォルダを右クリックし、optionキーを長押ししたままにすると、
「○○のパス名をコピー」と出てくるので、それをクリックします。

`/Users/USERNAME/Documents/texlive/2021/bin`
と記入します。(USERNAMEのところは適宜環境に合わせてください)

### Engine
エンジンは今最も新しい`lualatex`を選択します。(他のエンジンを設定しても構いません)

### Clean Patterns
コンパイル過程で生じるログファイルを`ctrl + option + c`で削除するときに、
削除の対象となるファイルの拡張子を指定します。
様々な拡張子がありますが、PDFは削除されたくないので、`**/**.pdf, `の文字列は消します。

### Opener
PDFを出力するアプリケーションを指定します。
今回はAtom内で開くようにしたいので、パッケージで追加した`pdf-view`を選択します。
(automaticだとデフォルトではMacのプレビューアプリが使われますが、煩わしいです)

これで設定は完了です。

# コンパイルする
いよいよコンパイルです。
## 適当なファイルを作成
Atomの左サイドバー"Add folders"を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/3fa81cae-64ed-cf46-8322-654d8a8caa6e.png" width=70%>


`latex-test`という名前のフォルダを「書類」フォルダ内に新規作成し、`test.tex`というファイルを作成します。
適当な文書をコンパイルしてみましょう。

```latex:test.tex
\documentclass{jlreq}
\begin{document}
Hello, World!
\end{document}
```
そして、ctrl + option + Bでコンパイルします。
(Commandキーではなくcontrolキーです。BはBuildのBです。)

うまくいくと、以下のようにコンパイルされ、PDFが生成されます。
初回は1分くらい時間がかかります。画面左下の矢印がくるくる回っていれば、まだコンパイル中の目印です。
コンパイルが終われば、矢印の回転が止まります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490087/41d1ef62-b31f-1163-e91d-f4a13ea37812.png" width=80%>

お見事、完了です。

# 遭遇したエラー集
ここまでに様々なエラーに遭遇しました。
調べてもほとんどなかったのがキツかったです。今後誰かの役に立つように載せておきます。

## パスが通っていない
```:Error
Message TeXification failed! Builder executable 'latexmk' not found. 
latex.texPath 
as configured: /Users/USERNAME/Documents/texlive 
when resolved: /Users/USERNAME/Documents/texlive:/Users/USERNAME/opt/anaconda3/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin 
Make sure latex.texPath is configured correctly either adjust it via the settings view, or directly in your config.cson file. 
Parsing of log files failed.
```
「`latexmk`が見つかりません」と書いてあります。
実はこれはlatexmkが問題**ではない**ことがわかりました。
パスが通っていないことが原因です。[パスを通す](#パスを通す)を頑張ってください。

なんと、最終的に`.latexmkrc`のファイルはどこにも置く必要がありませんでした。


## パッケージが不足している

``` :Error
TeXification failed with status code null and output of "Rc files read:
.latexmkrc
/Users/USERNAME/.atom/packages/latex/resources/latexmkrc
Latexmk: This is Latexmk, John Collins, 29 May 2021, version: 4.74b.
Latexmk: Changing directory to  '/Users/USERNAME/Documents/latex-test'
```


```:Error
kpathsea: Running mktexfmt lualatex.fmt
mktexfmt: No such file or directory
```

「`mktexfmt`のfmtファイルが見つからないよ」と書いてあります。
[platex.fmtが見つからないというエラーについて](https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2809)を参考にして、解消しました。
tlmgrで欠けているパッケージがあるため、うまくいかないようです。
そのときには、ターミナルにて、

```:ターミナル
tlmgr install scheme-full
```

と入力すると、様々なパッケージがインストールされます。
こうしたらなんと、latexmkrcの問題やmktexfmtという問題もなくなり、コンパイルできるようになりました！

## latexmkrcファイルを編集する
/Users/Username/atom/packages/latex/resources
に配置されている`.latexmkrc`ファイルを以下の内容に書き換えると解決します。

```latex:.latexmkrc
#!/usr/bin/env perl

# LaTeX
$latex = 'lualatex -synctex=1 -halt-on-error -file-line-error %O %S';
$max_repeat = 5;

# BibTeX
$bibtex = 'pbibtex %O %S';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';

# index
$makeindex = 'mendex %O -o %D %S';

# DVI / PDF
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;

# preview
$pvc_view_file_via_temporary = 0;
if ($^O eq 'linux') {
    $dvi_previewer = "xdg-open %S";
    $pdf_previewer = "xdg-open %S";
} elsif ($^O eq 'darwin') {
    $dvi_previewer = "open %S";
    $pdf_previewer = "open %S";
} else {
    $dvi_previewer = "start %S";
    $pdf_previewer = "start %S";
}

# clean up
$clean_full_ext = "%R.synctex.gz"
```
この内容に書き換えるとうまくコンパイルできます！
(2022-01-09追記ここまで)

# まとめ
すごく苦労したので、誰かのお役に立てば幸いです。
修正点あれば、コメントお願いします。