LaTeX+BibLaTeX+VSCodeでスッキリ環境構築 (Mac) (2024)

__文書作成ツールLaTeX[^LaTeX]の環境構築。参考文献の管理に便利なBibLaTeXまで一気に構築しよう。ここではLuaLaTeX[^LuaLaTeX]を選びます。__

## 環境
macOS Sequoia 15.0.1

## 手順
1. VSCodeを(Homebrewで)インストール
1. MacTeXをHomebrewでインストール
1. VSCodeにパッケージLaTeX Workshopを追加
1. VSCodeのsettings.jsonを編集

## VSCodeを(Homebrewで)インストール
直接入れてもHomebrewで入れても良い。私は後者を選んだ。
直接入れる場合は[@watamura「MacOSでVisual Studio Codeをインストールする手順」](https://qiita.com/watamura/items/51c70fbb848e5f956fd6)
を参照。
Homebrewで入れる場合を説明する。
Homebrew[^homebrewHP][^homebrew]自体のインストールは[@DaikiSuyama「Homebrewのインストール方法について詳細に解説する」](https://qiita.com/DaikiSuyama/items/5a2a96859b44595cba76)を参照。
ターミナルを開き、以下のコマンドを入力してMacTeXをHomebrewでインストール。
```
% brew install --cask visual-studio-code
```

## MacTeXをHomebrewでインストール
(ここから読む人のために)Homebrew[^homebrewHP][^homebrew]自体のインストールは[@DaikiSuyama「Homebrewのインストール方法について詳細に解説する」](https://qiita.com/DaikiSuyama/items/5a2a96859b44595cba76)を参照。

ターミナルを開き、以下のコマンドを入力してMacTeXをHomebrewでインストール。インストールには長時間かかる（私の環境では1時間程かかった）。
```
% brew install --cask mactex-no-gui
```
インストール開始後すぐにパスワードを要求されるので、自分のMacのパスワードを入力する。パスワードを求められるのは一度きり。
インストールが完了後、無事にインストールできたか確認するため、ターミナルを開き直して以下のコマンドを入力。
```
% which tex
```
ディレクトリが表示されたらインストール成功。


## VSCodeにLaTeX Workshopを追加
VSCodeを開いて左のメニューから拡張機能を選び、LaTeX Workshop(万年筆のアイコン)を検索、インストール。
インストール後VSCodeを再起動。

## VSCodeのsettings.jsonを編集
VSCodeの設定を`Cmd + ,`で開く(あるいは画面上のメニューバーからCode->基本設定->設定を選択)。
設定画面右上にアイコンが三つ並んでいるので一番左の「設定(JSON)を開く」を選択(ファイルに矢印の付いたアイコン)。`settings.json`が開く。
`settings.json`の一番外側の`{ }`の中に、以下のコードを追加して保存。
```settings.jsonに書き足すコード
    "terminal.integrated.env.osx": {
        "PATH": "/usr/local/texlive/2024/bin/universal-darwin:${env:PATH}"
    },
    "latex-workshop.latex.tools": [
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-lualatex",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "lualatex -> biber -> lualatex*2",
            "tools": [
                "lualatexmk",
                "biber",
                "lualatexmk",
                "lualatexmk"
            ]
        }
    ],
    "latex-workshop.latex.defaultRecipe": "lualatex -> biber -> lualatex*2",
    "latex-workshop.bibtex.engine": "biber"
```

参考として私のsettings.jsonを載せておきます。
<details><summary>(具体例)私のsettings.json</summary>


```settings.json
{
    "editor.fontSize": 16,
    "terminal.integrated.env.osx": {
        "PATH": "/usr/local/texlive/2024/bin/universal-darwin:${env:PATH}"
    },
    "latex-workshop.latex.tools": [
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-lualatex",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "lualatex -> biber -> lualatex*2",
            "tools": [
                "lualatexmk",
                "biber",
                "lualatexmk",
                "lualatexmk"
            ]
        }
    ],
    "latex-workshop.latex.defaultRecipe": "lualatex -> biber -> lualatex*2",
    "latex-workshop.bibtex.engine": "biber"
}
```
</details>

コードの内容は詳しく言及しませんが、ChatGPTに聞けば教えてくれます、たぶん。

## できたので使ってみる
やったね。早速使ってみよう。VSCodeで以下のtexファイルとbibファイルを同じフォルダ内に作って緑の矢印で実行してみる。その際``Skipping undefined tool "biber" in recipe "lualatex -> biber -> lualatex*2."``とエラーが出るが、これは問題ない。上手くいかない場合は下のコメントを見てほしい。

```check.tex
\documentclass{ltjsarticle}
\usepackage[backend=biber]{biblatex}

\addbibresource{references.bib}

\title{サンプル文書}
\author{あなたの名前}
\date{\today}

\begin{document}

\maketitle
これはサンプル文書です。文献を参照します~\cite{sample}。

\printbibliography[title=参考文献]

\end{document}
```

```references.bib
@article{sample,
    author = {山田 太郎},
    title = {サンプル論文},
    journal = {日本語ジャーナル},
    year = {2024},
    volume = {1},
    number = {1},
    pages = {1-10},
}
```
以下のように出力されたら成功。

![スクリーンショット 2024-11-03 8.58.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3925605/0775c4ef-fa67-fefc-13df-d70778f392ba.png)

## コメント
* 出力が上手くいかない場合、``setting.json``に書き足すコードの2行目``"PATH": "/usr/local/texlive/2024/bin/universal-darwin:${env:PATH}"``が間違っている可能性がある。特に``2024``の部分が違うと思われる。ディレクトリの名前をターミナル等で確認してほしい。
* 出力時のエラー``Skipping undefined tool "biber" in recipe "lualatex -> biber -> lualatex*2."``は、``biber``なんて知らないよ、と言っている。だが、途中で自動的に``biber``を見つけてくるので問題なく生成される。

## 参考にさせていただいた記事
本文中で脚注をつけなかったもの

https://qiita.com/juno_rmks/items/1a31da443b70d940de7f

https://qiita.com/DaikiSuyama/items/d463c5b7afdabc5fcde5#fn-11

加えて、settings.jsonやLaTeXのサンプルコードはChatGPTにより作成したもの、あるいはそれを編集したものであることを明記しておきます。

[^LaTeX]:[TeX Wiki「LaTeX入門」](https://texwiki.texjp.org/LaTeX入門)
[^LuaLaTeX]:[@Daiji256「LuaLaTeX のすゝめ」](https://qiita.com/Daiji256/items/9afbfa9f822629d3b995)
[^homebrewHP]:[Homebrewのホームページ](https://brew.sh/ja/)
[^homebrew]:[@omega999「homebrewとは何者か。仕組みについて調べてみた」](https://qiita.com/omega999/items/6f65217b81ad3fffe7e6)