Sublime Text(LaTeXTools)

Sublime Text で LaTeX を書く人の定番が、LaTeXTools パッケージです。Package Control から入れるだけで、ビルド、\ref\cite の補完、コマンド補完、ファイル名の補完、そして PDF ビューアとの相互ジャンプまでが、エディタを離れずに使えるようになります。このページでは LaTeXTools の導入と設定、ビルドの仕組み、日本語のための設定、補完、そして SyncTeX による前方・逆検索を順に見ていきます。

LaTeXTools とは

Sublime Text はそれ自体では TeX を組版しません。実際にコンパイルするのは、PC に入れた TeX 環境(TeX Live・MacTeX・MiKTeX のいずれか)です。LaTeXTools は、その橋渡しをするパッケージ。.tex を編集しているときに、ビルドコマンド、ログの解析とエラー表示、文脈に応じた補完、\label/文献キーへのジャンプ、PDF ビューアの起動と同期などを 自動的に有効化 します。つまり LaTeXTools 単体では文書はできず、ローカルの TeX 環境と PDF ビューアが前提 になります。

前提となる外部ソフトは二つです。第一に TeX 環境。macOS なら MacTeX(軽量な BasicTeX でも可。ただし後述の latexmk を別途入れる必要があります)、Windows なら MiKTeX か TeX Live、Linux なら TUG の TeX Live。第二に PDF ビューア。前方・逆検索を使うため、LaTeXTools は OS ごとに既定のビューアを想定します。

OS既定の PDF ビューア備考
macOSSkim前方・逆検索に対応。Preview.app も別設定で利用可
WindowsSumatraPDFWindows で対応する唯一のビューア。軽量で同期対応
LinuxEvinceOkular・Zathura なども viewer 設定で選べる

インストールは Package Control 経由が推奨です。Package Control 自体が未導入なら先に入れたうえで、コマンドパレット(Windows/Linux は Ctrl+Shift+P、macOS は Cmd+Shift+P)を開き、Package Control: Install Package を選んで一覧から LaTeXTools を選びます。再起動は不要で、.tex を開けば構文が LaTeX に切り替わり、機能が効き始めます。

導入後にやることが二つあります。ひとつは設定ファイルの用意。コマンドパレットの LaTeXTools: Reset user settings to default、または Preferences | Package Settings | LaTeXTools | Settings – User から、編集用の LaTeXTools.sublime-settingsUser ディレクトリに作ります(プラグイン本体側の既定ファイルは絶対に編集しません。更新時に上書きされます)。もうひとつは導入確認。LaTeXTools: Check System を実行すると、TeX のコマンドやビューアが LaTeXTools から見つかるかを点検できます。うまく動かないときは、まずこのコマンドで原因を切り分けます。

ビルド

ビルドは Sublime Text 標準のキー、**Ctrl+B(macOS は Cmd+B)** で起動します。LaTeXTools の既定ビルダ(traditional)は、一回のビルドで次をまとめて行います。現在のファイルを保存し、TeX のビルドコマンドを起動し、ログを解析して下部のパネルにエラー・警告・(有効なら)バッドボックスを一覧表示し、最後に PDF ビューアを開いて前方検索(カーソル位置の表示)まで行います。パネルのエラー行をクリックすれば該当箇所へ飛べます。

肝心なのは、**traditional ビルダが裏で latexmk を呼んでいる** ことです。正確には、TeX Live・MacTeX では latexmk、MiKTeX では texify を起動します。latexmk は更新分だけを判断して必要な回数だけ処理を回すツールで、相互参照や目次が確定するまでの繰り返しを自動でこなします。既定のコマンドラインはおおむね次の形です。

terminal
latexmk -cd -f -%E -interaction=nonstopmode -synctex=1

読み解くと、-cd はソースのあるディレクトリへ移動してから処理し、-f はエラーが出ても可能な限り処理を続け、-interaction=nonstopmode は対話的な停止を避け、**-synctex=1** は後述の前方・逆検索に必要な対応表を出力します。%Eプレースホルダ で、選んだエンジンに応じて -pdf(pdfLaTeX)・-lualatex-xelatex などに置き換えられます。つまりエンジン選択は、この %E の中身を切り替えることに相当します。

エンジンを選ぶ最も手軽な方法は、ファイル先頭の マジックコメント です。.tex の 1 行目に次のように書くと、対応するエンジンが使われます(指定がなければ pdfLaTeX)。複数ファイル構成では、この行は ルート(master)ファイル に書きます。TeXShop 互換で program の代わりに TS-program も使えます。

document.tex
%!TEX program = lualatex

