1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[macOS + VSCode] ローカルでLaTeXを書けるようにするよ

Last updated at Posted at 2024-07-27

Overleafとかよくわからないので

macOS上でローカルでLaTeXを書けるようにする

macOSに乗り換えて間もない人が書きました
多分1からの解説になりますよん

動作環境

  • Computer: MacBook Air 13-inch, M3, 2024
  • OS: macOS Sonoma 14.5
  • Homebrew: 4.3.2
  • Mac TeX: 2024.0312

手順

以下の通りに進めてください
すでにやっている/分かっているところは飛ばしてOKです

-2. LaTeXって何

調べてね

-1. ターミナルの起動

WindowsでいうコマンドプロンプトないしPower Shell.
⌘ + スペースでSpotlight検索を呼び出します
ターミナルterminal)と打てば候補にターミナルアプリケーションが出てくるので開いてください

Launchpadの中を探してもあります

0. 隠しフォルダの表示設定

Finderが選択された状態で(デスクトップ上,あるいはなんか開いた状態のFinderウィンドウを選択),⌘ + Shift + .を押すと,半透明で隠しフォルダが出てきます.もう一回押すと消える
トラブル対応時とかに便利なので推奨

Macintosh HDで試すとわかりやすい
Screenshot 2024-05-31 at 23.47.30.png

以降の解説はこの設定を前提とします

1. Homebrewのインストール

HomebrewとはmacOS(とUnix)のパッケージマネジメントソフトですね
公式サイトに載ってるコマンドをターミナルに打てばOK

典型的にはこれです↓

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

パスを通す

インストール後,英語でパスを通せ🤪🤪と言われるので,指示に従ってコマンドを打ってね

典型的には以下の通りだと思います

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/(ユーザ名)/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

ターミナルが何も処理していないことを確認したのち,⌘ + Qで終了させて,再び起動させてください

どうしてもうまくいかないなら,/Users/(ユーザ名)/.zshrcを開いていじいじしてね
PATH=と書いている行(複数表に見えていても実は1行)の最初に以下を書く

/opt/homebrew/bin:

すると,.zshrcは以下のようになります.

.zshrc
ごちゃごちゃ
PATH=/opt/homebrew/bin:ごちゃごちゃ

(ここにHomebrew本体の他,Homebrewでインストールするソフトウェア(のエイリアス)が入ります.最初に書かないとvimなどは標準で入っているものが優先されてしまいます)

ターミナルの終了,再起動も忘れずに

ターミナルでbrew -vと打った時に,zsh: command not found: brewとか言われたらパスがうまく通ってないよ.よく見直ししてください.

.zshrc内にPATH=が二つあったりするとうまくいきません.一つにまとめてください
なんかのソフトのせいでそのようになっていることがあります

brew -vHomebrew 4.3.2みたいになったら成功です.次に進む

2. MacTeXのインストール

MacTeXなるものをHomebrewでインストールします.TeX LiveというローカルでTeXを動かすやつをmacOS用にチューンナップしたみたいなやつです.

ターミナルで以下を打つ

brew install --cask mactex-no-gui

MacTeXは公式のインストール方法だと環境にファイルをまき散らかすらしいが,Homebrewを用いれば安全にインストールできるらしい
no gui版じゃないとApplicationsにいらんGUIアプリケーションがごちゃごちゃ入ってきちゃいます

TeX Liveのアップデート

MacTeX内のTeX Liveをアップデートするよ
sudoなのでパスワードを聞かれたらmacのパスワードを打ちます

sudo tlmgr update --self --all
sudo tlmgr paper a4

時間がかかるので待ちます.

zsh: command not found: tlmgrと言われたら,ターミナルを再起動するか,以下を打ちます
2024の部分など,TeX Liveのバージョンによって違うと思うので,本当に以下の場所にtlmgrがあるかFinderで確認しに行ったほうがいいよ

sudo /usr/local/texlive/2024/bin/universal-darwin/tlmgr path add

3. VSCodeの準備

ここからVSCodeをダウンロード
ちなみにVSCode = Visual Studio Codeね.Microsoftが作ったエディタです

LaTeX Workshopなる拡張機能をインストールしてください.
以下はインストール済みの画像
Screenshot 2024-06-01 at 0.22.02.png

ここまで終わったら,拡張機能の設定に入ります

拡張機能の設定

左下の⚙️ボタンを押し,設定をクリックします

Screenshot 2024-06-01 at 0.28.00.png

こんなの開くので,右上のScreenshot 2024-06-01 at 0.28.48.pngをクリックしてください.settings.jsonが開きます

settings.json
{

    [ココ]

    ごちゃごちゃ
}

多分上のようになっているので,[ココ]ってとこに以下を書きます
なお,こちらの記事を参考にしています

