📝

LaTeX環境構築の手順【VSCode / pLaTeX / upLaTeX / LuaLaTeX / pdfLaTeX / BiBTeX】

2025/02/04に公開

はじめに

本記事では、\LaTeX の環境構築の手順を説明します。
Mac を想定していますが、Windows などでもほぼ同じ手順で実行できます。

卒業論文や修士論文を LaTeX で執筆する学生は多いです。特に、理系分野の学生は、Microsoft Word ではなく LaTeX で執筆せざるをえません。

オンライン上で LaTeX を執筆する環境としては、Cloud LaTeXOverleaf があります。Cloud LaTeX はデフォルトで日本語に対応しており、VSCode の拡張機能で簡単に連携できるので、おすすめです。
一方、卒業論文・修士論文を執筆する時期になると、アクセスが集中し、サーバダウンがときどき起こります。
したがって、ローカルに LaTeX の執筆環境を整えておくのは重要です。

1. LaTeX をインストールする

  • MaxTeXHomebrew でインストールする
    • GUI アプリケーションなしをインストールする
  • ターミナルに入力する
  • 時間がかかる(20 分ほど)
  • 途中、パスワードの入力が必要になる
brew install mactex-no-gui --cask
exec $SHELL -l

2. LaTeX をアップデートする

  • MaxTeX をアップデートする
  • 時間がかかる(30 分ほど)
sudo tlmgr update --self --all

3. デフォルトを A4 用紙に設定する

sudo tlmgr paper a4

4. VSCode の拡張機能 LaTeX Workshop をインストールする

  • VSCode で拡張機能 LaTeX Workshop を検索し、インストールする

5. setting.json を編集する

  • + , で設定画面に移動し、 右上のボタンから setting.json を開く

5.1. LaTeX エンジンの設定を記入する

  • pLaTeX
  • upLaTeX
  • LuaLaTeX
  • pdfLaTeX
  • pBibTeX
  • BibTeX
setting.json
// ----- LaTeX エンジンの設定 ----- //
"latex-workshop.latex.tools": [
    { // pLaTeX
        "name": "platex",
        "command": "ptex2pdf",
        "args": [
            "-interaction=nonstopmode",
            "-l",
            "-ot",
            "-kanji=utf8",
            "-synctex=1",
            "%DOC%"
        ],
        "env": {
            "PATH": "/Library/TeX/texbin"
        }
    },
    { // upLaTeX
        "name": "uplatex",
        "command": "ptex2pdf",
        "args": [
            "-interaction=nonstopmode",
            "-l",
            "-u",
            "-ot",
            "-kanji=utf8",
            "-synctex=1",
            "%DOC%"
        ],
        "env": {
            "PATH": "/Library/TeX/texbin"
        }
    },
    { // pBibTeX
        "command": "pbibtex",
        "args": ["%DOCFILE%", "-kanji=utf8"],
        "name": "pbibtex",
        "env": {
            "PATH": "/Library/TeX/texbin"
        }
    },
    { // LuaLaTeX
        "name": "lualatexmk",
        "command": "latexmk",
        "args": [
            "-lualatex",
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-outdir=%OUTDIR%",
            "%DOC%"
        ],
        "env": {
            "PATH": "/Library/TeX/texbin"
        }
    },
    { // pdfLaTeX
        "name": "pdflatex",
        "command": "pdflatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%DOC%"
        ],
        "env": {
            "PATH": "/Library/TeX/texbin"
        }
    },
    { // BibTeX
        "name": "bibtex",
        "command": "bibtex",
        "args": [
            "%DOCFILE%"
        ],
        "env": {
            "PATH": "/Library/TeX/texbin"
        }
    },
],

5.2. LaTeX レシピの設定を記入する

  • 上記の「5.1. LaTeX エンジンの設定を記入する」に続けて記入する
  • pLaTeXBiBTeX あり)
  • pLaTeXBiBTeX なし)
  • upLaTeXBiBTeX あり)
  • upLaTeXBiBTeX なし)
  • LuaLaTeX
  • pdfLaTeXBiBTeX あり)
  • pdfLaTeXBiBTeX なし)
setting.json
// ----- LaTeX レシピの設定 ----- //
"latex-workshop.latex.recipes": [
    { // pLaTeX(BiBTeX あり)
        "name": "pLaTeX pBibTeX",
        "tools": ["platex", "pbibtex", "platex", "platex"]
    },
    { // pLaTeX(BiBTeX なし)
        "name": "pLaTeX",
        "tools": ["platex"]
    },
    {  // upLaTeX(BiBTeX あり)
    "name": "upLaTeX pBibTeX",
    "tools": ["uplatex", "pbibtex", "uplatex", "uplatex"]
    },
    { // upLaTeX(BiBTeX なし)
    "name": "upLaTeX",
    "tools": ["uplatex"]
    },
    { // LuaLaTeX
        "name": "lualatex",
        "tools": [
            "lualatexmk"
        ]
    },
    { // pdfLaTeX(BibTeX あり)
        "name": "pdfLaTeX BibTeX",
        "tools": [
            "pdflatex",
            "bibtex",
            "pdflatex",
            "pdflatex"
        ]
    },
    { // pdfLaTeX(BibTeX なし)
        "name": "pdfLaTeX",
        "tools": [
            "pdflatex"
        ]
    },
],

5.3. コンパイル時の設定を記入する

  • 上記の「5.2. LaTeX レシピの設定を記入する」に続けて記入する
setting.json
// ----- コンパイル時の設定 ----- //

// ⌘ + s でファイル保存時に自動でコンパイルする
"latex-workshop.latex.autoBuild.run": "onSave",

