[初心者]LaTeXのインストールから使い方までこれ一本！

- 僕はWindowsとLinux（Debian）しか持っていないので、その他（RedHat系Linuxとか、MacOS）については書いていません。（**使い方に関しては変わりません。**）  
- PC詳しくわからない方でもわかるように書くつもりです。わかりにくかったりしたらコメントとかTwitterで言ってください。直します。  
あと、僕もまだ初心者なので、間違いもあるかもしれません。そんなときも言っていただければ直します。  

# はじめに（華麗に読み飛ばしていただいて可）  
僕は今まで、文書とかほとんど作成してきませんでした。  
高校でも、レポート書けって言われるのは学期間休業くらい。  
そんな中LinuxとかJavaScriptとかPythonとかいじってると思うんです。  

**Microsoft WordとかGoogleドキュメントくっそ使いづれえ！！！**  

そもそもWYSIWIGが嫌いな僕からすると、コピペしたときにデフォルトで書式設定までついてくるのが世界一意味わからない。その上、なんか特殊な機能使うたびにリボンから機能を探さなきゃいけないのはだるい。  

そんなこんなで、$\mathrm{\LaTeX}$を使ってみようかな、と思ったのですが、  

**ネットの情報が古い上に色んなとこに散乱しててわかりづれえ！！！**   

$\mathrm{\TeX}$とか$\mathrm{\LaTeX}$自体が古いので、情報が古いのはまあ分かるんです。だけど、基本的な使い方まで散乱してるのはどうしたものかと。  

