日記(日記とは言っていない)

https://zenn.dev/23prime に移行しました。

<LaTeX> LaTeX 執筆環境を VSCode へ移行する

今まで LaTeXEmacs で書いていたのですが,諸々の開発環境も VSCode へ移行していることもあり,合わせて LaTeX も移行することにしました.

エディタの乗り換え

今までは Emacs を愛好していたのですが,時代も時代なのでモダンなエディタに乗り換えようと思い,行き着いたのが VSCode でした.

色々な記事を見かけますが,現在最強のエディタかもしれません.

使用する拡張

2つの拡張を使います.これだけで殆ど十分といって過言ではありません.

LaTeX Workshop

marketplace.visualstudio.com

おそらく最も定番な VSCodeLaTeX 用拡張だと思います.

シンタックスハイライト,自動補完,自動タイプセット, PDF View 等,これ1つで全てやってくれます.

Settings

元々 Latexmk を使っていたのですが,デフォルトのままだと ~/.latexmkrc を読み込んでくれません. uplatex を使いたいとかそういう事情もあるので,なんとかしたいです.
そこで,設定を読ませるのではなく, Code/User/setting.json に設定を書き加えることで,なんとかします.

"latex-workshop.latex.tools": [
    {
        "name": "latexmk",
        "command": "latexmk",
        "args": [
            "-e",
            "$latex=q/uplatex %O -synctex=1 -halt-on-error -shell-escape %S/",
            "-e",
            "$latex_silent=q/uplatex %O -synctex=1 -halt-on-error -interaction=batchmode -shell-escape %S/",
            "-e",
            "$bibtex=q/upbibtex %O %B/",
            "-e",
            "$dvipdf=q/dvipdfmx %O -o %D %S/",
            "-e",
            "$makeindex=q/upmendex %O -o %D %S/",
            "-e",
            "$max_repeat=5",
        ]
    }
]

Latexmk の設定はお好みで.

Usage

多分よく使うコマンドとそのデフォルトキーバインドです.

name command keybind
Build LaTeX project latex-workshop.build Ctrl + Alt + B
Clean up auxiliary files latex-workshop.clean Ctrl + Alt + C
View LaTeX PDF file latex-workshop.view Ctrl + Alt + V
View LaTeX PDF file in VSCode tab latex-workshop.tab Nothing
SyncTeX from cursor latex-workshop.synctex Ctrl + Alt + J

CaTeX

LaTeX Workshop で十分じゃないか!という説もありますが,元々 Emacs で使っていた YaTeX というクソ便利モードがあり,このモードの機能が欲しいという説もあります.

例えば,次のようなものです.

  • 数式記号等のイメージ補完.
  • \begin{} \end{}\section{} の挿入(スニペット).

この辺りを実現してくれるのが CaTeX です.
機能自体はシンプルなものなので,公式を参照するのが良いと思います.

marketplace.visualstudio.com

公式ブログに細かい解説があります.

konn-san.com

Settings

私の場合,自分のキーバインドとぶつかったりしたのと自分の好みを反映し,次のようにしました.

    {
        "key": "ctrl+c ctrl+s",
        "command": "extension.complete.catex.section"
    },
    {
        "key": "ctrl+c s",
        "command": "-extension.complete.catex.section"
    },
    {
        "key": "ctrl+c ctrl+b",
        "command": "extension.complete.catex.environment"
    },
    {
        "key": "ctrl+c b",
        "command": "-extension.complete.catex.environment"
    },
    {
        "key": "ctrl+c ctrl+l",
        "command": "extension.complete.catex.large"
    },
    {
        "key": "ctrl+c l",
        "command": "-extension.complete.catex.large"
    }

ところで

大学から離れたら,もう LaTeX することもなさそう…