VS Code × LaTeX環境構築を.isoイメージからしてみる

本記事では **TeX Live 2025をISOから導入**し，さらに **VS Codeで快適にLaTeXを書く環境**を構築します．

## はじめに
TeX Liveの導入とVS CodeでのLaTeX環境構築については，いくつかの素晴らしい記事を参考にさせていただきました．特に`.latexmkrc`のカスタマイズや`settings.json`の編集のあたりは，先人の知見がなければ途方に暮れていたと思います…

以下に感謝とともにリンクを掲載させていただきます（特に初心者の方には非常に参考になると思います）：

[【自研究室向け】LaTeX+VSCode環境構築 2023年版](https://qiita.com/fuku_uma/items/e5ad46125a9612320273)
→ LaTeX Workshop の設定周りの詳細がわかりやすい

[VSCodeから編集できるLaTeX環境構築 Windows編【環境構築】【Windows】【LaTeX】](https://qiita.com/namitech7373/items/6d1639bd01d151baa03c)
→ .latexmkrc の導入について詳しい

本記事は上記をもとに，TeX LiveをISOイメージから導入し，VS Codeで快適に魔法を唱えるまでの全過程を（おもに自分用）備忘録としてまとめたものです．

## Step 0: 背景・前提

研究論文執筆・メモ書きのためにLaTeXの導入を試みたところ，ウイルスバスターに怒られ，そののちのミラーサイトへの接続がうまくいかなかった．
研究用デスクトップPCのため，家の環境でインストールを行うこともできず．．．というところで.isoイメージを用いれば，tex環境が構築できるのでは？？？ということで，初めて.isoイメージを用いてみることに．

VS Codeについてはインストール済みであることを想定しています．まだの方は，先に済ましておいてください．

## Step 1: TeX Live ISO のダウンロード

- 公式ミラー（CTAN）からダウンロード：  
  `https://mirror.ctan.org/systems/texlive/Images/texlive2025.iso`

## Step 2: ISO をマウント

1. ダウンロードした `texlive2025.iso` を右クリック
2. 「マウント」を選択

仮想DVDドライブ（例：`E:`）としてPCへマウントされる．

### 警告ダイアログが出た場合：
> 「このファイルを開きますか？」  
> → 「開く（O）」を選択．

## Step 3: インストーラ（`.bat`）を叩く

1. マウントされたドライブ内の `install-tl-windows.bat` を探す
2. **右クリック →「管理者として実行」**

TeX Live インストーラ（GUI）が起動する．

## Step 4: インストールオプションを選択

- インストール先は以下のように設定推奨：  
  `C:\texlive\2025`

### 推奨オプション：
- 「TeXworks をインストール」
- 「PATH を通す」

それぞれにチェックをつけて「インストール開始」で処理を進める．

## Step 5: セットアップ確認

以下のコマンドを `cmd` または `PowerShell` で実行：

```sh
tlmgr --version
pdflatex test.tex
```

出力が返れば TeX Live の動作確認完了．

## Step 6: .latexmkrcの作成

userディレクトリ直下に`.latexmkrc`を作成します．
作成方法については，[参考記事](https://qiita.com/namitech7373/items/6d1639bd01d151baa03c)をご覧ください．
記載の通り，そのままコピペでOKです．

自分は`lua`をメインで使うので，

```.latexmkrc
$latex = 'lualatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S';
$pdf_mode = 1;  # PDF を直接出すので 1
```

に少し書き換えて使っています．

## Step 7: settings.jsonへの追記

ここまで終わったら，VS Codeを開きます．`Ctrl + Shift + P`で上の入力ウィンドウが開くので，`settings.json`と入力して出てくる「Open User Settings」を開きます．
ここからVS Codeの設定ファイルにあたる`settings.json`を編集していきます．

もともと`settings.json`に記載がある場合もあると思いますので，その場合は追記して下さい．

[参考記事](https://qiita.com/fuku_uma/items/e5ad46125a9612320273)などを読みながら設定ファイルを書き込みます．

```settings.json
{
  // ---------- Language ----------
  "[tex]": {
    "editor.suggest.snippetsPreventQuickSuggestions": false,
    "editor.tabSize": 2
  },
  "[latex]": {
    "editor.suggest.snippetsPreventQuickSuggestions": false,
    "editor.tabSize": 2
  },
  "[bibtex]": {
    "editor.tabSize": 2
  },

  // ---------- LaTeX Workshop ----------
  "latex-workshop.intellisense.package.enabled": true,

  "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"
  ],

  // Define LaTeX build tools
  "latex-workshop.latex.tools": [
    {
      "name": "pdflatex",
      "command": "pdflatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "latexmk",
      "command": "latexmk",
      "args": [
        "-silent",
        "-outdir=%OUTDIR%",
        "%DOC%"
      ]
    },
    {
      "name": "lualatex",
      "command": "lualatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "uplatex",
      "command": "uplatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "dvipdfmx",
      "command": "dvipdfmx",
      "args": [
        "-o",
        "%DOCFILE%.pdf",
        "%DOCFILE%.dvi"
      ]
    }
  ],

  // Define build recipes
  "latex-workshop.latex.recipes": [
    {
      "name": "latexmk",
      "tools": ["latexmk"]
    },
    {
      "name": "pdflatex",
      "tools": ["pdflatex"]
    },
    {
      "name": "lualatex",
      "tools": ["lualatex"]
    },
    {
      "name": "uplatex + dvipdfmx",
      "tools": [
        "uplatex",
        "dvipdfmx"
      ]
    }
  ],

  // Viewer and build behavior
  "latex-workshop.view.pdf.viewer": "tab",
  "latex-workshop.latex.autoBuild.run": "onSave"
}
```

以上のように記載しまして，`setting.json`を閉じてVS Codeを再起動しておきます．

## Step 8: ショートカットキーの追加

`settings.json`にはレシピを複数追加しています．僕は論文だったりメモだったり，扱う言語も英語と日本で別のフォーマットを使ったりするので，`lualatex`と`pdflatex`等を使い分けたりします．なので，コンパイル時にレシピを選択できるようしています．そのためのショートカットキーを作成します（参考記事の`.latexmkrc`だとデフォルトはlatex → dvipdfmxだからVS Codeの右上矢印でビルドするとこの手順になるはず）．

実際にショートカットキーを作成しましょう．以下の手順で進めます．

1. `Ctrl + K`, `Ctrl + S` を押して **キーボードショートカット設定** を開く
2. 上部の検索バーに `latex recipe` と入力
3. `LaTeX Workshop: Build with recipe` →「Keybinding」をダブルクリック
4. 例えば以下のように入力：

* キー：`Ctrl + L Ctrl + P`
* 「OK」で保存

これで `Ctrl + L → Ctrl + P` でレシピ選択メニューが開けるようになります．

---

### 補足: よく使う関連コマンド

| コマンド名                 | 説明          | 例のショートカット        |
| --------------------- | ----------- | ---------------- |
| `Build LaTeX project` | 既定レシピでコンパイル | `Ctrl + Alt + B` |
| `View LaTeX PDF file` | プレビュー表示     | `Ctrl + Alt + V` |
| `Build with recipe`   | レシピ選択メニュー表示 | ← **今回設定**     |

## Step 9: 試しに文書を作成

適当なディレクトリで，以下の文章をコピペしてみる．

```tex_check.tex
\documentclass{ltjsarticle} % Lua
\usepackage{amsmath, amssymb}
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{hyperref}
\usepackage{xcolor}

% Font
\setmainfont{Yu Mincho}  % Windows
%\setmainfont{Hiragino Mincho ProN} % macOS

\title{まほうの LuaLaTeX テスト}
\author{朝日奈みらい \& 十六夜リコ}
\date{\today}

\begin{document}

\maketitle

\section*{魔法つかいプリキュア！とは？}
\textbf{朝日奈みらい} と \textbf{十六夜リコ} のふたりが繰り広げる，魔法と友情の物語です．\\

魔法の呪文は… \textcolor{violet}{\textbf{キュアップ・ラパパ！}}

\bigskip

\begin{center}
\includegraphics[width=0.3\linewidth]{example-image-a}
\end{center}

\vspace{1em}
\noindent
ちなみに，数学の魔法も使えます：

\[
f(x) = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n)!} x^{2n} = \cos x
\]

\section*{webサイトへのリンクル魔法}
\href{https://www.toei-anim.co.jp/tv/mahotsukai_precure/}{公式サイトへのゲートはこちら！}

\section*{TikZで魔法陣（なんちゃって）}

\begin{center}
\begin{tikzpicture}
  \draw[very thick, violet] (0,0) circle (2cm);
  \foreach \x in {0,60,...,300} {
    \draw[thick, magenta] (0,0) -- (\x:2cm);
  }
  \node at (0,0) {\textbf{\Huge★}};
\end{tikzpicture}
\end{center}

\bigskip
\begin{center}
\textcolor{purple}{\Large これであなたも魔法つかい！}
\end{center}

\end{document}
```

`Ctrl + S`で保存してから，`Ctrl + L, Ctrl + P`でビルドするコマンドを選択します．
今回は`lua`なので，`lualatex`を選択．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573982/4382ba72-5f17-42db-b165-92d39d16eea6.png)

以上のようにビルドできます．

---

.isoイメージからインストールするのは初めてでしたが，初期環境構築の手順としてはやることはほとんど変わりません．
VS CodeでLaTeXがかけると結構はかどりますね．備忘録としてこの記事を残しておきます．