マリー・アントワネットは言いました。「パンがなければケーキを食べればいいじゃない。」  
僕は言いました。「記事がなければ自分で書けばいいじゃない。」(なにこのくだり  

てなことでれっつごー。

# 目次  
一応スムーズに読み進められるよう、ところどころには次に読むべきところのリンクを張ってありますが、なんせ記事量が膨大なので、目次をフル活用してください。  
- [はじめに](#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB%E8%8F%AF%E9%BA%97%E3%81%AB%E8%AA%AD%E3%81%BF%E9%A3%9B%E3%81%B0%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%84%E3%81%A6%E5%8F%AF)
- [目次](#%E7%9B%AE%E6%AC%A1)
- [LaTeXとは](#latex%E3%81%A8%E3%81%AF)
- [インストール](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
    - [Windows](#windows)
        - [インストーラのダウンロード](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89)
        - [インストーラの実行](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%81%AE%E5%AE%9F%E8%A1%8C)
        - [その他必要なパッケージのインストール](#%E3%81%9D%E3%81%AE%E4%BB%96%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
        - [拡張子を表示させる](#%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B)
        - [PDFビューワのインストール・設定](#pdf%E3%83%93%E3%83%A5%E3%83%BC%E3%83%AF%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E8%A8%AD%E5%AE%9A)
    - [LinuxやUnix](#linux%E3%82%84unix)
        - [インストーラのダウンロード](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89-1)
        - [インストーラの実行](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%81%AE%E5%AE%9F%E8%A1%8C-1)
        - [実行ファイルにPATHを通す](#%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%ABpath%E3%82%92%E9%80%9A%E3%81%99)
        - [必要パッケージのインストール](#%E5%BF%85%E8%A6%81%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
        - [PDFビューワのインストール](#pdf%E3%83%93%E3%83%A5%E3%83%BC%E3%83%AF%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
- [latexmkの設定](#latexmk%E3%81%AE%E8%A8%AD%E5%AE%9A)
- [試しに動かしてみる](#%E8%A9%A6%E3%81%97%E3%81%AB%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B)
- [エディタの用意](#%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%81%AE%E7%94%A8%E6%84%8F)
    - [VSCodeのインストール](#vscode%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
        - [Windows](#windows-1)
        - [LinuxやUnix](#linux%E3%82%84unix-1)
    - [セットアップ](#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)
        - [拡張機能の導入](#%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%81%AE%E5%B0%8E%E5%85%A5)
            - [日本語化拡張](#%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96%E6%8B%A1%E5%BC%B5)
            - [LaTeX Workshop](#latex-workshop)
            - [テキスト校正くん](#%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%A0%A1%E6%AD%A3%E3%81%8F%E3%82%93)
        - [スニペット](#%E3%82%B9%E3%83%8B%E3%83%9A%E3%83%83%E3%83%88)
    - [VSCodeでの編集方法](#vscode%E3%81%A7%E3%81%AE%E7%B7%A8%E9%9B%86%E6%96%B9%E6%B3%95)
- [使い方](#%E4%BD%BF%E3%81%84%E6%96%B9)
    - [用語](#%E7%94%A8%E8%AA%9E)
        - [コマンド](#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89)
        - [引数](#%E5%BC%95%E6%95%B0)
        - [オプション](#%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3)
        - [パッケージ](#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8)
        - [環境](#%E7%92%B0%E5%A2%83)
        - [プリアンブル](#%E3%83%97%E3%83%AA%E3%82%A2%E3%83%B3%E3%83%96%E3%83%AB)
    - [コマンド解説](#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E8%A7%A3%E8%AA%AC)
        - [\documentclass{クラス}](#documentclass%E3%82%AF%E3%83%A9%E3%82%B9)
        - [\usepackage{読み込むパッケージ}](#usepackage%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8)
            - [luatexja-fontspec](#luatexja-fontspec)
            - [amsmath,amssymb](#amsmathamssymb)
            - [unicode-math](#unicode-math)
        - [\set~font{フォント名}](#setfont%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E5%90%8D)
        - [\begin{環境名} \end{環境名}](#begin%E7%92%B0%E5%A2%83%E5%90%8D-end%E7%92%B0%E5%A2%83%E5%90%8D)
        - [\title{タイトル} \author{名前} \date{日付}](#title%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-author%E5%90%8D%E5%89%8D-date%E6%97%A5%E4%BB%98)
        - [\maketitle](#maketitle)
        - [\part{} \section{} \subsection{} \subsubsection{} \paragraph{} \subparagraph{}](#part-section-subsection-subsubsection-paragraph-subparagraph)
        - [\rmfamily \sffamily \ttfamily \mcfamily \gtfamily](#rmfamily-sffamily-ttfamily-mcfamily-gtfamily)
        - [\fontspec{フォント名} \jfontspec{フォント名}](#fontspec%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E5%90%8D-jfontspec%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E5%90%8D)
        - [\bfseries \mdseries](#bfseries-mdseries)
        - [\\\\（バックスラッシュ2つ）](#%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A52%E3%81%A4)
        - [特殊文字](#%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97)
        - [\ （バックスラッシュ+スペース）](#-%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9)
        - [$~$（ドル記号で囲む）](#%E3%83%89%E3%83%AB%E8%A8%98%E5%8F%B7%E3%81%A7%E5%9B%B2%E3%82%80)
    - [数式の書き方](#%E6%95%B0%E5%BC%8F%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9)
        - [数式を書く環境](#%E6%95%B0%E5%BC%8F%E3%82%92%E6%9B%B8%E3%81%8F%E7%92%B0%E5%A2%83)
            - [インライン数式](#%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E6%95%B0%E5%BC%8F)
            - [equation環境](#equation%E7%92%B0%E5%A2%83)
            - [eqnarray環境](#eqnarray%E7%92%B0%E5%A2%83)
            - [align環境](#align%E7%92%B0%E5%A2%83)
            - [alignat環境](#alignat%E7%92%B0%E5%A2%83)
            - [flalign環境](#flalign%E7%92%B0%E5%A2%83)
            - [gather環境](#gather%E7%92%B0%E5%A2%83)
            - [multline環境](#multline%E7%92%B0%E5%A2%83)
        - [数式に使うコマンド](#%E6%95%B0%E5%BC%8F%E3%81%AB%E4%BD%BF%E3%81%86%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89)
            - [{}（波括弧だけ）](#%E6%B3%A2%E6%8B%AC%E5%BC%A7%E3%81%A0%E3%81%91)
            - [上付き文字・下付き文字](#%E4%B8%8A%E4%BB%98%E3%81%8D%E6%96%87%E5%AD%97%E4%B8%8B%E4%BB%98%E3%81%8D%E6%96%87%E5%AD%97)
            - [記号](#%E8%A8%98%E5%8F%B7)
            - [ギリシャ文字](#%E3%82%AE%E3%83%AA%E3%82%B7%E3%83%A3%E6%96%87%E5%AD%97)
            - [級数・和のシグマ](#%E7%B4%9A%E6%95%B0%E5%92%8C%E3%81%AE%E3%82%B7%E3%82%B0%E3%83%9E)
            - [積分記号のインテグラル](#%E7%A9%8D%E5%88%86%E8%A8%98%E5%8F%B7%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%A9%E3%83%AB)
            - [平方根のルート](#%E5%B9%B3%E6%96%B9%E6%A0%B9%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%88)
            - [単位などでローマン体を使う](#%E5%8D%98%E4%BD%8D%E3%81%AA%E3%81%A9%E3%81%A7%E3%83%AD%E3%83%BC%E3%83%9E%E3%83%B3%E4%BD%93%E3%82%92%E4%BD%BF%E3%81%86)
            - [分数](#%E5%88%86%E6%95%B0)
            - [対数のlog・ln](#%E5%AF%BE%E6%95%B0%E3%81%AElogln)
            - [括弧・絶対値](#%E6%8B%AC%E5%BC%A7%E7%B5%B6%E5%AF%BE%E5%80%A4)
                - [括弧の大きさの自動調整](#%E6%8B%AC%E5%BC%A7%E3%81%AE%E5%A4%A7%E3%81%8D%E3%81%95%E3%81%AE%E8%87%AA%E5%8B%95%E8%AA%BF%E6%95%B4)
            - [数式番号の手動指定](#%E6%95%B0%E5%BC%8F%E7%95%AA%E5%8F%B7%E3%81%AE%E6%89%8B%E5%8B%95%E6%8C%87%E5%AE%9A)
- [おわり](#%E3%81%8A%E3%82%8F%E3%82%8A)  

# LaTeXとは  
1984年にできた（らしい）論文やレポート、書籍などの組版をテキストベースで行うソフトウェアです。  
（テキストベースとは、ほぼすべての設定をテキストファイルで行うこと、みたいな感じ。）  
Microsoft Wordなどに比べて、とっつきづらい代わりに結構自由度の高い組版ができます。  
学術機関ではこれがよく使われるらしいです。  

もともと$\TeX$という数式組版ソフトウェアを拡張？したものなので、数式の組版に強いらしいです。  

読み方は、「ラテック」とか「ラテフ」って言うらしいですが、「ラテック」っていう人みたことない。  

書き方は、正式には$\mathrm{\mathrm{\LaTeX}}$って書くんですが、一部の特殊な環境じゃないと書けないので、LaTeXって書くことのが多い。   

$\mathrm{\LaTeX}$単体では日本語を使えないので、一般的には日本語に拡張したp$\mathrm{\LaTeX}$（古い）とか、それをUnicodeに対応させたup$\mathrm{\LaTeX}$（まあまあ古い）を使います。  
最近は、古い(u)p$\mathrm{\LaTeX}$の代わりに、Lua$\mathrm{\LaTeX}$やXe$\mathrm{\LaTeX}$を使おう！っていう流れになってきています。こっちのほうがフォント設定が簡単だし。  

この記事では、Lua$\mathrm{\LaTeX}$を使う前提で進めます。（ちょっとだけ(u)p$\mathrm{\LaTeX}$についても書きます）  

# インストール  
$\mathrm{\LaTeX}$ディストリビューション（中身がほぼ同じだが異なる配布形態の奴ら。Linuxユーザーにはお馴染みだよね。）にはいくつかあるんですが、執筆時点で一番使われてそうな$\TeX$Liveを使います。  

なお、この記事では$\mathrm{\TeX}$ Live を使います。  

毎年4月に更新されるみたいです。必要に応じて最新バージョンをインストールしましょう。古いバージョンとの共存はできるみたい。（まあ、一回アンインストールしてからでも損はない）

:::note
- Windowsの方:このまま読み進めてください
- LinuxなどUnixの方:[LinuxやUnix](#linux%E3%82%84unix)に進んでください

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

## Windows  
この章は、[【大学生向け】LaTeX完全導入ガイド Windows編 (2022年) #1. LaTeXの導入 (texlive)](https://qiita.com/passive-radio/items/623c9a35e86b6666b89e#1-latex%E3%81%AE%E5%B0%8E%E5%85%A5-texlive)に従います。  

### インストーラのダウンロード  
[Installing TeX Live over the Internet](https://www.tug.org/texlive/acquire-netinstall.html)から、インストーラをダウンロードします。install-tl-windows.exeってやつですな。  
それにしても、なんで全部文章で書くかなぁ。わかりづらいので、直ダウンロードリンク貼っときます。  
[直ダウンロード：install-tl-windows.exe](https://mirror.ctan.org/systems/texlive/tlnet/install-tl-windows.exe)　　

<details>
<summary>もし「install-tl-windows.exeは一般的にダウンロードされてません」とか怒られたら（クリックで開く）</summary>

ブラウザによって違いますが、なんか詳細を見れそうなボタンを押して、「保存」とか「保持」とかのボタンを探してください。（微妙に違うけど）二回くらい似たようなことをする必要がある場合もあります。  
下の画像はMicrosoftEdgeです。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/4c834da5-8692-fb10-7d63-458df3f0d8b7.png)
↓右側を触るとこうなるので、チョンチョンチョンをクリックして、保存を押します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/29184215-db54-00ca-7c51-d6673f710f22.png)
↓出てきたやつの詳細表示を押して、保持するを選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/ef9fcbca-290f-e57b-c9f0-a821199cfa15.png)
</details>

### インストーラの実行  
ダウンロードしたインストーラを実行します。そいで、「Install」を選択して「Next」を押します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/ff36436c-e5a5-4750-b05a-225df57a06be.png)

もっかい「Install」を押します。  

すると、緑のバーがみるみるうちに進んで、右端にたどり着いて、終了...ならいいんですが、なんか爆走犬のウィンドウが開きます。 
もうちょい待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/9424749a-1608-9686-20a9-da8f406026a6.png)
 

数秒待つと、「TeX Live インストーラ 20xx」が開きますね。   
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/741d1888-1957-249e-bce4-9fdb12f6d02d.png)


ここで、「インストール」を押してもいいんですが、クソほど時間かかる上にめっちゃ場所を取ります。（俺はこれやっちゃって、インストールに5時間かかった）  
時間と場所を節約しましょう。  

1. 高度な設定をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/dc74925c-38bb-1df0-0660-12855534aebd.png)
1. 左下「選択したもの」のうち上の「スキーム」の「変更」を押してbasicを選択。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/a9705cda-8e69-347c-b097-8528d576cac1.png)

1. 下の「カスタマイズ」を押して左側から日本語と英語を選択。右側からLaTeX推奨パッケージを選択。（これでトップ画面の追加スキームは6個になるはずです。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/920a3329-287a-9d98-1694-69f77ca9effa.png)

最後に右下の「インストール」を押します。  
十数分から数十分かかります。ほかのことでもしてましょう。

### その他必要なパッケージのインストール  
インストールが終わったら、スタートメニューから「TLshell TeX Live Manager」を探して開きます。（たぶんTeX Live 20xxフォルダの中に入ってる）  

左上の「ファイル」＞「リポジトリを読み込む」を押して、処理が終わったらポップアップを閉じます。  

**一番左のチェックボックスで「全て」を選択し**（忘れがち）、画面中央の検索窓にlatexmkと入力します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/a22a65bf-b1db-d882-eb0b-082cfa4d350e.png)


latexmkとlatexmk.win32両方に「ローカルのリビジョン」になんかしら数字が入っていれば、何もしなくてOK。  
数字が入っていなければ、二つにチェックを入れて右の「選択項目をインストール」を押す。  

:::note warn
**2023.05.10追記**
コメントで頂きましたが、このときにlualatex-mathもインストールしておかないと不具合が起こることがあるようです。インストールしておきましょう。  
:::

$\mathrm{\LaTeX}$を使っていく中でなんかしらのパッケージや拡張機能が欲しくなったら、この要領で追加できます。  

### 拡張子を表示させる
やっている人はすでにやっていますが、やってない人はやってない設定ですね。  
エクスプローラーを開き、メニューの「表示」＞「拡張子を表示」にチェックを入れる。  
ファイル名の最後に何文字かのアルファベットが付いたと思います。Windowsではこれらをもとにファイルの種類を判別しています。  
例えば、```.txt```ならテキストファイル、```.jpg```とか```.jpeg```ならJPEG形式の画像。  

### PDFビューワのインストール・設定  
$\mathrm{\LaTeX}$を使って作成したPDFファイルを見るソフトをインストールします。  
なにか好きなPDFビューワ（Adobe Acrobatなど）があればいいのですが、僕はSumatraPDFをおすすめします。  
何故かと言うと、起動がめちゃくちゃ早いのと、SyncTeXといって、$\mathrm{\LaTeX}$やら$\TeX$で更新したPDFをリアルタイムで反映する機能があるみたいなんです。  
下記リンクからインストールしてください。 
 [SumatraPDFダウンロード](https://www.sumatrapdfreader.org/download-free-pdf-viewer)

それから、デフォルトでPDFを見るソフトを設定します。  
1. 適当なPDFファイルを右クリック、プロパティを選択してください。  
1. 中央よりちょい上の、「変更」（下画像の青くなってるボタン）を押して、設定したいPDFビューワを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/a5c43c7b-6433-a44b-9bfb-db194f92e346.png)

:::note
- [latexmkの設定](#latexmk%E3%81%AE%E8%A8%AD%E5%AE%9A)に進んでください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

## LinuxやUnix  
※Unixを使っている方は多少なりともPCに詳しいとみて、解説します。わからないことがあれば調べてください。まあ、僕に直接聞いてもらっても大丈夫です。  

[TeX Live - Quick install for Unix](https://tug.org/texlive/quickinstall.html)に従います。（ところどころ変えてたりするけどやってることは同じ）  

```apt```とか```yum```で入れればいいんじゃない？と思うかもしれません。ただ、僕の環境でaptを使ってインストールしてみたところ、バージョンが2020で、ほかにもいろいろと不都合があったので、インストーラからインストールを強くお勧めします。  

### インストーラのダウンロード
GUI環境で行う場合、[Installing TeX Live over the Internet](https://www.tug.org/texlive/acquire-netinstall.html)からinstall-tl-unx.tar.gzを落としてきます。  
Windows同様直リンク張っとくか。  
[直ダウンロード：install-tl-unx.tar.gz](https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz)  

CLI環境の場合、以下コマンドで同じファイルをダウンロードします。  
見てればわかりますが、最も近いミラーサーバから落ちてきてますね。  
```sh
wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
```

### インストーラの実行
以下はCLIで操作します。  
```sh
#tgzの解凍
tar -zxf install-tl-unx.tar.gz
#解凍先ディレクトリに移動
cd install-tl-*
#インストールを実行
sudo perl install-tl #--no-interaction オプションでfullスキームインストール（おすすめしない）
```
インストール画面が表示されますので、カスタムインストールをしていきます。そのまんまインストールしてもいいですが、ばちくそ時間かかるし鬼みたいに場所とります。  
<details>
<summary>こんな画面です（クリックで開く）</summary>

```:
======================> TeX Live installation procedure <=====================

======>   Letters/digits in <angle brackets> indicate   <=======
======>   menu items for actions or customizations      <=======
= help>   https://tug.org/texlive/doc/install-tl.html   <=======

 Detected platform: GNU/Linux on x86_64

 <B> set binary platforms: 1 out of 16

 <S> set installation scheme: scheme-full

 <C> set installation collections:
     40 collections out of 41, disk space required: 7685 MB (free: 242088 MB)

 <D> set directories:
   TEXDIR (the main TeX directory):
     !! default location: /usr/local/texlive/2022
     !! is not writable or not allowed, please select a different one!
   TEXMFLOCAL (directory for site-wide local files):
     /usr/local/texlive/texmf-local
   TEXMFSYSVAR (directory for variable and automatically generated data):
     /usr/local/texlive/2022/texmf-var
   TEXMFSYSCONFIG (directory for local config):
     /usr/local/texlive/2022/texmf-config
   TEXMFVAR (personal directory for variable and automatically generated data):
     ~/.texlive2022/texmf-var
   TEXMFCONFIG (personal directory for local config):
     ~/.texlive2022/texmf-config
   TEXMFHOME (directory for user-specific files):
     ~/texmf

 <O> options:
   [ ] use letter size instead of A4 by default
   [X] allow execution of restricted list of programs via \write18
   [X] create all format files
   [X] install macro/font doc tree
   [X] install macro/font source tree
   [ ] create symlinks to standard directories

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <P> save installation profile to 'texlive.profile' and exit
 <Q> quit

Enter command:
```

</details>

まずはインストールスキームを、fullからbasicに変更します。  
1. ```S```を入力、Enter
1. basicスキームを選ぶので```d```を入力、Enter
1. ```R```でトップ画面に戻る

次に、basicスキームではインストールされないけど僕らには必要なパッケージを選択してインストールします。  
1. ```C```を入力、Enter
1. すでにチェックが入っているものに加えて、
    1.```p```を入力してEnter（英語パッケージ）
    2.```x```を入力してEnter（日本語）
    3.```F```を入力してEnter（$\mathrm{\LaTeX}$推奨パッケージ）
    ~~4.```G```を入力してEnter（Lua$\TeX$）~~ （多分不要）
1. ```R```でトップに戻る

最後に、```I```でインストール開始です。  

### 実行ファイルにPATHを通す
デフォルトでは、実行ファイルは```/usr/local/texlive/20xx/bin/(マシンのアーキテクチャ)/```に入っていますので、PATHを通します。  
ここにPATHを通してもいいんですが、環境変数を汚染しないためのツールがあるのでこれをありがたく使わせてもらいましょう。  

```tlmgr```は、正式名称をTeX Live managerといい、$\TeX$パッケージの管理をするコマンドです。  
以下を実行すると、実行ファイルたちのシンボリックリンクが```usr/local/bin```に張られます。  
```sh:
sudo /usr/local/texlive/20xx/bin/(マシンのアーキテクチャ)/tlmgr path add
```
（適宜読み替えてください）  

### 必要パッケージのインストール
以下を実行します。  
```sh
#tlmgrとその他パッケージのアップデート
sudo tlmgr update --self --all
#latexmkのインストール
sudo tlmgr install latexmk
```
:::note warn
**2023.05.10追記**
コメントで頂きましたが、このときにlualatex-mathもインストールしておかないと不具合が起こることがあるようです。インストールしておきましょう。  
:::

なお、```tlmgr```は、```tlmgr gui```を実行することで、上記のWindowsのようにGUIで操作もできるみたいです。（perl-tkがインストールされている必要がある）（適宜管理者権限をつけてください）（ちなみに僕はうまく行かなかったのでわかる方いたら教えて下さい）  

このあと、インストールしたパッケージにもPATHを通すために再度
```sh
sudo tlmgr path add
```
しましょう。

### PDFビューワのインストール  
$\mathrm{\LaTeX}$で作成したPDFを見るソフトをインストールします。  
なんでもいいのですが、今回はevinceを入れます。  
この記事でも、Linuxではevinceを使用するものとして説明します。  

例：DebianやUbuntu  
```sh:
sudo apt install evince
```

:::note
- このまま読み進めてください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

# latexmkの設定  
この記事で説明するLua$\mathrm{\LaTeX}$ではそんなにむずかしくはないのですが、(u)p$\mathrm{\LaTeX}$などでは、PDFを作成するために、何回もコマンドを実行する必要があります。  
それを簡単に行うためのツールが、latexmkです。TeX Liveをインストールした後に追加でインストール（or確認）したやつですね。  

(u)p$\mathrm{\LaTeX}$なんか使わんから必要ないと思うかもしれませんが、お偉いさんから渡される$\mathrm{\LaTeX}$のテンプレートがp$\mathrm{\LaTeX}$用だったりすることがあるみたいなんです。なので、設定しておきましょう。この記事もlatexmkを設定済みという前提で書いていきます。  

設定は簡単です。好きなテキストエディタ（Windowsならメモ帳とか）に、以下のコードを貼り付けて、ホームディレクトリ（Windowsなら```C:\Users\ユーザー名\```、Linuxなら```/home/ユーザー名/```のフォルダ）に、```.latexmkrc```って名前で保存するだけです。  
ファイル名頭のドットを忘れずに！  

あと、保存時に末尾に```.txt```が着いちゃう場合は、保存してから取り除いてください。

```perl:.latexmkrc
#!/usr/bin/env perl
# 先頭行は、Linux用のシバンなので、Windowsでは削除しても構いません。

# 通常の LaTeX ドキュメント用のコマンド
# 今回はupLaTeXを設定してあります。
$latex = 'uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode %S'; 
# pdfLaTeX 用のコマンド 
$pdflatex = 'pdflatex %O -synctex=1 -interaction=nonstopmode %S'; 
# LuaLaTeX 用のコマンド 
$lualatex = 'lualatex %O -synctex=1 -interaction=nonstopmode %S'; 
# XeLaTeX 用のコマンド 
$xelatex = 'xelatex %O -no-pdf -synctex=1 -shell-escape -interaction=nonstopmode %S'; 
# Biber, BibTeX 用のコマンド 
$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'; 
$bibtex = 'upbibtex %O %B'; 
# makeindex 用のコマンド 
$makeindex = 'upmendex %O -o %D %S'; 
# dvipdf のコマンド 
$dvipdf = 'dvipdfmx %O -o %D %S'; 
# dvips のコマンド 
$dvips = 'dvips %O -z -f %S | convbkmk -u > %D'; 
$ps2pdf = 'ps2pdf.exe %O %S %D'; 
  
# $pdf_mode ...PDF の作成方法を指定するオプション 
# 0: $latex で .tex -> .dvi するだけ
# 1: $pdflatex で .tex -> .pdf (pdflatexは英文にしか使えない)
# 2: $latex で .tex -> .dvi / $dvips で .dvi -> .ps / $ps2pdf で .ps -> PDF
# 3: $latex で .tex -> .dvi / $dvipdf で .dvi -> PDF 
# 4: $lualatex で .tex -> PDF
# 5: $xelatex で .tex -> .xdv / $xdvipdfmx で .xdv -> PDF
# lualatexしか使わないなら以下行のコメント（#）を外すが、他も使いそうならこのまま
# $pdf_mode = 4; 
  
# PDFビューワ の設定 
# "start %S": .pdf の規定のソフトで表示（Windowsのみ）
# Linuxの場合、"evince %S" を指定してください
$pdf_previewer = "start %S";
```

:::note warn
コード内にも書きましたが、Linuxの場合は、PDFビューワとして "start" は使用出来ないので、 "evince" としてください。
:::

ちなみに、```%S```とは、latexmk実行時に指定したファイル名、```%O```とは、latexmk実行時に指定したオプションのことです。  

いろいろとカスタマイズのしようはありますが、とりあえずこれでやってみましょう。$\mathrm{\LaTeX}$を早く使えるようにしましょう。  
気になった方は、Googleとかで「latexmk」とかで調べるといっぱい出てきます。  

:::note
- このまま読み進めてください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

# 試しに動かしてみる
上記のlatexmkの設定と同じように、```sample.tex```って名前で**好きな場所**（ホームディレクトリの必要は無い）に保存してください。（どうしても末尾に```.txt```がついちゃうなら保存してから消す）

ほんで、保存した場所のパスを覚えといてください。（Windowsの場合、エクスプローラーでフォルダを右クリックして「パスをコピー」でコピーされる）
```latex:sample.tex
\documentclass{ltjsarticle}
\begin{document}

\title{わーいタイトルだっ\mathrm{\LaTeX} }
\author{俺氏}
\maketitle
\section{見出しっ}
\subsection{小見出し！}
\paragraph{段落だー}
これはLua\mathrm{\LaTeX} でやってます！端で改行されるし、うぇええええええええええええええええええええええええええい\\
強制改行もできます。
\end{document}
```
（中身は後で説明します）

そして、コマンドプロンプトやらPowerShellやらターミナルエミュレータやらでそのディレクトリ（フォルダ）に移動します。  
<details>
<summary>コマンドプロンプトの開き方（Windows）（クリックで開く）</summary>

何通りかあるんですが、2つほど紹介します。
- スタートメニューから、「コマンドプロンプト」を検索OR探し出して、クリックします。（PowerShellも同様）
- Win+R を押して、出てきたウィンドウに```cmd```もしくは```cmd.exe```と入力
  
</details>
<details>
<summary>移動の仕方（クリックで開く）</summary>
ここではWindowsを例にしていますが、Linuxでも同じです。  
プロンプトに以下を入力します。

```winbatch
cd フォルダのパス
```

</details>

そして、Windowsでは```dir```、Linuxでは```ls```コマンドをうって、そこにsample.texがあることを確認します。  

それから、プロンプトに以下のコマンドを打ちます。  
```sh
lualatex sample.tex
```
このサンプルコードではエラーが出ると思いますが、以下の使い方を参考に(u)p$\mathrm{\LaTeX}$で記述した場合は以下のようにします。ここでの例はup$\mathrm{\LaTeX}$です。
```sh
uplatex sample.tex ; dvipdfmx sample.dvi
#(u)pLaTeXはdviという中間ファイルを生成しpdfは作らないのでdvipdfmxを用いてdviをpdfに変換
```
さっきlatexmkの設定も行ったので、以下でもできます。  
```sh
latexmk -lualatex sample.tex
#uplatexの場合。latexmkのデフォルトに指定したためuplatexと記述しなくてよい。
latexmk -pdfdvi sample.tex
#platexの場合
latexmk -latex=platex -pdfdvi sample.tex
```
※latexmkrcのpdf_modeのコメントアウトを外した場合は"-lualatex"は不要

すると、よくわからんファイルがいくつか生成されたあとsample.pdfが生成されたと思います。開いてみましょう。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/5595ed00-d33b-d7d9-a879-55cff9115695.png)
やったね成功だっ！  

:::note
- エディタをインストールする方:このまま読み進めてください。
- すでにVSCodeインストール済みの方:[セットアップ](#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)に進んでください。
- 現在のエディタで十分な方:[使い方](#%E4%BD%BF%E3%81%84%E6%96%B9)に進んでください

※以下で導入するエディタを使い、以下で紹介する設定を行えば、いちいちコマンドを実行しなくてもボタン一つでPDF化できるので、おすすめです。
また、シンタックスハイライト（$\mathrm{\LaTeX}$コマンドなどの色が変わる）もついているので、メモ帳とは絶対違います。
Vim派の方、Vimという名のプラグインを入れればVimキーバインドが使えるようになります！
Atom派の方、VSCodeはAtomよりも起動が早いです！

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

# エディタの用意
ここでは、MicrosoftのVisual Studio Code（以下、VSCode）を使います。  
VSCodeは、（多分）世界のプログラマが一番使ってるエディタです。拡張機能を追加することで、様々な機能が追加できます。  
今回も、拡張機能を使って$\mathrm{\LaTeX}$を使いやすくします。  

## VSCodeのインストール
:::note
- Windowsの方:このまま読み進めてください
- LinuxなどUnixの方:[LinuxやUnix](#linux%E3%82%84unix-1)に進んでください。
- 既にインストール済の方:[セットアップ](#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)に進んでください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::
### Windows
[Install Visual Studio Code](https://code.visualstudio.com/Download)からインストールしてください。  

:::note
- [セットアップ](#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)に進んでください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

### LinuxやUnix
[Install Visual Studio Code](https://code.visualstudio.com/Download)からパッケージをダウンロードしてきてください。  

以下、Debianを例に説明します。CentOSなどの場合適宜読み替えたりしてインストールしてください。  

ダウンロードしたディレクトリに移動して、以下コマンドを実行します。
```sh
sudo dpkg -i code_*.deb
```
多分これでインストールされます。  

:::note
- このまま読み進めてください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

## セットアップ
まずはインストールしたVSCodeを起動します。スタートメニューとかから起動してください。プロンプトから起動する場合は、```code```コマンドです。  

### 拡張機能の導入
#### 日本語化拡張
まずは日本語化します。（任意）

初回起動時に日本語化パッケージインストールを勧められたら、それに従ってインストール・VSCodeの再起動を行ってください。

もし勧められなかったら、下画像のように、
1. 左側ツールバーの積み木マーク
1. 出てきた検索ボックスに「Japanese」と入力
1. 画像のパッケージをインストール
1. 再起動を勧められるのでVSCodeの再起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/edeb1adf-f8ec-9a53-ba80-56807ea1c31c.png)

#### LaTeX Workshop
次に、$\mathrm{\LaTeX}$を簡単に使用するための拡張です。
上記日本語化拡張と同様に、LaTeX Workshop拡張機能を検索してインストールしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/8710372c-e21f-1b43-f124-66c204bf78bd.png)

このままではこの拡張機能は使えないので、設定を行います。
まずは設定を開きます。
1. 左下の歯車を押して、設定を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/47c0f28e-80a3-51ed-62b4-a412e5345d66.png)
1. 右上の丸で囲んだボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/f77d1f08-e0cc-368f-dc1d-75950497084b.png)
1. 画像に書いた場所に、下記のコードを貼り付ける。
このとき、**すでに何がが書かれていたら、最後の項目の末尾に```,```を追加してから**貼り付ける。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/0615737b-0954-3f09-d864-632374ce84a5.png)
```json-doc:
// 和文を使うため、助詞、句読点、全角括弧などを区切り文字として登録する
    "editor.wordSeparators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?　、。「」【】『』（）！？てにをはがのともへでや",

    // 以下、LaTeX Workshopの設定

    // LaTeXでビルドする際の設定を「Tool」「Recipi」の2種類設定する
    //   Tool ...1つのコマンド。料理で言うところの、「焼く」「煮る」などの操作かな。
    //   "latex-workshop.latex.tools" で定義。
    //   Recipe ...Tool を組み合わせて料理（つまりは文書）を作るレシピ。
    //   "latex-workshop.latex.recipes"で定義。
    //   デフォルトの操作は、1番最初に定義されたレシピになる（他のレシピも選択可）
    
    // Tool の定義
    "latex-workshop.latex.tools": [
      
        // latexmk によるlualatex
        {
          "name": "Latexmk (LuaLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-lualatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-output-directory=%OUTDIR%", "%DOC%"
          ]
        },
        // latexmk による xelatex
        {
          "name": "Latexmk (XeLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-xelatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-output-directory=%OUTDIR%", "%DOC%"
          ]
        },
        // latexmk による uplatex
        {
          "name": "Latexmk (upLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-output-directory=%OUTDIR%", "%DOC%"
          ]
        },
        // latexmk による platex
        //こいつ使うときもしかしたらpdf生成されずにdviまでしかできないかも
        {
          "name": "Latexmk (pLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-latex='platex'", "-latexoption='-kanji=utf8 -no-guess-input-env'", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-output-directory=%OUTDIR%", "%DOC%"
          ]
        }
    ],

    // Recipe の定義
    "latex-workshop.latex.recipes": [
        // LuaLaTeX のレシピ
        {
          "name": "LuaLaTeX",
          "tools": [
            "Latexmk (LuaLaTeX)"
          ]
        },
        // XeLaTeX のレシピ
        {
          
          "name": "XeLaTeX",
          "tools": [
            "Latexmk (XeLaTeX)"
          ]
        },
        // upLaTeX のレシピ
        {
          "name": "upLaTeX",
          "tools": [
            "Latexmk (upLaTeX)"
          ]
        },
        // pLaTeX のレシピ
        {
          "name": "pLaTeX",
          "tools": [
            "Latexmk (pLaTeX)"
          ]
        },
    ],

    // マジックコメント付きの LaTeX ドキュメントのビルド設定
    // 特に記事では扱わないが、いつか使うことを考えて書いとく。
    // 参考: https://blog.miz-ar.info/2016/11/magic-comments-in-tex/
    "latex-workshop.latex.magic.args": [
      "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
    ],

    // 不要なファイルをクリーンアップする時の目印となる拡張子
    // 不要な一時ファイルや中間ファイルを自動削除する機能がある。
    "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", "*.synctex.gz",
        // for Beamer files
        "_minted*", "*.nav", "*.snm", "*.vrb",
    ],

    // ビルド失敗した際の残存ファイルが以降のビルドに影響を与えることがあるため、
    // 残存ファイルを削除する設定
    "latex-workshop.latex.autoClean.run": "onBuilt",

    // PDFビューワの開き方。画面分割で開く。
    "latex-workshop.view.pdf.viewer": "tab",

    // LaTeXファイル保存時にPDFも更新するかどうか。
    // LuaLaTeXはビルドが遅いので、かえって煩わしいので無効化
    // (u)pLaTeXなら有効化しておいてもいいかも。
    "latex-workshop.latex.autoBuild.run": "never",

    "[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.intellisense.package.enabled": true,

    // 作成したファイルを、直下の "out" フォルダへ出力
    "latex-workshop.latex.outDir": "out",
```

:::note warn
~~私はまだ確認できていませんが、コード内の`-outdir`を`output-directory`にしないと正常に動かないようです。~~
~~確認し次第修正します。~~
修正しました。
:::

最後にVSCodeを再起動する。

#### テキスト校正くん
和文を編集する際に、文章な不自然な点を指摘してくれる拡張機能。
上記2つの拡張機能と同じょうに導入しておくと便利。

### スニペット
スニペットとは、VSCodeでの、入力サジェストのようなものです。
$\mathrm{\LaTeX}$文書のテンプレートを設定しておくと便利です。
1.画像のように、左下の歯車を押して、ユーザースニペットの構成を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/922f8653-4696-735b-1ca3-ba337ac70336.png)
1. 出てきた入力ボックスに```latex```と入力し、Enter
1. latex.jsonが開くので、LaTeX Workshopの設定と同じ要領で、{}の中にとりあえず僕のテンプレートを貼っておきましょう。
```json-doc:
    "latex":{
		"prefix": "latex",
		"body": [
			"\\documentclass[paper=a4paper,fontsize=10pt]{jlreq}",
			"\\usepackage{luatexja-fontspec}",
			"\\setmainfont{Harano Aji Mincho}",
			"\\setsansfont{Harano Aji Gothic}",
			"\\setmainjfont{Harano Aji Mincho}",
			"\\setsansjfont{Harano Aji Gothic}",
			"",
			"\\usepackage{graphicx}",
			"",
			"\\usepackage{amsmath,amssymb}",
			"\\usepackage{unicode-math}",
			"\\setmathfont{LatinModernMath-Regular}",
			"",
			"\\begin{document}",
			"",
			"\\title{${1}}",
			"\\author{名前}",
			"\\date{\\today}",
			"\\maketitle",
			"",
			"\\tableofcontents",
			"",
			"${0}",
			"",
			"\\end{document}",	
		],
		"description": "LuaLaTeX articleテンプレート"
	}
```
1番上の「latex」と、その下の「name」で指定されたところの「latex」はわかりやすい名前に変更しましょう。（このままでもいい）
prefixには、呼び出す時に入力する文字が入ります。
bodyには本文です。1行ごとにクォーテーションで区切られています。```${1}```とかは、表示された際にカーソルが置かれる位置です。Tabキーで数字順にたどっていきます。初期値の設定もできます。

## VSCodeでの編集方法
まずは、以下の画像のように、左側のファイルマークを押してからフォルダを開くを追加してください。そうすると、左側に簡易的なファイルブラウザが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/f87ecc29-b95d-8a0e-0be4-2dc45201f198.png)

編集したいファイルをクリックすると開きますので、編集して、Ctrl+Sで保存です。
ファイルを新規作成する場合は、親フォルダの横にある新規作成ボタンを押すか、親フォルダを右クリックしてファイルの新規作成を選択します。

$\mathrm{\LaTeX}$文書としてPDFにビルドする際は、左上の緑の再生ボタン（settings.jsonで1番上に定義したレシピが実行）、もしくは、左の$\TeX$ボタンを押して出てきたメニューから「Build LaTeX project」を展開し、実行するレシピを選択します。

あとはお好みなのですが、改行までが長い文章を書く場合、デフォルトでは自動で折り返されないのでめちゃ見づらいです。
Ctrl+Z、もしくは 表示＞右端での折り返し を設定することで端で折り返されるようになります。

ちなみに、編集画面でCtrl+@を押すと、コマンドプロンプトとかPowerShellとかターミナルが下から生えてくるので、便利です。

:::note
- このまま読み進めてください。

[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

# 使い方
以下のサンプルコードをもとに説明します。

```latex:sample2.tex
\documentclass[paper=a4paper,fontsize=10pt]{jlreq}
\usepackage{luatexja-fontspec}
\setmainfont{Harano Aji Mincho}
\setsansfont{Harano Aji Gothic}
\setmainjfont{Harano Aji Mincho}
\setsansjfont{Harano Aji Gothic}

\usepackage{amsmath,amssymb}
\usepackage{unicode-math}
\setmathfont{LatinModernMath-Regular}

\begin{document}

\title{タイトル}
\author{私 太郎}
\date{\today}
\maketitle

\tableofcontents

\part{これが部}
\section{これが節}
\subsection{これが小節}
\subsubsection{これが小小節}
\paragraph{これは段落}
\subparagraph{これこそが小段落}
こんな感じで文章構造を組むことができます。ちなみに、フォントを途中で変えることもできます。\gtfamily ここはゴシック体、\rmfamily This is serif, \sffamily This is sans-serif, \ttfamily This is monospaced.\rmfamily \mcfamily 事前に読み込んでいないフォントも読み込めます。\fontspec{BIZ UDP Gothic}\jfontspec{BIZ UDP Gothic}ここは、事前に読み込んでいない、BIZ UDPゴシックです。\rmfamily\mcfamily\bfseries{こんな感じで太字になります。}\mdseries 斜体とかは、めんどくさいのと僕がちゃんと理解してないので説明しません。あんまり斜体ってつかわないよね。\\
こんな感じで強制改行も行えます。

\section{特殊文字とか}
\mathrm{\LaTeX} とかの特殊な書き方はこんなふうに表示できます。\\
音楽記号\sharp \ \flat とかもあります。

\section{数式も埋め込めます}
$y = x$みたいな感じで、行中に埋め込めますし、以下のように書くこともできます。\\

\begin{equation}
  \int_{a}^{a}f\left(x\right)dx = 0
\end{equation}

複数行の数式も書けます。$=$の位置を揃えることもできます。\\

\begin{align}
  \int_{1}^{2}\left(x^2 + 3x\right)dx + \int_{1}^{2}\left(x^2 - 3x\right)dx &= \int_{1}^{2}\left\{\left(x^2 + 3x\right) + \left(x^2 - 3x\right)\right\}dx \\
  &= \int_{1}^{2}2x^2dx \\
  &= 2\left[\frac{x^3}{3}\right]^2_1 = \frac{2\left(2^3 - 1^3\right)}{3} = \frac{14}{3}
\end{align}

\end{document}
```

<details>
<summary>出力結果（クリックで開く）</summary>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/8120cdb5-f806-ff92-fd0c-a9e1aca865c2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/1f5084f1-ce26-db0f-ad4a-3a37041bafab.png)

</details>

:::note
[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

## 用語
### コマンド
$\mathrm{\LaTeX}$にはコマンドと言う概念があります。これは、文字をただ出力するだけではなく、特殊な動作をさせるためのものです。```\```から始まるやつです。上記のサンプルコードに大量に入ってますね。
### 引数
コマンドに渡すメインの値です。英語とかで言う、目的語にあたります。コマンドの後ろの```{}```の中に書きます。
### オプション
コマンドの動作を拡張するためにコマンドに渡す値です。コマンドの後ろの```[]```の中に書きます。

ちなみに、引数の```{}```とオプションの```[]```はどっちが先でも問題ないです。
### パッケージ
純粋な$\mathrm{\LaTeX}$（ここではLua$\mathrm{\LaTeX}$）だけだとできることには限界があります。そこで、機能を追加するためにパッケージを読み込みます。
### 環境
```\begin```コマンドから```\end```コマンドまでの間。例えば、document環境（出力内容を書く範囲）とか、equation環境（改行の入らない数式の範囲）等があります。
### プリアンブル
document環境よりも前の、ドキュメントに出力されない範囲です。設定などを書きます。
HTMLでいう、headタグにあたります。

:::note
[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

## コマンド解説
### \documentclass{クラス}
一番上に書いてあるやつですね。
これは、この文書の種類を指定する、**必要不可欠な**コマンドです。引数に指定したクラスファイルというもの（拡張子は```.cls```）を読み込んでるらしいです。詳しくは知らん。
Lua$\mathrm{\LaTeX}$でデフォルトで指定できるものでよく使うのは主に以下です。

| 引数 | どんなクラス？ |
|----|----|
|```ltjsarticle```|article形式。基本的にこれ。|
|```ltjsreport```|report形式。長い文書なのかな？部(part)と節(section)の間に章(chapter)という文章構造が加わる。
|```ltjsbook```|book形式。製本向け。奇数ページと偶数ページでレイアウトが変わる。
|```jlreq```|日本語組版処理の要件を満たすためのクラス。article,report,bookは引数で指定。|

p$\mathrm{\LaTeX}$ではこれらの```ltjs```が抜けたもの、up$\mathrm{\LaTeX}$では```lt```が抜けたものを使用します。
縦書きの場合、```ltjs```を```ltjt```にしましょう。縦中横を使う部分は```\hbox{\yoko 文字}```とします。縦書きに関しては以下サイトがわかりやすかったです。

https://lualatexlab.blog.fc2.com/blog-entry-62.html

jlreqでの縦書きは```tate```オプションを渡します。（後述）
なお、このサンプルコードではjlreqを指定しています。

これらのクラスに対して指定できるオプションとしては以下があります。

|オプション|どんなオプション？|
|----|----|
|```oneside```|奇偶ページのレイアウトを同じにする。articleとreportのデフォルト。|
|```twoside```|製本用に、奇偶ページのレイアウトを対称にする。bookのデフォルト。|
|```onecolumn```|一段組。|
|```twocolumn```|二段組。|
|```titlepage```|タイトルで1ページ使う。report,bookのデフォルト。|
|```notitlepage```|タイトルで1ページ使わない。articleのデフォルト。|
|```draft```|用紙サイズを超えてはみ出す部分がある場合マーク|
|```final```|draftしない。|
|```landscape```|紙を横長に使う|
|```10pt```,```11pt```,```12pt```|デフォルトの文字サイズ(jlreq以外)|
|```a4paper```,```a5paper```,```b4paper```,```b5paper```など|紙サイズの設定(jlreq以外)|

jlreqの場合は以下のオプションを使います。（ちなみにデフォルトはarticle形式）

|オプション|どんなオプション？|
|----|----|
|```report```|report形式にする。|
|```book```|book形式にする。|
|```paper=(紙サイズ)```|紙サイズの設定。```a4paper```などでa,b,c（bはISO配列）で0~10まで指定可能。JISのbを指定する際は```b5j```のようにする。|
|```fontsize=(フォントサイズ)```|フォントサイズ。デフォルトは10pt|
|```tate```|縦書きにする。縦中横を使う部分は```\tatechuyoko{文字}```|

jlreqに関しては、[公式ドキュメント](https://www.tug.org/texlive//Contents/live/texmf-dist/doc/latex/jlreq/jlreq-ja.html)がわかりやすいから読んで見てください。

### \usepackage{読み込むパッケージ}
パッケージの読み込みをします。ここでは、```luatexja-fontspec```と```amsmath,amssymb```,```unicode-math```を読み込んでいますね。画像を埋め込むなら```graphicx```とか読み込みます。（画像埋め込みに関してはこの記事には書きません。）

#### luatexja-fontspec
フォント設定を細かく行うために読み込みます。もともと欧文用の```fontspec```パッケージがあったものを日本語用に拡張したもので、内部でfontspecを読み込んでるっぽい。
なお、これをプリセットにしたものとして、```luatexja-preset```ってのがあります。詳しくは公式ドキュメント（[luatexja-ja.pdf](http://mirrors.ibiblio.org/CTAN/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf)）読んで。（ただでさえ長くなりそうな記事に詳しくは書けない。）

**なお、(u)p$\mathrm{\LaTeX}$では使用できません。** これらでフォントを変えるのはなんかめっちゃ難しいらしいです。僕が理解できてない。

#### amsmath,amssymb
AMS（アメリカ数学会）が開発した、なんか数式書くのにいいやつみたいです。（よくわかってないけど便利だから使う）
後述しますが、複数行の数式に使われる```eqnarray```環境はサポートされていないみたいです。代わりに```align```環境を使います。

#### unicode-math
数式文字を、普通の文字のフォントの切り替えではなく、Unicodeの数式用の文字コードを使用する。
何がメリットかよくわかってない。

### \set~font{フォント名}
fontspecパッケージのコマンド（\setmathfontだけはunicode-mathの）。そのため、 **fontspecが使用できない(u)p$\mathrm{\LaTeX}$では`\text~`系を除い使用できません。（`\text~`系で選択されるフォントは指定できません。）** 後述しますが、文書中でフォントを指定するときのデフォルトとして認識されます。
なお、Lua$\mathrm{\LaTeX}$で使用できるフォントは、コマンドプロンプトとかで```luaotfload-tool --list *```で一覧で見れます。

|\set~fontコマンド|文書中で使うときのコマンド|説明|
|----|----|----|
|```\setmainfont```|```\rmfamily```/```\textrm```|欧文セリフ体|
|```\setsansfont```|```\sffamily```/```\textsf```|欧文サンセリフ体|
|```\setmonofont```|```\ttfamily```/```\texttt```|等幅フォント|
|```\setmainjfont```|```\mcfamily```/```\textmc```|和文明朝体|
|```\setsansjfont```|```\gtfamily```/```\textgt```|和文ゴシック体|
|```\setmonojfont```|```\ttfamily```/```\texttt```|和文等幅フォント|
|```\setmathfont```||数式フォント|

サンプルコードでは全部原ノ味フォントにしてますが、これは僕がWindowsとLinux両方で問題なく認識されてかつわかりやすいものにしようとした結果です。
Windowsなら、欧文セリフ体はTimes New Roman、サンセリフ体はArialがよく使われますね。

### \begin{環境名} \end{環境名}
数少ない、閉じる必要があるコマンドです。
環境と呼ばれる、範囲を設定します。
上述しましたが、document環境は、出力する内容を書く環境、equationやalignは数式を書く環境です。
数式の環境については後述します。documentに関しては、これ以上でも以下でもないけど重要な環境です。**本文はdocument環境の外に書くと出力されません！** HTMLでいう、bodyタグにあたる環境です。

### \title{タイトル} \author{名前} \date{日付} 
タイトル用に各項目を設定します。\todayコマンドを\dateコマンドの引数にすれば自動で今日の日付が入ります。

### \maketitle
上記で設定したタイトルたちを、タイトルとして出力します。**これがないと出力されません！！**

### \part{} \section{} \subsection{} \subsubsection{} \paragraph{} \subparagraph{}
それぞれ、章、節、小節、小小節、段落、小段落を設定します。引数には項目名が入ります。
report形式ならpartとsectionの間にchapterも使えます。

### \rmfamily \sffamily \ttfamily \mcfamily \gtfamily
fontspecのコマンドです。 **そのため、fontspecを使用できない(u)p$\mathrm{\LaTeX}$では使用できません。(u)p$\mathrm{\LaTeX}$でフォントを変更したい場合は上記`/set~font`の項目に記述した`\text~`コマンドを使います。** フォントを途中で変更するタグです。[\set~font{フォント名}](#setfont%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E5%90%8D)のコマンドで設定したフォントを呼び出します。

引数を指定せずに、```\rmfamily```のように使うと、そのコマンド以降のすべてのフォントが変わります。
引数を指定して、```\rmfamily{文字列}```のように使うと、引数の部分だけフォントが変わります。

```\rmfamily```などの代わりに```\textrm```のようなコマンドも使用できます。
詳しくは[\set~font{フォント名}](#setfont%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E5%90%8D)の項目を参照してください。

なお、欧文フォントだけ宣言しても、和文フォントは変更されません。逆も然りです。引数指定で書く場合はこのようになりますね。
```latex:
\sffamily{\gtfamily{日本語とEnglishの混ざった文}} %引数の部分だけサンセリフ・ゴシックに設定
```

### \fontspec{フォント名} \jfontspec{フォント名}
fontspecのコマンドです。同上、(u)p$\mathrm{\LaTeX}$では使用不可です。プリアンブルで指定していないフォントを指定します。
```\fontspec```は欧文用、```\jfontspec```は和文用です。
大まかな使い方は```\rmfamily```（前項）などと同じです。

### \bfseries \mdseries
文字の太さを変更します。大まかな使い方は```\rmfamily```（前々項）などと同じです。
|コマンド|説明|
|----|----|
|```\bfseries```/```\textbf```|太字|
|```\mdseries```/```\textmd```|普通の太さ|

似たようなものに、斜体の設定もあります。一応対応表は載せておきますが、詳細な設定は書きません。
もともと斜体がないフォントを擬似的に斜体にする設定が、僕もよく理解できていないので。
|コマンド|説明|
|----|----|
|```\upshape```/```\textup```|直立体|
|```\itshape```/```\textit```|イタリック体（装飾付き斜体）|
|```\slshape```/```\textsl```|スラント体（ただの斜体）|
|```\scshape```/```\textsc```|スモールキャピタル（小文字を小さい大文字で表現）|

### \\\\（バックスラッシュ2つ）
強制改行。
文書中で普通に改行しても改行として認識されません。ですので、行末に```\\```をつけることで強制改行ができます。

**2022.12.31追記**
Twitterでご指摘いただきました。
```\\```での強制改行は基本的に数式や表の中で使うようです。
通常の文章では、主に段落分けを使うようにしましょう。
段落分けには、各段落の間に空行を挟みます。もしくは行末に```\par```を挟んでもいいようです。（あまり使わない）
```latex
第1段落第1段落第1段落第1段落
%(空行)
第2段落第2段落第2段落第2段落…
```

### 特殊文字
```\mathrm{\LaTeX}```や```\TeX```と入力すると、"$\mathrm{\LaTeX}$"や"$\TeX$"のような出力になります。
他にも、```\int_{b}^{a}```で$\int_{b}^{a}$のように、インテグラルを書けたり、```\frac{2a}{3}```で$\frac{2a}{3}$のように、分数を書けたりするんですが、詳細は[数式に使うコマンド](#%E6%95%B0%E5%BC%8F%E3%81%AB%E4%BD%BF%E3%81%86%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89)の項目で説明します。

### \ （バックスラッシュ+スペース）
スペースを挿入します。サンプルコードでは、```\sharp```と```\flat```の間に挟まっています。地味っ
普通にスペースを挿入しても認識されないときとかに使います。

### $~$（ドル記号で囲む）
```$```で囲むことで、インライン（行中）に数式を埋め込めます。

:::note
[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

## 数式の書き方
なんといっても$\mathrm{\LaTeX}$の強みといえば、数式組版！

### 数式を書く環境
数式を書く環境は、上述のインライン数式や、equation環境、eqnarray環境、align環境、alignat環境などがあります。

以下サイトがわかりやすかったです。

https://mathlandscape.com/latex-eq/

ちなみに、各環境名の後ろに```*```をつけると、（```align*```など）数式番号がつかなくなります。
#### インライン数式
```$```や、```\(``` ```\)```で囲みます。

#### equation環境
```\begin{equation}```から```\end{equation}```までの間です。
一行だけの数式を書くのに使います。

#### eqnarray環境
```\begin{eqnarry}```から```\end{eqnarry}```までの間です。
複数行の数式を揃えて書くことができます。
**amsmathでは非推奨です！amsmathを使う際は以下のalignをつかいましょう！**

```=```の位置を揃える数式を書く際は以下のように、```&```で囲みます。
```latex:
\begin{eqnarray}
    a &=& b\\
    b &=& c\\
    a &=& c
\end{eqnarray}
```
```math
\begin{eqnarray}
    a &=& b \\
    b &=& c \\
    a &=& c \\
\end{eqnarray}
```

#### align環境
```\begin{align}```から```\end{align}```までの間です。
amsmathを使って複数行の数式を書くには基本的にこれを使いましょう。

```=```を揃えるには、```&```を前に置きます。
このとき、奇数番目の```&```は位置を揃えるため、偶数番目はタブ（数式を横並べにするときの区切り。これがないとどの列に揃えればいいかわからなくなってしまう）を表します。

```latex:
\begin{align}
    a &= b & x &= y & \alpha &= \beta\\
    b &= c & y &= z & \beta &= \gamma
\end{align}
```
```math
\begin{align}
    a &= b & x &= y & \alpha &= \beta\\
    b &= c & y &= z & \beta &= \gamma
\end{align}
```

#### alignat環境
```\begin{alignat}```から```\end{alignat}```までの間です。
上述align環境で、偶数番目の```&```の位置にスペースが空かない環境です。
方程式の変数部分を揃えるのに便利です。
**```\begin```の第二引数に、** ***(各行の```&```の個数)/2 +1*** **（小数点以下繰り上げ）を指定します。**

```latex:
\begin{alignat}{2}
  10 & x+{} & 2 & y=20 \\
  5 & x+{} & & y=10
\end{alignat}
```
```math
\begin{alignat}{2}
  10 & x+{} & 2 & y=20 \\
  5 & x+{} & & y=10
\end{alignat}
```

なお、このコードの$+$のあとの```{}```は、この$+$を二項演算子として扱うためのものです。
単項演算子（"$-x$"とかの"$-$"）と、二項演算子（"$x-y$"とかの"$-$"）は意味が違いますよね。前後の空白の空き方も違います。
基本的に$\mathrm{\LaTeX}$ではそれなりに使い分けてくれますが、二項演算子を単項演算子と解釈される場合があります。
そんな時は、演算子を数字や変数と```{}```で挟むことで、二項演算子として認識させることが出来ます。

#### flalign環境
align環境を、左右揃えにしようとする環境です。複数の数式を横並べにしようとするとめっちゃ左右に引き離されます。

#### gather環境
中央揃えにする環境です。

#### multline環境
一つの数式を複数行に書く環境です。
先頭行は左端、最終行は右端に揃うようになります。
```latex
\begin{multline}
    a+b+c+d+e+f+g+h+i+j+k+l\\
    +m+n+o+p+q+r+s+t+u+v+w+x+y+z\\
    +A+B+C+D+E+F+G+H+I+J+K+L+M\\
    +N+O+P+Q+R+S+T+U+V+W+X+Y+Z
\end{multline}
```
```math
\begin{multline}
    a+b+c+d+e+f+g+h+i+j+k+l\\
    +m+n+o+p+q+r+s+t+u+v+w+x+y+z\\
    +A+B+C+D+E+F+G+H+I+J+K+L+M\\
    +N+O+P+Q+R+S+T+U+V+W+X+Y+Z
\end{multline}
```

:::note
[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

### 数式に使うコマンド
#### ```{}```（波括弧だけ）
厳密にはコマンドじゃないけど、何気に大切なコマンドです。
これは、なにもない文字を意味するコマンドです。
え？なんのためにあるのかって？何もないところに対して何かをしたいときに使います。

すでに上で書いていますが、例えば、```+```を単項演算子として使うためには、数字や変数で挟む必要があります。ただ、何らかの理由で数字や変数以外のものが隣に来てしまうときに、```{}```で擬似的に挟むことで解決することができます。

他にも、すぐ下の項に書きましたが、下付き文字を前につけるときに、その下付き文字をつける文字としてこれを指定したりします。
#### 上付き文字・下付き文字
単に、```x^2```で$x^2$、```a_1```で$a_1$となります。

順列（パーミテーション）や組み合わせ（コンビネーション）のように、文字の前に下付き文字を付ける場合は```{}```を使います。
例えば、```{}_nP_r```とすれば、${}_nP_r$となります。
#### 記号
|コマンド|出力||コマンド|出力|
|----|----|----|----|----|
|\leq|$\leq$||\geq|$\geq$|
|\sim|$\sim$||\hat{x}|$\hat{x}$|
|\bar{x}|$\bar{x}$||\tilde{x}|$\tilde{x}$|
|\leftarrow|$\leftarrow$||\rightarrow|$\rightarrow$|
|\longleftarrow|$\longleftarrow$||\longrightarrow|$\longrightarrow$|
|\times|$\times$||\div|$\div$|
|\neq|$\neq$||\infty|$\infty$|
|\therefore|$\therefore$||\because|$\because$|

#### ギリシャ文字
```\pi```とすると$\pi$となります。
```\Pi```とすると$\Pi$となります。

```\alpha```とすると$\alpha$と出力されます。
しかし、```\Alpha```としても$A$とはなりません。アルファベットと同じ形のときは普通にアルファベットを使います。

#### 級数・和のシグマ
```\sum_{k=1}^{n}k```で

```math
\sum_{k=1}^{n}k
```

となります。

#### 積分記号のインテグラル
不定積分のインテグラルの場合、```\int```で$\int$となります。
定積分のインテグラルは、```\int_{b}^{a}```で$\int_{b}^{a}$となります。

#### 平方根のルート
```\sqrt{2}```で$\sqrt{2}$となります。

#### 単位などでローマン体を使う
基本的に数式内では文字はイタリック体になります。単位などを表すためにローマン体を表すには```\mathrm{}```を使います。
```27x\mathrm{\, cm}```で
![Screenshot_2022-12-31-22-19-37-007-edit_com.google.android.apps.docs.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819245/c9bba322-a6b9-e665-c1b1-7130e0aef334.jpeg)
となります。
（```\, cm```で細スペース+単位 を表現）

#### 分数
```\frac{a}{b}```で$\frac{a}{b}$となります。

#### 対数のlog・ln
```\log_2 x```で$\log_2 x$
```\ln x```で$\ln x$となります。

#### 括弧・絶対値
単に```(``` ```)```や```[``` ```]```、```|``` ```|```で囲みます。
ただ、{}はコマンドの引数を指定するものと混同しないように、```\{``` ```\}```を使います。

##### 括弧の大きさの自動調整
括弧の直前に```\left```や```\right```をつけることで大きさが自動で調整されます。
```latex
\left\{\frac{x}{2}\right\}
```
```math
\left\{\frac{x}{2}\right\}
```

#### 数式番号の手動指定
行末に```\tag{1.1}```と指定すれば、
```math
y=ax+b \tag{1.1}
```
のように指定できます。

:::note
[目次に戻る](#%E7%9B%AE%E6%AC%A1)
:::

# おわり
書くの疲れた。

使い方に関しては、ここに書いたこと以外のこともめっちゃできるんですが、基本的にはこんなかんじですかね。
気になったらググってみてください。僕も初心者なんでよく知りません。

何かあれば今後も追記していきます。
書き忘れとか語弊、間違いなどがあれば気軽に教えて下さい...