0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode+GitHubで快適なLatex環境を構築する

Last updated at Posted at 2025-07-24

1. 環境設定

VS CodeはLaTeX環境としておすすめ。「LaTeX Workshop」によるリアルタイムPDFプレビュー、自動補完、エラー表示が可能で、効率的に作業が進められる。
さらに、軽量で動作が速く、拡張機能やAI連携、Gitによるバージョン管理も可能。

参考


1.1 VSCodeとLatexのインストール

MacOSの場合
homebrewでいずれもインストールできます。ターミナルから以下のコードを実行してください。

# VSCode の導入
brew install visual-studio-code --cask 
# LaTeX環境(GUI無)の導入
brew install --cask mactex-no-gui 
# 管理者権限でLaTeXパッケージの更新
sudo tlmgr update --self --all 
# 管理者権限で用紙サイズの変更
sudo tlmgr paper a4 

MacOSでhomebrewを使っていない人はいますぐ使えるようになってください。
これが使えるようになると、今後の全ての環境構築が圧倒的に楽になります。

Windowsの場合
動作確認をしていないので、以下の資料を読んでインストールしてください。
【大学生向け】LaTeX完全導入ガイド Windows編 (2022年)


1.2 VSCodeの設定

初めてVSCodeを使う時は、日本語に設定しておくと楽。
Visual Studio Code(VSCode)の設定をしてみた

  1. 左の「拡張機能」タブから「Latex-Workshop」をインストール
  2. 左下の歯車マークから「設定」を開き、右上の「設定(JSON)を開く」をクリック
  3. settings.jsonが開かれるので、下記のコードをコピー&ペーストする。

Windowsの場合はこちらを参考にする。