指定できるのは pdflatexlualatexxelatex の三つだけです。同様に %!TEX options = ... でエンジンへのオプション(例: --shell-escape)を、%!TEX root = <master> でルートファイルを指定できます。マジックコメントを使わず、設定ファイルや Sublime プロジェクトで指定する手もあります。LaTeXTools.sublime-settingsbuilder_settings ブロックでは、program(エンジン)・optionscommandenv(環境変数)を調整できます。

LaTeXTools.sublime-settings
{
  "builder_settings": {
    "program": "lualatex",
    "options": ["--shell-escape"]
  }
}

もうひとつ要となるのが **texpath** 設定です。これは LaTeX のコマンド群を探すための PATH で、latexmk などを呼ぶときに使われます。とくに macOS では、GUI から起動した Sublime Text の PATH がシェルと異なるため、ここが正しくないと「コマンドが見つからない」で失敗します。注意点として、**texpath には必ず $PATH を含めます**(自前のパスを先頭に、続けて $PATH)。macOS の典型は "/Library/TeX/texbin:$PATH"、Windows なら "C:\\texlive\\2026\\bin\\windows;$PATH" のように、自分の環境に合わせて書きます。Windows ではさらに、distro"texlive""miktex" に合わせます。

traditional ビルダで物足りなければ、builder 設定で basic(エンジンと bibtex/biber を最小限回す簡易ビルダ)や script(自前のコマンド列を script_commands に書く上級者向けビルダ)に切り替えられます。なお --output-directory--aux-directory--jobname は、latexmk(OS X/Linux の traditional)・basicscript でのみ有効で、MiKTeX の texify では無視されます。

日本語の設定

ここで日本語ユーザーがつまずきやすい点があります。%!TEX program で選べるのは pdflatexlualatexxelatex の三つだけで、**uplatexplatex は直接指定できない** のです。LuaLaTeX で和文を組むなら話は簡単で、%!TEX program = lualatex と書き、luatexjaltjsclasses 系のクラスを使うだけで済みます。

一方、理系の日本語論文で定番の upLaTeX + dvipdfmx(DVI を作ってから PDF 化する経路)を使いたい場合は、**エンジンの切り替えを .latexmkrc に任せる** のが最も素直です。traditional ビルダは裏で latexmk を呼ぶので、プロジェクトのディレクトリ(またはホーム)に .latexmkrc を置けば、LaTeXTools 側の設定をほとんど変えずに和文処理へ切り替えられます。次が upLaTeX + dvipdfmx の例です。

.latexmkrc
$latex = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'upbibtex %O %B';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$makeindex = 'upmendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;
$max_repeat = 5;

要点は、$latexuplatex$dvipdfdvipdfmx を割り当て、$pdf_mode = 3 で「DVI を作ってから dvipdfmx で PDF 化する」経路を選ぶことです。$latex 側にも **-synctex=1** を渡しておくと、DVI を経由しても SyncTeX 情報が PDF まで引き継がれ、後述の検索が効きます。LaTeXTools 側では、%!TEX program書かない(書くと pdfLaTeX 用の %E が選ばれてしまう)のが無難です。

より明示的にしたいなら、builder_settingscommandlatexmk を直接指定する手もあります。たとえば "command": "latexmk" と書けば(-pdfdvi 等のオプションは .latexmkrc 側に寄せて)和文用の latexmk を確実に走らせられます。なお、command を自分でカスタムすると %!TEX program によるエンジン自動選択は効かなくなりますが、和文のように経路を .latexmkrc で決め打ちする構成では、もともとそれで問題ありません。

補完

