【PC初心者向け】VSCodeでLaTeXを使えるようにしてQOLを上げよう！！


⚠記事の内容は学生個人の見解であり、所属する学科組織を代表するものではありません。

# はじめに
Advent Calendar４日目です！今日はVSCodeで$\displaystyle \LaTeX$を使えるようにする方法を書いていこうと思います.

# そもそも LaTeX とは？
$\displaystyle \LaTeX$は文章やレポート, 論文などをきれいに書くためのコンピュータ用の道具（文書作成システム）です. 特に, 数式や図表をたくさん使う文章を書くのに向いています.

恐らく誰しも Word を使ったことはあるかと思いますが, $\displaystyle \LaTeX$はWordと違って, 文章の内容と見た目をプログラムのように指示して, コンピュータに仕上げてもらう仕組みです. 例えば,
```diff_te_x
\begin{align}
\left(-\frac{\hbar^2}{2m}\frac{d^2}{dx^2} + V(x)\right)\psi(x) = E\psi(x)
\end{align}
```
とコードを打つと
$$ \left(-\frac{\hbar^2}{2m}\frac{d^2}{dx^2} + V(x)\right)\psi(x) = E\psi(x) \tag{1}$$
のように美しい数式が出力されます. Wordでイライラしながら数式を書く日々とおさらばできますね.

