macでlualatexを使ってみた

## はじめに
研究者はやはりlatexだろう。最近macbookを買ったので、これにlatexをインストールすることにした。
latexエンジンは最近流行りらしいlualatexで行くことにした。
すぐにコンパイルが通るかと思いきやパスで色々苦労したので、備忘録として共有させていただく。

### 環境
- MacBook M3 Pro (macOS Sonoma)
- Texlive 2024 (mactexを使用)
- Visual Studio Code
    - 拡張機能: LatexWorkshop
- Terminal or Warp（どっちも本質は変わらないと思います、おそらく）

## 前提
LaTeXは知っているor使ったことがある前提で進めさせていただきます。もし知らない場合は他の記事を当たってください。
参考: [TeX Wiki](https://texwiki.texjp.org/)、その他入門用サイトや書籍

Homebrew、VSCodeはインストール済みとします。こちらもインストールされていない場合は他を参考にしてインストールしてください。特に難しいところはありません。

## mactexのインストール
[TeX Wiki](https://texwiki.texjp.org/?TeX%20Live/Mac#texlive-install-official)のmacOS向けの章を参考に行います。
Homebrewで以下のコマンドの通りインストールします。
```zsh:shell
$ brew install --cask mactex-no-gui
```
僕はGUIツールがいらないので-no-guiオプションをつけました。
[mactexをおすすめしない理由](https://blog.wtsnjp.com/2020/07/07/about-mactex/)によると、GhostScriptがいろんな場所にインストールされる使用だったみたいです。最近はCaskを使えばそんなことはないようでしたが、調査が甘く危うく環境を汚すところでした。
また、通す必要があるパスもUnix系のTexLiveと少々異なるみたいです。

## パス
Linuxと違い、zshでは`export`コマンドをシェルに打つだけでは恒久的に実行されないみたいです（シェルとかを再起動するとパスが通らなくなっている）。
なので、`~/.zshrc`に以下のことを書き込む必要があります。
```zsh:.zshrc
export PATH=$PATH:/usr/local/texlive/2024/bin/universal-darwin
export PATH=$PATH:/Library/TeX/texbin
```
ここで引っ掛かっていたのですが、2行目のものも書いておく必要があります。
2行目のやつはUnix系やLinuxでは通さなくていいはずですが、mactexの場合は通す必要があるそうです。
実は[mactexをおすすめしない理由](https://blog.wtsnjp.com/2020/07/07/about-mactex/)に書いてありました。
そのあとは`source`してあげればいいです。
```zsh:shell
$ source .zshrc
```
これで`echo $PATH`を実行し、exportで追加したやつらが出力に含まれていればOKです。
`platex`や`lualatex`を実行してやると動作すると思います。

## VScodeの設定
LatexWorkshopはインストールされている前提です。
インストールは簡単なので割愛します。
`setting.json`を開いて、以下を追記します。
```json:setting.json
{
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.view.pdf.invert": 0,
    "latex-workshop.latex.autoBuild.run": "onSave",
    "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true,
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": ["-r", "%WORKSPACE_FOLDER%/.latexmkrc", "-cd", "%DOC_EXT%"]
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "lualatex",
            "tools": [
                "latexmk"
            ]
        }
    ],
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/Thumbs.db": true,
        "**/*.dvi": true,
        "**/*.aux": true,
        "**/*.fls": true,
        "**/*.atfi": true,
        "**/*.nav": true,
        "**/*.snm": true,
        "**/*.toc": true,
        "**/*.asv": true,
        "**/*.stderr": true,
        "**/*.stdout": true,
        "**/_minted-*/": true,
        "**/_markdown_*/": true,
        "**/pythontex-files-*/": true,
        "**/*.pytxcode": true,
        "**/*.markdown.in": true,
        "**/*.markdown.lua": true,
        "**/*.fdb_latexmk": true,
        "**/*.synctex.gz": true,
        "**/*.synctex(busy)": true,
        "**/__latexindent_temp.tex": true,
        "**/*.pyg": true,
        "**/*.log": true,
        "**/*.out": true,
        "**/*.bbl": true,
        "**/*.blg": true,
        "**/*.bcf": true,
        "**/*-blx.bib": true,
        "**/*.run.xml": true,
        "**/*.texmfcache": true,
        "**/svg-inkscape*": true
    },
}
```
これは[こちらの記事](https://qiita.com/gae-22/items/a954525557847dd16802)をそのまま使わせていただきました。
一時ファイルをVSCodeからは隠し、実態としては残しておく考えにも賛同したためこのまま残してあります。

## .latexmkrcの作成
これも[こちらの記事](https://qiita.com/gae-22/items/a954525557847dd16802)をそのまま使わせていただいております。
latexで作業したいディレクトリ（vscodeで開くルートディレクトリ）に.latexmkrcファイルを作成してください。
テキストエディタでそれを開き、以下のコードをコピペしましょう。
```zsh:.latexmkrc
#!/usr/bin/env perl

# http://mirrors.ctan.org/support/latexmk/latexmk.txt
$lualatex = 'lualatex --shell-escape --halt-on-error';
$lualatex_silent = 'lualatex --shell-escape --halt-on-error --interaction=batchmode';
$max_repeat = 10;
$pdf_mode = 4; # lualatexは4
```
## テストファイルのコンパイル
以下のファイルを作成してvscode上で保存してください
```latex:test.tex
\documentclass{ltjsarticle}

\begin{document}
\section{はじめに}
Hello \LaTeX !
\end{document}
```
基本的に普通のlatexと変わらないですが、lualatexではltjsarticleを使う必要があります。
原ノ味フォントがデフォルトで使えるので日本語でも困らないと思います。ヒラギノ使いたい時はまたまた[Tex Wiki](https://texwiki.texjp.org/?TeX%20Live/Mac#texlive-install-official)をみてください。

## Well Done!
記事を書いていて思いましたが、普通にmactexをアンインストールして通常texliveをインストーラ形式で入れればよかったのではないか。