{
  "latex-workshop.latex.recipes": [
    {
      // LuaLaTeX レシピ
      "name": "lualatex",
      "tools": [
        "lualatex",
        "lualatex"
        // ,"mvpdf"
        // ,"mvlog"
        // ,"delete"
      ]
    },
    {
      // 日本語用LuaLaTeX+pbibtexレシピ
      "name": "lualatex+biber",
      "tools": [
        "lualatex",
        "biber",
        "lualatex",
        "lualatex"
        // ,"delete"
      ]
    },
    {
      // 英語用LuaLaTeX+bibtexレシピ
      "name": "lualatex+bibtex",
      "tools": [
        "lualatex",
        "bibtex",
        "lualatex",
        "lualatex"
        // ,"delete"
      ]
    },
    {
      //日本語用pLatexレシピ
      "name": "platex+pbibtex+dvipdfmx",
      "tools": [
        "platex",
        "pbibtex",
        "platex",
        "dvipdfmx",
        // "move",
        "delete"
      ]
    },
    {
      //日本語用pLatexレシピ(引用文献除く)
      "name": "platex+dvipdfmx",
      "tools": [
        "platex",
        "dvipdfmx",
        // "move",
        "delete"
      ]
    }
  ],
  "latex-workshop.latex.tools": [
    {
            "name": "lualatex",
            "command": "lualatex",
            "args": [
                "-file-line-error",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-halt-on-error",
                "-output-directory=%OUTDIR%",
                "%DOCFILE%.tex"
            ],
            "env": {}
        },
        {
            "name": "platex",
            "command": "platex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-kanji=utf8",
                "-shell-escape",
                "%DOCFILE%.tex"
            ]
        },
        {
            "name": "pbibtex",
            "command": "pbibtex",
            "args": [
                "-kanji=utf8",
                "%DOCFILE%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        },
        {
            "name": "biber",
            "command": "biber",
            "args": [
                "--output-safechars",
                "--input-encoding=utf8",
                "--output-directory=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {
            "name": "dvipdfmx",
            "command": "dvipdfmx",
            "args": [
                "%DOCFILE%.dvi"
            ]
        },
        {
            "name": "mendex",
            "command": "mendex",
            "args": [
                "-r",
                "-c",
                "-g",
                "-s",
                "dot.ist",
                "-p",
                "any",
                "%DOCFILE%.idx"
            ]
        },
        {
            "name": "mvpdf",
            "command": "mv",
            "args": [
                "%DOCFILE%.pdf",
                "%OUTDIR%"
            ]
        },
        {
            "name": "mvlog",
            "command": "mv",
            "args": [
                "%DOCFILE%.aux",
                "%DOCFILE%.bbl",
                "%DOCFILE%.blg",
                "%DOCFILE%.dvi",
                "%DOCFILE%.idx",
                "%DOCFILE%.ilg",
                "%DOCFILE%.ind",
                "%DOCFILE%.lof",
                "%DOCFILE%.log",
                "%DOCFILE%.lot",
                "%DOCFILE%.toc",
                "%DOCFILE%.synctex.gz",
                "%DOCFILE%.out",
                "%OUTDIR%/."
            ]
        },
        {
            "name": "delete",
            "command": "rm",
            "args": [
                "-f",
                "%DOCFILE%.aux",
                "%DOCFILE%.bbl",
                "%DOCFILE%.blg",
                "%DOCFILE%.dvi",
                "%DOCFILE%.idx",
                "%DOCFILE%.ilg",
                "%DOCFILE%.ind",
                "%DOCFILE%.lof",
                "%DOCFILE%.log",
                "%DOCFILE%.lot",
                "%DOCFILE%.toc",
                "%DOCFILE%.synctex.gz",
                "%DOCFILE%.out"
            ]
        }
    ],
    "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",
        "_minted*",
        "*.nav",
        "*.snm",
        "*.vrb",
    ],
    "latex-workshop.latex.autoClean.run": "onBuilt",
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.latex.autoBuild.run": "onSave", //.tex ファイルの保存と同時に自動的にビルドを実行
    "[latex]": {
        "files.autoSave": "off", //.texファイルを自動保存
        "editor.formatOnSave": false,
        "editor.defaultFormatter": "James-Yu.latex-workshop",
        "editor.wordWrap": "on",
        "editor.wordSeparators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?。.、,()「」『』[]{}《》てにをはがのともへでや ",
        "editor.tabSize": 2,
        "editor.insertSpaces": true,
        "editor.detectIndentation": false,
        "editor.suggestSelection": "recentlyUsedByPrefix",
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        "editor.quickSuggestions": {
        "other": true,
        "comments": false,
        "strings": false
        },
        "editor.bracketPairColorization.enabled": true,
        "editor.unicodeHighlight.invisibleCharacters": true,
        "editor.unicodeHighlight.allowedCharacters": {
        ",": true,
        ".": true,
        "!": true,
        "?": true,
        "[": true,
        "]": true,
        "{": true,
        "}": true,
        "<": true,
        ">": true,
        },
        "editor.stickyScroll.enabled": true,
    },
    "[bibtex]": {
        "editor.tabSize": 2
    },
    "latex-workshop.intellisense.package.enabled": true,
    "latex-workshop.latex.outDir": ".", // PDFなどの生成ファイルの保存場所
    "latex-workshop.message.log.show": true,
    "editor.unicodeHighlight.allowedCharacters": {
        ",": true,
        ".": true
    },
    "latex-workshop.latex.recipe.default": "first",
    "latex-workshop.formatting.latex": "latexindent",
    "latex-workshop.formatting.latexindent.path": "/usr/local/bin/latexindent",
    "latex-workshop.formatting.latexindent.args": [
        "-c",
        "%DIR%/log",
        "%TMPFILE%",
        "-l",
        "%DIR%/latexindent",
        "-r"
    ]
}

2. 運用方法

2.1 Latex専用ソフトやOverLeafとの違い

何故「VSCode + Github」を使った方が良いのか?

  1. バージョン管理が容易
    • 過去の変更履歴を保存し、特定のバージョンに戻すことが可能。
    • 変更点が明確になり、誰が何を修正したかを把握できる。
  2. コンパイルが早い
    • OverLeafとは違ってローカルPCでコンパイルを行う。
    • 全ての機能を無料で利用できる。
  3. バックアップとして利用可能
    • GitHubにリポジトリを保存することで、データが安全に保管される。
    • ローカルPCのトラブルやデータ消失のリスクを軽減。
  4. 複数デバイスでの作業が可能
    • クラウド上のリポジトリを利用することで、どのデバイスからでも最新状態にアクセスできる。
    • 自宅や研究室など、環境を問わず作業を続行可能。
  5. GitHub copilotの援助
    • 分からないコードやエラーに対して、説明や修正をVSCode内で求められる。
    • コードを書き始めると、次に書くべきコードを予測して提案してくれる。
  6. 文献管理ツールとの連携
    • Zoteroなどの文献管理ツールを参照可能
    • 引用文献リストが自動で更新される

Latex専用ソフトやOverLeafとの違い

観点 LaTeX専用ソフト(TeXworks, TeXstudioなど) VSCode + GitHub Overleaf
機能性 ○(LaTeX用に最適化された多機能)
補完・構文ハイライト・PDF表示など標準装備
◎(拡張機能で柔軟に対応)
LaTeX Workshopなどによる高度な機能追加可
◎(オンラインで即時PDF出力、パッケージ自動管理など)
使いやすさ ○(インストールすればすぐに使えるが、設定に慣れが必要) △(初期設定がやや複雑、拡張機能・ビルド設定が必要) ◎(アカウント登録すればすぐ利用可能、GUIも直感的)
安定性 ◎(ローカル実行のため外部要因に左右されない) ◎(ローカル環境に依存。Git操作によるミスの可能性あり) ○(インターネット接続が必要、混雑時に遅延やエラーの可能性)
習熟のしやすさ ○(基本的なLaTeX操作は習得しやすいが、エラー対応は自己解決が前提) △(GitやVSCode、CLIの知識が求められる) ◎(テンプレート・ヘルプ・エラーメッセージが充実)
共同作業 △(メールでファイル共有、Gitがないと不便) ◎(GitHubとの連携でバージョン管理・共同編集が可能) ◎(複数人でリアルタイム編集可能、コメント機能あり)
カスタマイズ性 ○(一部UIやビルド設定が変更可能) ◎(ほぼ無限、設定ファイルや拡張機能で柔軟に対応) △(自由度は低め、Overleaf側の制限あり)
パッケージ管理 △(TeX Live/MiKTeXなどを別途更新) △(同上) ◎(自動で依存パッケージを取得)

総合評価(タイプ別おすすめ)

  • 初心者・短期間でレポートや論文を書く人:→ Overleaf
    → 手間なく使えてテンプレートも豊富。日本語設定も簡単。
  • 長期的にLaTeXに取り組む人(研究者・学生):→ VSCode + GitHub
    → 習熟すれば最も強力。バージョン管理・共同研究に最適。
  • ネット環境が不安定 or 完全ローカルで作業したい人:→ TeXstudioなどの専用ソフト
    → 高い安定性と応答性が魅力。パッケージ管理はやや手間。

Gitの使い方については以下を参照

2.2 テンプレートのダウンロード

latexを利用する際は、公開されているテンプレートを利用することをおすすめする。

筆者が公開しているのは以下。

  1. zipファイルを直接ダウンロードする
    1. latex-kobe-templateにアクセスする
    2. 緑色の「< > Code▽」をクリックし、「Download ZIP」を実行
  2. 【おすすめ】Githubからフォーク(fork)
    1. latex-kobe-templateにアクセスする
    2. 「< > Code▽」の右上にある「Fork」をクリックし、latex-kobe-templateをコピーした新たなレポジトリ(ホストは自身)を作成する
    3. 新たなレポジトリをgit cloneでローカルに読み込む

2.3 latexのコンパイル

main.texをコンパイルしてPDFファイルを作成する方法は大きく2つ。

  1. latex-workshopタブから実行する
    1. 任意のtexファイルを開く
    2. 左のタブに「TEX」と表記されたlatex-workshopのタブをクリックして開く
    3. 「コマンド」内の「LaTeXプロジェクトをビルド」をクリックでPDFを更新
    4. 「LaTeX PDFを表示」をクリックしてPDFを開く
  2. texファイルを保存して自動更新する
    1. 任意のtexファイルを開く
    2. 「control + S」でファイルを保存する

settings.jsonの設定で、保存時に自動でPDFが保存される。
動作が重いときは、settings.jsonの"latex-workshop.latex.autoBuild.run"を"off"にする。
もしくは、main.texを\documentclass[report, 12pt, a4paper, draft]{jsbook} にしてdraftモードを有効にし、画像の出力を省略する。

2.4 Overleafとの連携

OverLeafの有料ライセンス(一般 $ 15/月、学生 $ 9/月)もしくは組織契約ライセンスがあれば、GitHub経由でOverLeafと接続できる。OverLeafはブラウザ上で起動するオンラインLatex編集ツールで、GitHub連携によって以下のような利点がある。

  • 共同編集がしやすい
    • 環境に左右されないブラウザ上での共同編集・コメント交換が可能
    • 定期的にGitHubと同期してバックアップ
  • 状況に合わせたコンパイル
    • OverLeafの簡易的なプレビュー
    • VS Codeでコンパイルをより早く実行
  • 豊富なテンプレートが利用可能
    • OverLeafではテンプレートが配布されており、直接プロジェクトを立ち上げ可能
    • テンプレートには、論文・CV・スライド資料などが提供

参考


3. 参考文献の作り方

3.1 BiBTeXの使い方

BiBTeXとは、Latexの参考文献用のデータベースで、通常.bibファイルで管理する。bibファイルを直接編集することはなく、ZoteroやPapershipでまとめて出力する。latex内では本文中で引用された文献のみが目録に登録されるので、細かい文献管理が不要になる。

参考

3.2 natbibライブラリの使い方

natbibとは、文献管理を目的としたlatexライブラリの一つで、\usepackage{natbib}で利用可能になる。  
\usepackage[options]{natbib}\setcitestyle{options}で設定ができる。

詳しい設定方法は https://gking.harvard.edu/files/natnotes2.pdf を参照。

  • \renewcommand{\bibname}{参考文献}
    • 文献目録のタイトルを「参考文献」にする
  • \setcitestyle{super,sort&compress,open={},close={)}}
    • "super"で、右肩上がり数字(山田 (2020) 3) )にする。
    • "open={},close={)}"で、「3)」のスタイルにする。
  • \setcitestyle{authoryear}:
  • latex-kobe-templateの場合

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?