ちなみに, LaTeX はインストールしなくてもウェブ上で書くことができるサービス ([Overleaf](https://www.overleaf.com) や [Cloud LaTeX](https://cloudlatex.io/ja)) が無料で提供されています. しかしクラウド上だと WiFi のないところでは書けないですし, サーバーがダウンした場合に書けなくなってしまうという危険性があります (実際, 昨日 2024/12/03 に Overleaf のサーバーがダウンしたようです). なんならデータが吹き飛ぶ可能性だってあります. なので, ローカル (自分のPC上) で書けるように, 環境構築をやる価値は高いです.

# VSCode とは？
VScode は Visual Studio Code の略です. 僕自身も VSCode を深く理解しているというわけではないのですが, 簡単に言うと VSCode はめちゃくちゃ高機能なメモ帳だと思ってもらって大丈夫です. この高機能なメモ帳に LaTeX のコードを書いていきます. 特に,  VSCode の拡張機能である **LaTeX Workshop** を用いることでコーディングの効率が向上し,  QOL が爆上がりします.

# 必要なソフトのインストール
簡単な説明も済んだところで, 早速インストール作業に入りましょう. すでに TeX Live と VScode のインストールが済んでいる人は飛ばしても大丈夫です. TeX がインストールされてるかどうかわからない人は, コマンドプロンプト (Mac はターミナル) 上で
```
latex
```
と入力して, LaTeX が起動するかどうか確かめてください. ターミナル上で起動した LaTeX を終了するには q と入力すればよいです.
## ・LaTeX のインストール
TeX Live をインストールします. 詳細が知りたい方 [TeX Wiki](https://texwiki.texjp.org/?TeX%20Live#w628bee6) を参照してください.

- **Windows**
[こちら](https://www.tug.org/texlive/acquire-netinstall.html)の install-tl-windows.exe をクリックするとインストーラーのダウンロードが始まります. インストーラーを起動すると, 何かしら出てくると思いますが, 基本的に何も変えずに進めて大丈夫です (気になる人は TeX Wiki を見ながら進めてください).
- **Mac**
Macでは, 公式サイトから Mac TeX をインストールするのが楽です. ただし, パソコン上級者にはあまりおススメできるものではないです (どういった問題があるかは[こちら](https://blog.wtsnjp.com/2020/07/07/about-mactex/)を参照).　**homebrewを既にインストールしている人**は, ターミナルで
```diff
brew install mactex --cask
```
とすれば安全に MacTeX をダウンロードできます. GUIが不要なら "mactex" の部分を "mactex-no-gui" とすれば良いです (GUIの中身は[こちら](https://texwiki.texjp.org/?MacTeX#a9bfcdb5)を参照. 個人的に LaTeXiTは便利で好きです). これで何かしらエラーがでたらhomebrewがインストールされていないので,  homebrew をインストールするか, 以下の楽な方法で MacTeX をインストールしましょう.

[こちら](https://tug.org/mactex/mactex-download.html)から MacTex.pkg をクリックしてダウンロードします. ダウンロードが完了すると, 何かしら出てくると思いますが, 基本的に何も変えずに進めて大丈夫です (気になる人は TeX Wiki を見ながら進めてください).

## ・VSCode のインストール
- **Window**
[公式サイト](https://code.visualstudio.com/download)からインストールします.
- **Mac**
[公式サイト](https://code.visualstudio.com/download)からインストールするか, homebrewをインストールしている人はターミナルで
```
brew install visual-studio-code --cask
```
と入力することでインストールできます.

TeX のインストールは時間がかかるので, その間に次の工程に進みましょう.

# .latexmkrc ファイルの作成
個人的にここが PC 初心者にとっては一番難しいところだと思います. 他の環境構築の記事を見ても,  PC 初心者の誰しもが分かるような書き方がなされているものはほとんどないです. ここでは, なるべく難しい言葉は使わずに, 書いてあることに忠実に従えば大丈夫なように書きます.

この作業の意味するところは[こちら](https://qiita.com/rainbartown/items/d7718f12d71e688f3573)を参考にしてください.

- **Windows**
コマンドプロンプトを開きます. 開き方は, 画面下のタスクバーから検索することで開けます. すると, 黒い画面が出てくるはずなので, そこに
```
type nul > .latexmkrc
```
と入力しエンターを押します. すると, 現在いるフォルダに .latexmkrc ファイルが作成されます. 本当にできているか気になる人は, 
```
dir
```
と入力すると, 現在いるフォルダの中身が表示されるので, そこに確かに .latexmkrc ファイルがあるか確認してみてください. 次に
```
".latexmkrc"
```
と入力すると,  .latexmkrc ファイルを開くことができます. そこに, 以下のコードを貼り付けて保存 (ctrl + S) してください.
```
# LaTeX
$latex = 'platex -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"
```
こちらのコードは[このサイト](https://qiita.com/rainbartown/items/d7718f12d71e688f3573)から引用しました.

- **Mac**
Mac も Windows とほとんど同じようにできます. まず, ターミナルを開きます. そこに
```
touch .latexmkrc
```
と入力しエンターを押します. すると, 現在いるフォルダに .latexmkrc ファイルが作成されます. 本当にできているか気になる人は, 
```
ls -a
```
と入力すると, 現在いるフォルダの中身が表示されるので, そこに確かに .latexmkrc ファイルがあるか確認してみてください. 次に
```
open .latexmkrc
```
と入力すると,  .latexmkrc ファイルを開くことができます. そこに, 上の長いコードを貼り付けて保存 (command + S) してください.

ここまでの作業が終わったら, 今開いた画面は全て閉じて大丈夫です.

# VSCode の設定
VSCode のインストールが完了したら, VSCodeを開きます. 以下では Windows での画面を載せながら説明しますが, この作業は Windows でも Mac でも同様なので気にしないで大丈夫です.

まず, 拡張機能 (左のブロックのマーク) から LaTeX Workshop をインストールします.

![スクリーンショット 2024-12-03 041807.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620851/b71b5325-6574-6ea8-17c1-28838eb6e13e.png)

次に, 画面左下の歯車マークから設定 (settings) を開き, 右上のファイルのようなマークをクリックします.![スクリーンショット 2024-12-03 042255.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620851/66423d93-9716-4ee0-960b-1df56f39af9b.png)

そうすると,  settings.json というファイルが開かれるので, そこに以下のコードを貼り付けて保存してください.
```diff_json:settings.json
{
    // ---------- Language ----------

    "[tex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[latex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[bibtex]": {
        // インデント幅を2にする
        "editor.tabSize": 2
    },


    // ---------- LaTeX Workshop ----------

    // 使用パッケージのコマンドや環境の補完を有効にする
    "latex-workshop.intellisense.package.enabled": true,

    // 生成ファイルを削除するときに対象とするファイル
    // デフォルト値に "*.synctex.gz" を追加
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        "*.out",
        "*.toc",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.ist",
        "*.fls",
        "*.log",
        "*.fdb_latexmk",
        "*.snm",
        "*.nav",
        "*.dvi",
        "*.synctex.gz"
    ],

    // 生成ファイルを "out" ディレクトリに吐き出す
    "latex-workshop.latex.outDir": "out",

    // ビルドのレシピ
    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk",
            "tools": [
                "latexmk"
            ]
        },
    ],

    // ビルドのレシピに使われるパーツ
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-file-line-error",
                "-interaction=nonstopmode",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
        },
    ],
}
```
こちらのコードは[このサイト](https://qiita.com/rainbartown/items/d7718f12d71e688f3573)のものを少し変更して載せています.

これですべての準備が整いました.

# 使ってみよう
TeXのダウンロードが終わったら. 一旦VSCodeを再起動してください. そうしないと準備が整っているのにエラーが出てしまうことがあります. 

VSCode 画面上部の "ファイル"をクリックし, "フォルダーを開く"を選択します. そして, 適当なフォルダー (LaTeX 用に新しくフォルダを作ってもよい) を開きます. そして, 下図に示している新しいファイルを作成するボタンをクリックし, "〇〇.tex" というファイルを作りましょう. ここでは test.tex を作ってみました.

![スクリーンショット 2024-12-03 043722.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620851/1768d875-693a-8475-86db-ce7dd1158e24.png)

そして, 作成した tex ファイルに以下のコードを貼り付けて保存します.
```tex:test.tex
\documentclass{jsarticle}

\usepackage{amsmath}

\begin{document}
Hello, \LaTeX!!

これはSchr\"{o}dinger方程式です.
\begin{align}
  \left(-\frac{\hbar^2}{2m}\frac{d^2}{dx^2} + V(x)\right)\psi(x) = E\psi(x)
\end{align}

\end{document}
```
保存したら, ctrl + alt + B (Mac なら command + option + B) を押すことで pdf のビルドが開始されます. この際, フォルダの中に out というフォルダができ, この中に pdf ができます. 他にもいろいろ謎なファイルができていると思いますが, 今のところは気にしなくても大丈夫です. 
さて, 左下にペケマークがついたら  ctrl + alt + V (Mac なら command + option + V) を押すことで pdf を表示させることができます. 一度コンパイルできたら, 後は保存するたびに勝手にコンパイルしてくれます.

# 参考にしたサイト
- [VSCode で最高の LaTeX 環境を作る](https://qiita.com/rainbartown/items/d7718f12d71e688f3573)
本記事は主にこの記事を参考にしました. 自分が初めて環境構築したときもこのサイトを参考にし, 苦戦しながらもなんとか構築に成功した思い出があります. 記事の後半には LaTeX Workshop の便利機能の紹介も載っています. 特にユーザースニペットはとても便利なので設定しておくと良いです.

- [TeX Wiki](https://texwiki.texjp.org)
TeXに関することが大体何でも載っているサイトです. 少し分かりにくさはありますが, 度々重宝するサイトです.

# LaTeX お役立ちサイト
LaTeXを使っていくうえで役に立つサイトや, LaTeXの作法がまとまっているサイトを紹介します. 
- [LaTeX 入門](http://www-geoph.eps.s.u-tokyo.ac.jp/~hamaguchi2019/latex2020_20200507.pdf)
$\displaystyle \LaTeX$ の基本事項をわかりやすくまとめてある pdf です. インストールしたはいいものの, 書き方が全く分からないという人はまずこれを読んで書き方の基礎を学びましょう.

- [ChatGPT](https://chatgpt.com)
検索しても雑多な記事が溢れていて, 結局よくわからないまま時間が溶けるということが多々あります. そんなときに ChatGPT に聞けば大体のことはなんとかなります. いい時代ですね.

# 上級者向けサイト
- [アカデミックヤクザにキレられないためのLaTeX論文執筆メソッド](https://qiita.com/suigin/items/10960e516f2d44f6b6de)
LaTeX で資料を作るうえで意識すべき作法がまとまった記事です. 「神は細部に宿る」とも言いますし, 細かい所に気を遣って綺麗な文書を作成しましょう. 

- [イショティハドゥスにキレられないための LaTeX 論文執筆メソッド]()
上の記事と合わせてこちらも読んでみると良いです. やや口調が強いきらいがありますが, 書いてあることは正論ですし, 役立ちます.

- [LaTeX Workshop を使いこなす](https://qiita.com/Yarakashi_Kikohshi/items/a9357dd469320ffb65a0)
LaTeX Workshop の詳細な設定内容について解説された記事です. 本記事で載せた settings.json は必要最低限のものなので, このサイト等を参考にしながら自分好みのカスタマイズにしてみましょう.