Visual Studio Code でも TeX がしたい

この記事はCPS Lab Advent Calenderの16日目の記事です。めちゃくちゃ遅れました...。

15日目の記事は7セグもどきで電子サイコロ - Qiitaです。17日目の記事は個人開発者ならIDは統一しておくと良い - まっきーの研鑽記です。

はじめに

皆さん論文を書く季節がやってきましたね。
まだ実装が終わってないのですが、やる気が出なかったのでとりあえず論文を書く環境を整えてみました。

TeX を書くだけなら cloudLaTeXOverleaf が便利なのですが、git管理したくてローカルに環境を構築しました。

Overleaf は有償版だと GitHub 連携ができます。

何をするのか

Visual Studio Code で快適な TeX 環境を構築していきましょう。

f:id:takorras:20181224221552g:plain

補完が効いて、保存するたびにプレビューもリロードされます。

また、今回はコンパイルlatexmk を使用します。
面倒なコンパイル手順を .latexmkrc ファイルに残せる事、先輩の論文リポジトリにも .latexmkrc が残っていたので選択しました。

軽量・高速で日本語も書ける LuaLaTeX を使う記事もありますが、梗概のスタイルを上手く読み込めなかったりして、今回はベーシックに latexmk (platex + pbibtex + dvipdfmx)を使います。

1. インストール

まずは必要なパッケージをインストールします。

自分は以下を参考に、brewGUI なし版をインストールしました。
TeX Live/Mac - TeX Wiki

2. LaTeX Workshop のインストール

VSCode拡張機能である、LaTeX Workshop をインストールします。

f:id:takorras:20181224223930p:plain

3. LaTeX Workshop の設定

次にコンパイルの手順を設定していきます。

cmd + , を押すと VSCode の設定が開くので、右上のボタンで json に切り替え、User Settings (右側)を編集します。 f:id:takorras:20181224230841p:plain f:id:takorras:20181224230914p:plain

LaTeX Workshop の設定には、大きく tools と recipes があります。
tools 1つ1つに様々なコマンドを登録して、 recipes 設定でそれらを組み合わせていきます。

実際に実行されるのは recipes の項目なので、tools にいくつか変換処理を登録しておけば、まとめて実行できるということです。

ですが、私は latexmk を使ってコンパイルするので、設定は以下のみになります。
皆さんもコピペして latexmk を使いましょう(適当)

{
  // ... その他の設定項目
  "latex-workshop.latex.recipes": [
    {
      "name": "latexmk",
      "tools": ["latexmk"]
    }
  ],
  "latex-workshop.latex.tools": [
    {
      "name": "latexmk",
      "command": "latexmk",
      "args": ["--synctex=1", "--interaction=nonstopmode", "%DOC%"]
    }
  ],
  "latex-workshop.view.pdf.viewer": "tab"
}

nonstopmode を指定することで、コンパイルエラーが出ても止まらずに実行してくれます。

その他詳しい設定については公式ドキュメントを参照してください。

4. latexmk の設定

※ 前項でlatexmk を使用しない場合は飛ばして下さい。

以下の記事を参考にしました。

konn-san.com

latexmk を使うと、コンパイル手順を .latexmkrc というファイルに記述する事ができます。

先程の設定とやりたい事は同じですが、プロジェクトごとに .latexmkrc ファイルを保存できるので、後々コンパイル手順が分からない!事態を避けられます。

実際、自分も先輩の論文をコンパイルする際にこれが残っていてとても助かりました。

上記事や先輩のリポジトリを見ながらコピペで作成した .latexmkrc です。これをプロジェクト直下に配置します。

#!/usr/bin/perl
$latex = 'platex -kanji=utf8 -guess-input-enc -interaction=nonstopmode %O %S';
$bibtex = 'pbibtex -kanji=utf8 %O %B';
$dvipdf = 'dvipdfmx -p a4 -f ms.map -z 0 %O %S';
$pdf_mode = 3;
$pdf_previewer = 'open -a Preview';

正直よくわかってないですが、これで梗概がコンパイルできました。😇

5. コンパイル

設定したら、TeX ファイルを開いてコンパイルしてみましょう。

左側のコマンドパレット、または cmd + shift + p を押して Build with Recipes を選択し、作成したrecipesを実行します。(私であれば latexmk)

f:id:takorras:20181224232545p:plain

無事コンパイルできれば、 View LaTeX PDF から View in VSCode tab を押すとプレビューが表示できます。

f:id:takorras:20181224232427p:plain

できた!🎉

ホットリロードはもちろん、補完が効くのも良いし、構文チェックを行うオプションもあります。

もし上手くコンパイルされない場合は、VSCode をリロードしてみたり、Clean auxiliality files から余計なファイルを削除して再度試してみて下さい。

おわりに

ということで、LaTeX Workshop を使って論文の環境を作ってみました。
まだまだ TeX についても知らない事が多いので、また気づいた事があったら追記していきます。

それでは皆さん快適なTeXライフを!😇