私の LaTeX SetUp memo

# LaTeX SetUp

## はじめに

はじめに断っておくと，PDFを作ることだけならば **やりたいことのほとんどは， [Overleaf]( https://ja.overleaf.com/)で事足りる**と考える．
個人的なローカルのアピールポイントはないが，なにがどうなってPDFが出力されるのか，マージンやフォントなど羊皮紙から脈々とレタリング，タイプライタなどを通じて形成された書式の欧米文化や，それらを輸入して独自に発展させた日本の組版文化を触れた自負ができるかもしれない．

### TeXの良さ

TeXの良さはどこか？と問われれば各々答えは変わると思うが，個人としては思考のあと（試行錯誤のあと）を残せるところだと考える．
長い文章を書く際にはどうしても切り捨てる部分が発生するが，それらをデリートで消し去らなければならないWordは，グラフ探索のように行う思考には不向きだと考える．
とにかく行けるとこまで行って進めなくなったら戻ってまた探索する深さ優先探索にしても，出発点から同じレイヤの概念を並列させて探索する幅優先探索にしてもで思考を進めるには，清書で用いられることのない切れ端が発生する．
しかしその切れ端は異なる枝に敷衍させて応用することができるかもしれないし，数年後に辿ることになるかもしれない貴重な切れ端になると考える．

まあ，MarkdownでもいいのだがTeX環境があるに越したことはないので，TeX環境の話をする．

### TeXの種類について

[pLaTeX が本格的にやばいかもという話](https://acetaminophen.hatenablog.com/entry/2021/06/18/022108) があるので，様々あるTeX環境の中からLuaLaTeXををすすめたい．

https://qiita.com/Daiji256/items/9afbfa9f822629d3b995

## 環境構築

> この記事を One-Liner でまとめるとこんな感じ
> 
> ```bash
> sudo apt install -y texlive \
> texlive-luatex texlive-lang-japanese texlive-latex-extra \
> latexmk ;
> ```

### 方針

Winodows Subsystem for Linux(WSL)をメインで使うユーザーになっているのでこれを基本とする
WindowsネイティブでTeXを使いたいならそれでもいいが，Linuxの上に載せることで，

1. aptなどのパッケージ管理システムによる管理が行えること
2. Windows特有のPathを通す問題をなんとなく気にしないで触れること
3. 文字コードやディレクトリのPath問題などOS依存の面倒ごとを気にしないでできること
4. Windowsのフォント環境をいじると戻すのがなこと

などなどから自分はこれを割とメインで使用している．

WSL は 2 にすることで Windows 11 で GUI が使えるし，EthernetAdapter も付くのでもはや Windows はサクサクと Linux を入れ替えるための OS といっても過言ではない．
また， Windows の `\\wsl$` に WSL のファイルがあったり，WSL の `\mnt\c\` に Windows のCドライブが埋まっていたりするので，　WSL　の中身を　Windows　から覗けたり， Windows から WSL の中身を覗けるのも嬉しい．

ただし， WSL は Windows ウイルス対策を抜ける通信が可能なので，手放しに推奨できるとも限らない．
また，仮想環境であるのでBIOSの設定ではじかれる事があるので注意されたし．

### 1. WSLのインストール

WindowsのPowerShellでWSLをインストールする。

```shell
> wsl --install -d Ubuntu
```

この時、MicrosoftStoreからインストールさせようとするサイトもあるが,Python然り,MicrosoftStroreからインストールしていい思い出がないのでコマンドラインでインストールすることを勧める.
`Ubuntu`には好きなディストリビューションを入れて楽しめるがこだわりがなければ,Ubuntuでいいのではないだろうか．他者への[思いやり](https://ubuntu.com/about)があるはずなので．

### 2. `TeXLive` のインストール

```bash
sudo apt -y install texlive #ノーマル版
# $ sudo apt -y install texlive-full #完全体
```

時折，学会のファイルをコンパイルするとスタイルファイルがないと言われることがある．
完全体を入れることで不足分が充足され解決することがあるが，容量をとるので，ノーマル版で十分だと思う．
TeX Live のインストーラを使ってインストールしたのであれば[ここ](https://texwiki.texjp.org/?Linux)を参照するが，WSLの上で行う理由がパッケージ管理システムを使用したいためであるため、個人的にはインストーラの使用はしない．

### 3. `TeXLive` の追加インストール

そのほか環境を整えるためにいくつか追加でパッケージをインストールする．
これらは日本語やLuaLaTeXに対応させるための諸々になる．

```bash
sudo apt -y install \
texlive-luatex \
texlive-lang-japanese \
texlive-latex-extra ;
```

* `texlive-luatex`
  * これがないと LuaLaTeX が動かない
* `texlive-lang-japanese`
  * これがないと日本語環境が動かない
* `texlive-latex-extra`
  * これがないと日本語関連の追加分の style が無いと言われる

### 4. `latexmk` のインストール

```bash
sudo apt -y install latexmk
```

`BiBTeX` や `\cite` のパッケージは，コンパイルを複数回行うことで，リンカを作成する．
このコマンドをまとめる `Makefile` のようなものが `latexmk` である．
コンパイルディレクトリにある `.latexmkrc`(`Perl`) を読み込んで動作する．
色々便利なのでいれておいて損はない．

#### `.latexmk`ファイルの詳細

以下に筆者の環境で動作させているものを載せる．
bibTeX の動作環境や bibTeX の Style ファイルである .bst ファイルなども記載しているため，該当する箇所はコメントアウトしてもらえれば動作するはずだ．

https://qiita.com/QiitaTakenoko/items/3494a44ceeaf9a07b71f

### 5. （オプション1）`Pygments` のインストール

このプログラムは，PDF にコードを貼り付けたりしたときに，行番号やシンタックスハイライトを行う．
`Pygments` はその名の通り，`Python` で動作するため，$\LaTeX$ コンパイルの際に，`-shell-escape` オプションを付けることで，外部コマンドの実行を許可しなければレンダリング出来ないが，上述した `.latexmkrc` ファイルに既に加筆してあるため，備忘録として記載する．

インストールは以下のように，`pip(Packeage Installer for Python)` を使用する[^python]．

[^python]: [Pythonのセットアップ](./PythonSetUp_asdf.md) は済んでいるものとする

```bash
$ pip install Pygments
```

### 6. （オプション2）PDF ビューアーについて

`Acroreader(Adobe Acrobat Reader)` はアンインストールする.

このソフトウェアは，PDFのプレビュー中にそのファイルの書き込みを禁止する．
つまり， $\LaTeX$ による更新を行えない状態になる．

以下は， [`$latexmk` - CTAN](https://www.ctan.org/pkg/latexmk/?lang=en)[^ctan] のマニュアルが，ここでもAcroreaderは更新されないので注意するように記載がある．

```Markdown
WARNING:  Problem under MS-Windows: if acroread is used as the pdf previewer, and it is actually viewing a pdf file, the pdf file cannot be updated.  Thus makes acroread a bad choice of previewer if you use latexmk's previous-continuous mode (option -pvc) under MS-windows.  This problem does not occur if, for example, SumatraPDF or gsview is used to view pdf files.

> 警告：MS-Windowsでの問題：acroreadがpdfプレビューアとして使用され、実際にpdfファイルを表示している場合、pdfファイルを更新することはできません。 このため、MS-Windowsでlatexmkのprevious-continuous mode (option -pvc)を使用する場合、acroreadはプレビューアとして不適切な選択肢になります。 この問題は、例えば、SumatraPDFやgsviewを使用してpdfファイルを表示する場合には発生しません。
```

Windowsであれば，[SumatraPDF](https://www.sumatrapdfreader.org/free-pdf-reader) などをオススメする．

尚，前述の `.latexmkrc` ファイルで `$pdf_previewer = ` で Path などを指定しているため，適宜調整のこと．

[^ctan]: Comprehensive TeX Archive Network