LaTeX環境構築（VSCode + LuaLaTeX）

# はじめに
この記事では文章を書き始めるまでの障壁を少なくすることに重点を置いて環境構築していくので、もっと詳しいことを知りたい場合はTeX Wiki https://texwiki.texjp.org/ 等を参照してください。

# TeX Liveのインストール
こちらのサイトにアクセスし、インストールの項目にあるTeX Live/WindowsもしくはTeX Live/Macのリンクを踏んで手順通りインストールして下さい。フルインストール時の容量は8GB程度だったと思います。インストールする前にストレージの空き容量を確認しておきましょう。
https://texwiki.texjp.org/?TeX%20Live
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/6323b58b-0db5-4d08-dd14-a76e12fffeef.png)
ここで重要なのはインストーラーの｢高度な設定｣を無闇にいじらないことです。LaTeXにはパッケージという概念が存在し、事前にインストールしたパッケージを使用することで数式や画像の挿入などを行うことができます。このインストーラーでは｢高度な設定｣からインストールするパッケージを選ぶことができるのですが、初心者が必要なパッケージだけを選んでインストールすることは不可能なのでフルインストールすることをおすすめします。

ネットワークの環境やPCのスペックにもよりますが、多くの場合インストールには1時間以上かかります。気長に待ちましょう。途中でインストーラーが止まったように見えることもあると思いますが、エラーを吐かない限りは続いているものだと思って辛抱強く待って下さい。（数時間固まったらやり直したほうが良いかもしれません）

***インストールが終わったらPCを一度再起動して下さい。***
再起動しないとPATHが通っていないというエラーが出る場合があります。

# VSCodeのインストール
Googleで｢VSCode インストール｣とか打って適当にインストールしてください。日本語化は必須ではないですが、今後の人生でメインのエディタとして使っていく可能性が高いのでそのへんは自分の使いやすいように設定することをおすすめします。

# VSCodeに拡張機能を入れる
VSCodeを開いたら左端にこのようなアイコンが並んでいると思います。（この画像と一致してなくても気にしないで下さい）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/faf055d4-2b91-9a4b-60cd-ec2d1069fd92.png)
四角形が4つ並んでいるアイコンをクリックして下さい。
するとこのような画面が出てくると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/79b5a6ab-69fa-0cb0-a32d-e08b08c784d0.png)
おそらく皆さんはINSTALLEDが空だと思うので、検索窓に｢LaTeX Workshop｣と入力して拡張機能をインストールして下さい。
正常にインストールできたらこのような表示になると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/46099e96-e6e4-25c2-578a-b7178e76d59b.png)
拡張機能のインストールは以上です。大変なのはここからです。

# 拡張機能の設定
この記事ではLuaLaTeXを用いてコンパイルすることを前提にしています。その理由はフォントの指定やコンパイルの設定等が容易であるからです。そもそもLaTeXのエンジンとは何なのかというのは気になった人だけ各自で調べて下さい。

まずVSCode上で`Ctrl+Shift+P`を押して下さい。（Macの場合は`Cmd+Shift+P`）
すると画面上部にこのような窓が出てくると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/ce399d76-7b63-640c-1cb8-4a411b7246f6.png)
ここに｢Settings.json｣と入力して一番上の項目をクリックして下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/755760af-4da6-173c-e5ac-cf5d9d41c6a3.png)
これはVSCodeの設定をJSON形式で保存しているファイルです。今は難しいことを考えたくないのでとりあえず中にこれをコピー&ペーストして下さい。（既にsettings.jsonに色々書き込んでいる人はカンマを打って中身だけを書き足して下さい。）
```json:settings.json
{
    "latex-workshop.latex.recipes": [
        {
          "name": "lualatex",
          "tools": [
            "lualatex",
          ]
        }
      ],
      "latex-workshop.latex.tools": [
        {
          "name": "lualatex",
          "command": "lualatex",
          "args": [
            "--cmdx",
            "-file-line-error",
            "-synctex=1",
            "-interaction=nonstopmode",
            "-halt-on-error",
            "-output-directory=%OUTDIR%",
            "%DOC%"
          ],
          "env": {}
        },
      ],
      "latex-workshop.latex.outDir": "output",
      "latex-workshop.latex.autoBuild.run": "onSave",
}
```
一応中身について説明をしておきますが、難しいことを考えたくない人は読み飛ばしてもらって結構です。あとで自分で設定を変えたときにトラブル等が起こったらこの部分を読むと良いと思います。

