💻

macOS + VSCode での LaTeX 環境構築

2022/12/03に公開

この記事は過去に Qiita に投稿した記事を移動したものです.

1 前提

1.1 この記事の目的

過去1年間、5回ほど LaTeX の環境構築を試み5回失敗し6回目で遂に導入に成功しました。次やる時にまた苦しみたくないのでメモを残しておきます。

1.2 手許環境

  • macOS Big Sur 11.3
  • Visual Studio Code 1.57.1

2 LaTeX のインストール

今回は Homebrew を使ってインストールを行いました。

2.1 Homebrew がインストールされていない場合

Homebrew 公式 に次のようなコマンドが載っているのでこれをコピペしてターミナルで実行します。最新のコマンドは以下とは異なっている場合があるので、必ず公式サイトから取ってくるようにしてください。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrew は CUI 中心のパッケージ管理ツールなので、今回は GUI にも対応できる Homebrew-cask というものを使用します。最近の OS だと特に何もしなくても使えるようですが、古いバージョンだと上記のコマンドで一緒に入っていない可能性があります。その場合はターミナルで

$ brew install cask

を実行します。

2.2 LaTeX を入れる

LaTeX を入れていきます。VSCode でファイル編集を行いたいので、ここでは GUI アプリが一緒になっていないものをインストールします。

$ brew install mactex-no-gui --cask

使用している回線にもよりますが、ダウンロードにかなりの時間がかかるのでゲームなり課題なりして待ちましょう。

インストールまで終わったら TeXLive のアップデートを実行します。

$ exec $SHELL -l
$ sudo tlmgr update --self --all

これも結構な時間がかかるので、ゲームなり課題なりして (ry

終わったらデフォルトを A4 用紙に設定しておきます。

$ sudo tlmgr paper a4

2.3 jlisting.sty をダウンロード

jlisting.sty は日本語を含んだソースコードをエラーなしに表示するために必要なパッケージです。情報系のレポートをよく書くような人は入れておいて損はないです。そうでなければここでは飛ばしてしまって、必要になった時に入れるでも良い気はします。

まず ここ から jlisting.sty.bz2 をダウンロードします。これがダウンロードされたディレクトリまで移動し

$ bunzip2 jlisting.sty.bz2

で解凍します。

次に listing.sty (欧文のみのソースコードを表示する際に使うパッケージ)と同じ場所に jlisting.sty を保存するため、

$ kpsewhich listing.sty

listing.sty の場所を検索します。そうして確認した場所に先ほど解凍した sty ファイルを移動します。

$ sudo mv jlisting.sty /usr/local/texlive/2021/texmf-dist/tex/latex/listing/

権限を付与しておき、変更を反映させます。

$ sudo chmod +r /usr/local/texlive/2021/texmf-dist/tex/latex/listing/jlisting.sty
$ sudo mktexlsr

3 VSCode の設定

VSCode 公式 からダウンロードし、VSCode 内で拡張機能 LaTeX-Workshop をインストールしておきます。

3.1 setting.json の編集

+ , で設定を開き、setting.json を見つけて中身に下のような設定を追記します。このへんはよくわかんなくて色々調べたのをぜんぶぺたぺたしたので冗長だったらごめんなさい……ごめんなさい……

{
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-halt-on-error",
                "-pdfdvi",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-lualatex",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "latexmk_rconly",
            "command": "latexmk",
            "args": [
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ],
            "env": {}
        },
        {
            "name": "ptex2pdf",
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOC%"
            ],
            "env": {}
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk 🔃",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "latexmk (latexmkrc)",
            "tools": [
                "latexmk_rconly"
            ]
        },
        {
            "name": "latexmk (lualatex)",
            "tools": [
                "lualatexmk"
            ]
        },
        {
            "name": "pdflatex ➞ bibtex ➞ pdflatex × 2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
        {
            "name": "ptex2pdf",
            "tools": [
                "ptex2pdf"
            ]
        }
    ],
    "latex-workshop.view.pdf.viewer": "tab",
    "editor.renderControlCharacters": true
}

3.2 使ってみる

適当な tex ファイルを用意し、左の TeX ボタンから Build LaTeX project を選択します。特に何もなくビルドが完了して左下にチェックマーク ✔️ がついたら、その下の View LaTeX PDF を選択すると実際に PDF ファイルの内容を見ることができます。

動作確認ができたらおわりです。おつかれさまでした!

参考文献

[1] Homebrew 公式ページ, https://brew.sh/index_ja
[2] TeXWiki, https://texwiki.texjp.org/?TeX Live%2FMac
[3] [LaTeX]macOS(Mojave)でのVSCode環境構築備忘録, https://qiita.com/uoyuki/items/c172235a0caf2f637ea4
[4] MacでTex環境を構築【その1】, https://qiita.com/mizuhof/items/1225a1ce85d28d3a5c5a

Discussion