// 直近で使用したレシピでコンパイルする
"latex-workshop.latex.recipe.default": "lastUsed",

// PDF(プレビュー)
// PDF を VSCode で開く
"latex-workshop.view.pdf.viewer": "tab",
// PDF の幅を調整する
"latex-workshop.view.pdf.zoom": "page-width",
// PDF を右側に開く
"latex-workshop.view.pdf.tab.editorGroup": "right",

// LaTeX Workshop のインテリセンスを有効にする
"latex-workshop.intellisense.package.enabled": true,

// 不要なファイルを削除する
"latex-workshop.latex.clean.method": "glob",
"latex-workshop.latex.autoClean.run": "onBuilt",
"latex-workshop.latex.clean.fileTypes": [
    "%DOCFILE%.acn",
    "%DOCFILE%.acr",
    "%DOCFILE%.alg",
    "%DOCFILE%.aux",
    "%DOCFILE%.bbl",
    "%DOCFILE%.blg",
    "%DOCFILE%.dvi",
    "%DOCFILE%.fdb_latexmk",
    "%DOCFILE%.fls",
    "%DOCFILE%.glg",
    "%DOCFILE%.glo",
    "%DOCFILE%.gls",
    "%DOCFILE%.idx",
    "%DOCFILE%.ind",
    "%DOCFILE%.lof",
    "%DOCFILE%.lot",
    "%DOCFILE%.nav",
    "%DOCFILE%.out",
    "%DOCFILE%.snm",
    "%DOCFILE%.toc",
    "%DOCFILE%.vrb"
],

6. VSCode に LaTeX スニペットを設定する

  • VSCode の左下の設定ボタンから「Snippets(スニペット)」を開く
  • LaTeX と入力し、latex.json を開く
  • スニペットを設定しておくと、毎回、同じコードを入力する手間が省ける
latex.json
"my_latex_template": {
    "prefix": "my_template",
    "body": [
        "\\documentclass[${1:a4paper, 11pt}]{${2:jsarticle}}",
        
        // よく使うパッケージを設定
        "\\usepackage{amsmath}",
        "\\usepackage{amssymb}",
        "\\usepackage[dvipdfmx]{graphicx}",
        "\\usepackage{enumitem}",
        "\\usepackage[nobreak]{cite}",
        "${3}",
        "",
        "\\begin{document}",
        "",
        "\\title{${4}}",
        "\\author{${5}}",
        "\\date{${6:\\today}}",
        "\\maketitle",
        "",
        "\\section{はじめに}",
        "$0",
        "",
        "\\end{document}",
        "",
    ],
    "description": "LaTeX テンプレート"
}

7. 実際にローカルで LaTeX を執筆する

  • VSCode で空の LaTeX ファイルを作成する
  • my_template と入力すると、上記の「6. VSCode に LaTeX スニペットを設定する」で設定したスニペットが自動入力される
  • タイトルや本文などを適当に記入する
  • VSCode の左側に表示されている \TeX のボタンを押す
  • 今回は BiBTeX は使用していないため、「Build LaTeX project(LaTeX プロジェクトをビルド)」から、「Recipe: pLaTex (レシピ:pLaTex)」もしくは「Recipe: upLaTex(レシピ:upLaTex)」を実行する
  • 「View LaTeX PDF(LaTeX PDF を表示)」を実行すると、右側に PDF が表示される
  • Recipe terminated with fatal error: spawn ptex2pdf ENOENT. というエラーが出る場合は、後述の「8. エラーが出る場合」を確認する
sample.tex
\documentclass[a4paper, 11pt]{jsarticle}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[dvipdfmx]{graphicx}
\usepackage{enumitem}
\usepackage[nobreak]{cite}


\begin{document}

\title{\LaTeX 環境構築の手順}
\author{著者名}
\date{\today}
\maketitle

\section{はじめに}
本稿では,\LaTeX の環境構築の手順を説明する.

\end{document}

8. エラーが出る場合

8.1. Recipe terminated with fatal error: spawn ptex2pdf ENOENT.

  • ptex2pdf が設定と異なる場所にあるというエラー
  • ターミナルで ptex2pdf の正しい場所を探す
which ptex2pdf
  • 「5.1. LaTeX エンジンの設定を記入する」で記入した setting.json の一部を修正する
  • pLaTeXupLaTeX 以外も同様に修正しておく
setting.json
"env": {
    "PATH": "<ptex2pdf の正しい場所>"
}

8.2. LuaLaTeX で env: perl: no such file or directory

  • ターミナルで latexmk -lualatex -synctex=1 -interaction=nonstopmode sample.tex を実行して成功するか確認する
  • 成功するなら、perl の場所を探す
which perl
  • 「5.1. LaTeX エンジンの設定を記入する」で記入した setting.json の一部を修正する
setting.json
{ // LuaLaTeX
    "name": "lualatexmk",
    "command": "latexmk",
    "args": [
        "-lualatex",
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-outdir=%OUTDIR%",
        "%DOC%"
    ],
    "env": {
        "PATH": "/Library/TeX/texbin:<perl の場所>"
    }
},

参考

https://qiita.com/SUZUKI_Masaya/items/7fb5509006163e7e671f

https://zenn.dev/raychan/articles/dbbe6a0bd13086

https://qiita.com/Rx-K8/items/63e682dee034171ddc73

https://qiita.com/rainbartown/items/d7718f12d71e688f3573

https://blog.n-hassy.info/2021/05/vscode-latex-enoent/

https://zap.hatenablog.jp/entry/2023/04/13/015117

Discussion