LaTeXTools の補完は大きく三系統あります。コマンド補完、**\ref\cite の補完、そして ファイル名・パッケージ名の補完(Fill Helper) です。まずコマンド補完。LaTeXTools は TeXStudio 由来の補完語リスト(CWL**)を同梱し、\ を打ち始めると候補のポップアップを出します。たとえば \te まで打つと \textit などが並びます。挙動は command_completion 設定で制御でき、prefixed(既定。\ で始まるときだけ表示)・alwaysnever が選べます。文書中で読み込んだパッケージに応じた候補も、cwl_autoload(既定で有効)により自動で足されます。env_auto_trigger を有効にすると、\begin{\end{ の入力時に環境名も補完されます。

次に 参照と引用 の補完。これが LaTeXTools の目玉のひとつです。既定では \ref{\cite{ を打った瞬間に、画面上部に クイックパネル(候補リスト)が現れます。\ref{ なら文書中の \label の一覧、\cite{ なら \bibliography{} や biblatex の \addbibresource{} で参照している文献の一覧です。数文字打てばあいまい検索で絞り込め、選んで Enter を押すと \ref{my-label} のように コマンドごと挿入 されます。\cite{paper1, のように右ブレースの直前でカンマを打てば、複数引用 の二件目以降も同じ流れで選べます。

注意点が二つあります。第一に、LaTeXTools は 保存済みのファイル を見て候補を集めます。入れたばかりのラベルやキーが出ないときは、まず保存します。第二に、文献は **外部の .bib ファイル** のみが対象で、\bibitem による直書きは対象外です。この自動表示(auto-trigger)が煩わしければトグルや設定で切れます。手動で呼ぶときは、\ref{ などの直後で **Ctrl+l, x**(macOS は Cmd+l, x)か **Ctrl+l, Ctrl+f** を押します(後述の Fill Helper と同じキーで、\ref\cite にも効きます)。cleveref・fancyref・varioref・natbib・biblatex などの参照・引用コマンドにも対応しています。

三つ目が Fill Helper\usepackage{\include{\input{\includegraphics{ などを打つと、利用可能なパッケージやファイルの一覧を出してくれる仕組みです。\usepackage{ ならインストール済みパッケージの一覧、ファイル系コマンドなら現在のディレクトリのファイル(\includegraphics では画像ファイルに絞って)が並びます。これも既定で自動表示され、手動なら Ctrl+l, Ctrl+f で呼べます。ひとつだけ準備が要るのがパッケージ補完で、最初に一度コマンドパレットから LaTeXTools: Build cache for LaTeX packages を実行して、パッケージのキャッシュを作っておく必要があります。

SyncTeX(前方・逆検索)

SyncTeX は、ソースの行と PDF 上の位置との対応を記録する仕組みです。これにより、編集位置から PDF へ飛ぶ 前方検索 と、PDF 上の場所からソース行へ戻る 逆検索 ができます。LaTeXTools の既定ビルドコマンドには -synctex=1 が入っているので、ふつうに Ctrl+B でビルドしていれば対応表(.synctex.gz)は自動で出力されます。日本語で DVI を経由する場合は、前述のとおり .latexmkrc$latex にも -synctex=1 を渡しておくのが要点です。仕組みの詳しい背景は SyncTeX のページで扱います。

前方検索 は LaTeXTools 側のキーで起動します。.tex を編集中に **Ctrl+l, j**(macOS は Cmd+l, j)を押すと、カーソル位置に対応する PDF のページが表示されます。ビルド直後にも自動で前方検索が走るので、Ctrl+B だけでも該当箇所が開きます。なお Ctrl+l は通常「行選択」に割り当てられていますが、LaTeXTools 有効時の .tex では Ctrl+l, Ctrl+l に退避され、Ctrl+l が各機能の起点になります。同期せずに PDF を開くだけなら Ctrl+l, v です。

逆検索(PDF → ソース)は、ビューア側から Sublime Text を呼び戻す設定が要ります。クリック操作はビューアごとに違います。

  • Skim(macOS) — PDF 上で **Cmd+Shift+クリック**。
  • SumatraPDF(Windows) — PDF 上で ダブルクリック
  • Evince(Linux) — PDF 上で **Ctrl+左クリック**(Okular は Shift+左クリック、Zathura は Ctrl+左クリック)。

macOS — Skim の場合、Skim の環境設定で逆検索を有効にします。Preferences → Sync タブを開き、「Check for file changes」を外したうえで、プリセットを「Sublime Text」 に選ぶだけです。古い Skim でプリセットが無ければ、「Custom」にして Command に subl の絶対パス(/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl)、Arguments に "%file":%line を入れます。

Windows — SumatraPDF の場合、まず SumatraPDF を PATH に通しておくと LaTeXTools が見つけやすくなります。逆検索の設定 UI は、同期情報(.synctex.gz)を伴う PDF を開いたときだけ現れるので、一度 Ctrl+B でビルドして PDF を Sumatra で開き、Settings → Options の「逆検索のコマンドライン」に次を登録します(ST のパスは環境に合わせて調整)。

terminal
"C:\\Program Files\\Sublime Text\\sublime_text.exe" "%f:%l"

対応していないビューアでは、前方検索のキー(Ctrl+l, j)が単に「PDF を開く」操作と同じになります。逆検索がうまく働かないときは、-synctex=1 付きでビルドできているか、ビューア側のプリセット/コマンドが正しいか、LaTeXTools: Check Systemsublime_executable(subl の場所)が見えているか、の順に確認すると切り分けやすいです。