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 ビューア | 備考 |
|---|---|---|
macOS | Skim | 前方・逆検索に対応。Preview.app も別設定で利用可 |
Windows | SumatraPDF | Windows で対応する唯一のビューア。軽量で同期対応 |
Linux | Evince | Okular・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-settings を User ディレクトリに作ります(プラグイン本体側の既定ファイルは絶対に編集しません。更新時に上書きされます)。もうひとつは導入確認。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 は更新分だけを判断して必要な回数だけ処理を回すツールで、相互参照や目次が確定するまでの繰り返しを自動でこなします。既定のコマンドラインはおおむね次の形です。
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 も使えます。
%!TEX program = lualatex指定できるのは pdflatex・lualatex・xelatex の三つだけです。同様に %!TEX options = ... でエンジンへのオプション(例: --shell-escape)を、%!TEX root = <master> でルートファイルを指定できます。マジックコメントを使わず、設定ファイルや Sublime プロジェクトで指定する手もあります。LaTeXTools.sublime-settings の builder_settings ブロックでは、program(エンジン)・options・command・env(環境変数)を調整できます。
{
"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)・basic・script でのみ有効で、MiKTeX の texify では無視されます。
日本語の設定
ここで日本語ユーザーがつまずきやすい点があります。%!TEX program で選べるのは pdflatex・lualatex・xelatex の三つだけで、**uplatex や platex は直接指定できない** のです。LuaLaTeX で和文を組むなら話は簡単で、%!TEX program = lualatex と書き、luatexja/ltjsclasses 系のクラスを使うだけで済みます。
一方、理系の日本語論文で定番の upLaTeX + dvipdfmx(DVI を作ってから PDF 化する経路)を使いたい場合は、**エンジンの切り替えを .latexmkrc に任せる** のが最も素直です。traditional ビルダは裏で latexmk を呼ぶので、プロジェクトのディレクトリ(またはホーム)に .latexmkrc を置けば、LaTeXTools 側の設定をほとんど変えずに和文処理へ切り替えられます。次が upLaTeX + dvipdfmx の例です。
$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;要点は、$latex に uplatex、$dvipdf に dvipdfmx を割り当て、$pdf_mode = 3 で「DVI を作ってから dvipdfmx で PDF 化する」経路を選ぶことです。$latex 側にも **-synctex=1** を渡しておくと、DVI を経由しても SyncTeX 情報が PDF まで引き継がれ、後述の検索が効きます。LaTeXTools 側では、%!TEX program を 書かない(書くと pdfLaTeX 用の %E が選ばれてしまう)のが無難です。
より明示的にしたいなら、builder_settings の command で latexmk を直接指定する手もあります。たとえば "command": "latexmk" と書けば(-pdfdvi 等のオプションは .latexmkrc 側に寄せて)和文用の latexmk を確実に走らせられます。なお、command を自分でカスタムすると %!TEX program によるエンジン自動選択は効かなくなりますが、和文のように経路を .latexmkrc で決め打ちする構成では、もともとそれで問題ありません。
補完
LaTeXTools の補完は大きく三系統あります。コマンド補完、**\ref/\cite の補完、そして ファイル名・パッケージ名の補完(Fill Helper) です。まずコマンド補完。LaTeXTools は TeXStudio 由来の補完語リスト(CWL**)を同梱し、\ を打ち始めると候補のポップアップを出します。たとえば \te まで打つと \textit などが並びます。挙動は command_completion 設定で制御でき、prefixed(既定。\ で始まるときだけ表示)・always・never が選べます。文書中で読み込んだパッケージに応じた候補も、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 のパスは環境に合わせて調整)。
"C:\\Program Files\\Sublime Text\\sublime_text.exe" "%f:%l"対応していないビューアでは、前方検索のキー(Ctrl+l, j)が単に「PDF を開く」操作と同じになります。逆検索がうまく働かないときは、-synctex=1 付きでビルドできているか、ビューア側のプリセット/コマンドが正しいか、LaTeXTools: Check System で sublime_executable(subl の場所)が見えているか、の順に確認すると切り分けやすいです。