投稿日:
更新日:

brew + VSCode で TeX 環境を構築する

Authors

目次

はじめに

ソースコードだろうと論文だろうと VSCode で全てを完結させたい!

今回は、mactex-no-gui というパッケージを導入して VSCode に Tex 環境を構築してみました。

各種パッケージのインストール

Homebrew

VSCode

MacTeX

  • latexmk コマンド

    • LaTeX 文書をコンパイルおよびプレビューするためのツール
      • コンパイルとプレビューのステップを統合して文書の作成プロセスを簡略化するためのコマンド
    • LaTeX 文書を自動的にコンパイルし、必要な回数だけコンパイルを実行して文書を生成する
    • ソースファイルが変更されると、自動的に再コンパイルを開始する
    • 文書内のクロスリファレンスや参照等に関連する依存関係も自動的に処理する
    • 内部の PDF Viewer を起動してコンパイルされた PDF ファイルを表示する
  • tlmgr コマンド

    • TeX Live Manager
    • TeXLive(TeX のディストリビューション)のパッケージ管理ツール
      • TeXLive パッケージのインストール、アップデート、削除を行うコマンドラインツール
    • 新しい LaTeX パッケージをインストールする
    • インストールされているパッケージを最新バージョンにアップデートする
    • 不要なパッケージを削除する
    • インストールされているパッケージの情報を表示する

VSCode Extension Framework

VSCode 拡張機能をインストール

settings.json

  • VSCode を立ち上げて ⌘ + ,setting.json を開く
  • もしくは直接 ~/Library/Application\ Support/Code/User/settings.json を編集

settings.json の書き方

latex-workshop.latex.toolslatex-workshop.latex.recipes という 2 つを組み合わせて使用する。

  • latex-workshop.latex.tools
    • コンパイルコマンドの定義(手順)とそれを識別する名前を定義する
  • latex-workshop.latex.recipes
    • デフォルトで用いる一連の動作を定義する
    • latex-workshop.latex.tools で指定した名前を用いて動作を定義する
    • 基本的に、latex-workshop.latex.tools と 1 対 1 で定義する

よく使用しているコンパイル手順:

  • コンパイル順序 latex-workshop.latex.tools (args) の定義
    • LaTeX コンパイル:platex コマンドを使用して LaTeX 文書をコンパイル
    • BibTeX 処理:pbibtex コマンドを使用して BibTeX を実行
    • Biber 処理:biber コマンドを使用して Biber を実行
    • MakeIndex 処理:mendex コマンドを使用して MakeIndex を実行
    • DVI から PDF への変換:dvipdfmx コマンドを使用して DVI から PDF へ変換

%DOC% はビルド対象の LaTeX 文書ファイルを示すマクロであり、コンパイル時に実際の文書ファイルに置換される

  • latexmk コマンド -halt-on-error オプション
    • エラー発生時に即座にコンパイルを停止
    • 最低限のログを記録することでエラー箇所の特定がしやすくなる
  • "latex-workshop.latex.clean.method": "glob"
    • コンパイル後に不要なファイル(.aux 等)を自動削除する
  • "latex-workshop.view.pdf.viewer": "tab"
  • "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true
    • タイプセットに失敗した場合、補助ファイルを削除して自動再タイプセットする
    • 一度失敗しているなら繰り返す必要がないと感じる場合には false として無効化しておく

TeX ファイルの種類

  • .tex
    • LaTeX の ソースファイル
  • .dvi
    • DeVice Independent
    • LaTeX 処理した結果を記録するバイナリファイル
  • .ps
    • Post Script
    • DVI ファイルを印刷する際にプリンタが解釈可能なファイルに変換する
    • dvi2ps コマンドを使用して DVI ファイルから PS ファイルを生成する
  • .aux
    • AUXiiliar
    • LaTeX 内部での情報の参照に利用されるファイル
    • 目次や参考文献を付与する際に、リファレンスの参照を行う
  • .toc
    • Table Of Contents
    • 目次を作成する場合に生成されるファイル
  • .lof
    • List of Figures
    • 図表目次を作成する場合に生成されるファイル
  • .log
    • コンパイルログが出力されたファイル
  • .cls
    • Class
    • 文書クラスを定義するファイル
    • 指定された文書クラスに対応するクラスファイルを環境変数 TEXINPUTS で指定されたディレクトリから検索して読み込む
  • .clo
    • Class Option
    • クラスオプションを定義するファイル
    • cls ファイルと同様に環境変数 TEXINPUTS で指定されたディレクトリから読み込まれる
  • .sty
    • Style
    • cls, clo ファイルと同様に環境変数 TEXINPUTS で指定されたディレクトリから読み込まれる

Hello, World !

tex-hello-world.png

こんな感じで編集できれば設定完了!

では、論文頑張って書いていきましょう 👍

【おまけ】Formatter を導入する

latexindent をインストール

latex-formatter 追加

settings.json の編集

【おまけ】LaTeX エンジンの種類

LaTex を使用して .tex 文書ファイルから PDF を変換する際のワークフロー(コンパイル方式)は 7 つある。

  • pLaTeX + dvips(最も古い方式)
    • (TeX の本来の出力形式である)DVI ファイルを出力し、その後、dvips で DVI から PDF を生成する
  • pLaTeX + dvipdfmx
    • (TeX の本来の出力形式である)DVI ファイルを出力し、その後、dvipdfmx で DVI から PDF を生成する
  • upLaTeX + dvips
    • (TeX の本来の出力形式である)DVI ファイルを出力し、その後、dvips で DVI から PDF を生成する
  • upLaTeX + dvipdfmx
    • (TeX の本来の出力形式である)DVI ファイルを出力し、その後、dvipdfmx で DVI から PDF を生成する
  • pdfLaTeX
    • TEX から PDF を直接出力する
  • XeLaTeX
    • TEX から PDF を直接出力する
  • LuaLaTeX(最近流行り)
    • TEX から PDF を直接出力する

LaTeX エンジンの確認

以下の TeX ファイルをコンパイルすると確認できる。

latex-engine-type.png