まず一番上のrecipesという部分ではtoolsの中から実行するものを選んで指定しています。この場合はtoolsの中に`"lualatex"`しか無いのでそれを選んで実行しています。

toolsでは具体的にコマンドを指定しています。`"name"`は自分でつける名前です。`"command"`で`"lualatex"`としており、これによってエンジンをlualatexに指定してコンパイルします。`"args"`の中ではコマンドを実行する際に必要なオプションを付けています。一つづつ説明すると、
+ `--cmdx` : 日本語ファイル名を使えるようにする。
+ `-file-line-error` : エラーを起こしたらその行に飛ぶようにする。
+ `-synctex=1` : synctexを有効にする。これによってpdf viewer上でCtrl+クリックをするとTeXのソースファイルで該当する箇所に飛ぶことができるようになる。長大な文書を作るときは重宝する。
+ `-interaction=nonstopmode` : コンパイル中にエラーが起きても続行する。
+ `-halt-on-error` : コンパイル中にエラーが発生したら中止する。
+ `-output-directory=%OUTDIR%` : 下のoutDirで指定したディレクトリにpdf等のファイルを生成する。
+ `%DOC%` : texファイルのパス。

という感じです。

outDirではファイルを生成する場所を指定します。今回の場合は作業フォルダ内にoutputという名前のフォルダを作ってその中に生成するように設定していますが、これは好きに変えても大丈夫です。これを消したら直接作業フォルダにファイルが生成されるようになります。

autoBuild.runでは自動でビルドするタイミングを指定しています。VSCodeの設定で自動保存をオンにしている場合は編集中に勝手にビルドされてエラーを吐いたりするのでそれが鬱陶しかったら自動保存をオフにするか、`"onSave"`の部分を`"never"`に変えて自動ビルドをオフにすることで解決します。

# スニペットの登録
この記事では文章を書き始めるまでの障壁をなるべく減らすことを目的としています。そのために最も重要なのがこのスニペットの登録です。スニペットを登録することで煩わしいプリアンブルをいちいち毎回書かなくてもtexで文書作成ができるようになります。

まずはVSCodeで左端に並んでいるアイコンの一番下の歯車を押して下さい。
するとこのような画面が出てくると思うのでUser Snippetsをクリックして下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/2fe1ea85-ba08-7aa1-6308-46686b05dc3d.png)
すると画面上部にこんなものが出てくると思うので、｢New Global Snippets file｣をクリックして下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/916d6738-2208-75d7-524d-856209e9e13e.png)
そしたらこんな窓が出てくるのでここにスニペットファイルの名前を打って新しいスニペットファイルを作りましょう。ここでは名前を｢tex｣とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/cd089648-b830-9a78-8472-6574d160f5bf.png)
スニペットファイルを作ったら何か英語でいっぱい書いてあるものが出てくると思いますが、全部消してこれをコピー&ペーストして保存して下さい。
```json:tex.code-snippets
{
    "tmp": {
		"prefix": "tmp",
		"body": [
			"\\documentclass[11pt,a4paper]{ltjsarticle}",
			"%",
			"\\usepackage{amsmath,amssymb}",
			"\\usepackage{bm}",
			"\\usepackage{physics}",
			"\\usepackage{graphicx}",
			"\\usepackage{ascmac}",
			"\\usepackage{cases}",
			"\\usepackage{here}",
			"\\usepackage{upgreek}",
			"%",
			"%",
			"\\title{}",
			"\\author{}",
			"\\date{\\today}",
			"\\begin{document}",
			"\\maketitle",
			"%",
			"%",
			"\\section{}",

			"%",
			"%",
			"\\end{document}",
		]
	},
	"figure": {
		"prefix": "figure",
		"body": [
			"\\begin{figure}[H]",
			"	\\centering",
			"	\\includegraphics[width=1.0\\columnwidth]{}",
			"	\\caption{}",
			"\\end{figure}",
		]
	},
}
```
figureのあたりでなにやらエラーが出ると思いますが、これは問題ないので無視して下さい。