settings.jsonの[ココ]ってとこ
    // ------------ LaTeX ここから -----------------
    // 設定: LaTeX Workshop
    
    // LaTeX Workshop ではビルド設定を「Tool」と「Recipe」という2つで考える
    //   Tool: 実行される1つのコマンド。コマンド (command) と引数 (args) で構成される
    //   Recipe: Tool の組み合わせを定義する。Tool の組み合わせ (tools) で構成される。
    //           tools の中で利用される Tool  "latex-workshop.latex.tools" で定義されている必要がある。
    
    
    "latex-workshop.latex.recipes": [
        {
    //論文用レシピ
            "name": "platex",
            "tools": [
                "platex",
    //            "pbibtex",
                "platex",
    //            "mendex",
                "platex",
                "dvipdfmx",
                "move",
                "delete"
            ]
        }
    ,
        {
    //要旨用レシピ
            "name": "preliminary",
            "tools": [
                "platex",
    //            "pbibtex",
                "platex",
    //            "mendex",
                "platex",
                "dvipdfmx",
                "move",
                "delete"
            ]
        }
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "platex",
            "command": "platex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-kanji=utf8",
                "-shell-escape",
                "%DOCFILE%.tex"
            ]
        },
        {
            "name": "dvipdfmx",
            "command": "dvipdfmx",
            "args": [
                "%DOCFILE%.dvi"
            ]
        },
        {
            "name": "pbibtex",
            "command": "pbibtex",
            "args": [
                "-kanji=utf8",
                "%DOCFILE%"
            ]
        },
        {
            "name":"move",
            "command":"cp",
            "args":[
                "%DOCFILE%.pdf",
                "out"
            ]
        },
        {
            "name":"mendex",
            "command":"mendex",
            "args":[
                "-r",
                "-c",
                "-g",
                "-s",
                "dot.ist",
                "-p",
                "any",
                "%DOCFILE%.idx"
            ]
        },
        {
            "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%.pdf"
            ]
        }
    ],
    // latex-workshop.latex.magic.args: マジックコメント付きの LaTeX ドキュメントをビルドする設定
    // '%!TEX' で始まる行はマジックコメントと呼ばれ、LaTeX のビルド時にビルドプログラムに解釈され、
    // プログラムの挙動を制御する事ができる。
    // 参考リンク: https://blog.miz-ar.info/2016/11/magic-comments-in-tex/
    "latex-workshop.latex.magic.args": [
    "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
    ],
    
    // latex-workshop.latex.clean.fileTypes: クリーンアップ時に削除されるファイルの拡張子
    // LaTeX 文書はビルド時に一時ファイルとしていくつかのファイルを生成するが、最終的に必要となるのは
    // PDF ファイルのみである場合などが多い。また、LaTeX のビルド時に失敗した場合、失敗時に生成された
    // 一時ファイルの影響で、修正後のビルドに失敗してしまう事がよくある。そのため、一時的なファイルを
    // 削除する機能 (クリーンアップ)  LaTeX Workshop には備わっている。
    "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",
        // for Beamer files
        "_minted*", "*.nav", "*.snm", "*.vrb",
    ],
    
    // latex-workshop.latex.autoClean.run: ビルド失敗時に一時ファイルのクリーンアップを行うかどうか
    // 上記説明にもあったように、ビルド失敗時に生成された一時ファイルが悪影響を及ぼす事があるため、自動で
    // クリーンアップがかかるようにしておく。
    
    "latex-workshop.latex.autoClean.run": "onBuilt",
    
    // latex-workshop.view.pdf.viewer: PDF ビューアの開き方
    // VSCode 自体には PDF ファイルを閲覧する機能が備わっていないが、
    // LaTeX Workshop にはその機能が備わっている。
    // "tab" オプションを指定すると、今開いているエディタを左右に分割し、右側に生成されたPDFを表示するようにしてくれる
    // この PDF ビュアーは LaTeX のビルドによって更新されると同期して内容を更新してくれる。
    "latex-workshop.view.pdf.viewer": "tab",
    
    // latex-workshop.latex.autoBuild.run: .tex ファイルの保存時に自動的にビルドを行うかどうか
    // LaTeX ファイルは .tex ファイルを変更後にビルドしないと、PDF ファイル上に変更結果が反映されないため、
    // .tex ファイルの保存と同時に自動的にビルドを実行する設定があるが、文書が大きくなるに連れてビルドにも
    // 時間がかかってしまい、ビルドプログラムの負荷がエディタに影響するため、無効化しておく。
    "latex-workshop.latex.autoBuild.run": "never",
    
    "[tex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },
    
    "[latex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },
        
    "[bibtex]": {
        // インデント幅を2にする
        "editor.tabSize": 2
    },
    
    
    // 使用パッケージのコマンドや環境の補完を有効にする
    "latex-workshop.intellisense.package.enabled": true,
    
    // 生成ファイルを "out" ディレクトリに吐き出す
    "latex-workshop.latex.outDir": "out",
    "editor.unicodeHighlight.allowedCharacters": {
        ",": true,
        ".": true
    },
    //レシピの設定
    "latex-workshop.latex.recipe.default":"lastUsed",

pbibtexやmendexを使う場合は,適宜レシピ("latex-workshop.latex.recipes")中のコメントアウトをはずしてください


pbibtexやmendexの使い方は以下の記事がとてもわかりやすいです


あとは,てきとーなTeXファイル作って,⌘ + Sで保存して⌘ + ⌥ + Bでビルドすれば勝手にコンパイルされてout/***.pdfが出てくるよ

test.tex
\documentclass[dvipdfmx]{jsarticle}

\title{タイトル}

\begin{document}

\maketitle

\section{セクション}

\LaTeX だよ〜ん

\end{document}

Screenshot 2024-06-01 at 0.46.58.png
コンパイル後,⌘ + ⌥ + VでTeXファイルとpdfファイルを左右に表示すると,以降コンパイル時に変更内容がすぐに確認できて便利だよ.

失敗してやり直す時

MacTeXアンインストール
以下のコマンドでMacTeXを完全にアンインストールできるようです
実行前に,ターミナルにディスクフルアクセスを許可しているか確認してね(設定->プライバシー->ディスクフルアクセス)

brew uninstall --zap mactex-no-gui

Homebrewアンインストール

公式サイト参照
以下のコマンドを打てばアンインストールできます.

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

終わりに

詰まりまくって大変でしたねこれ

参考文献

1
2
1

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?