以上で準備は完了しました。早速texファイルを作って文書を作成してみましょう。

# LaTeXを使ってみる
まずはデスクトップに新しいフォルダーを作ってそれをVSCodeで開きましょう。
開けたらエクスプローラーのフォルダー名にマウスを合わせて｢New File｣をクリックして｢a.tex｣という名前のファイルを作って下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/101e8af5-4d5e-42b4-1e12-eeef0f58be54.png)
作成出来たらエディタに｢tmp｣と打ち込んでみて下さい。するとこのような候補が出てくると思います。ここでtabキーまたはenterキーを押すことで先程登録したスニペットを呼び出す事ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/a46034f0-ec4d-5e5f-7cad-da14f6e4cca0.png)
スニペットを呼び出すことに成功するとこのような画面になります。ここまで来たらあとは簡単でそれぞれ`\title`、`\author`などを埋めてtexで文章を書き始めることができます。自動ビルドを設定している場合はファイルを保存することでビルドされます。設定していない場合は右上の緑色の三角形を押すことでビルドされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/36d7bddc-57f5-8c04-e57b-34cd0e53f3cf.png)
試しにビルドしてみましょう。ビルドに成功したら左のエクスプローラーにこのようなファイルが出来上がっていると思います。`.aux`ファイルは中間ファイルでもう必要ないものです。`.log`ファイルはログが書き込まれるファイルで、エラー発生時に見ることが多いです。（初心者は見てもチンプンカンプンだと思いますがエラーの原因が書かれているので頑張って読んで下さい。）`.pdf`ファイルは我々が求めているものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/4588874b-ec01-edbb-aeb8-7411ddb96ee7.png)
これで一旦は終わりになりますが、実験レポートを書く際には図を挿入することがよくあると思います。そのためのスニペットも先程登録しているので最後にこれを呼び出してみましょう。

エディタ上で｢figure｣と打って下さい。するとこのような候補が出てくるのでtabキーで呼び出しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/eaee2456-0b10-aa17-202c-8e172fb7b480.png)
呼び出せたらこんな感じになると思います。
`\includegraphics`の行の末尾にある波括弧内に作業フォルダの中に置いた画像ファイルの名前を入力することで画像を挿入する事ができます。ここで`width=1.0`となっている部分で横幅の占有率を指定しています。多くの場合は大きすぎると思うので好みの大きさに変えて下さい。
`\caption`の波括弧に図のキャプションを書けば図にキャプションを付けることもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767777/021ed02d-15ac-281b-23c8-8f8c0dd8d36c.png)
これで全ての作業は終了になります。お疲れ様でした。

# おわりに
TeXで文書作成をするのに日本語を書き始めるまでがめんどくさいという状況が発生するとせっかく便利なツールなのに使わなくなってしまうことがあります。従ってこの記事では文章を書き始めるまでの障壁がなるべくなくなることに重点を置いて環境構築してきました。

この記事に沿って環境構築した皆さんは楽にTeXを書き始められると思いますので、是非レポート以外にもノートをまとめたり日記をつけたりするのにTeXを使ってみてください。

# 追記予定
~~bibtexを使った参考文献の管理について追記予定。~~
2024/4/11 記事を追加

https://qiita.com/h_d/items/971bb7367a984eb01f19