2013年1月29日火曜日

Sublime Text 2 で LaTeX on Windows

2013/4/14 コメントでいただいた情報を追記


Sublime Text 2 とは?

Sublime Text 2 は最近巷で流行っている主にプログラムを書くためのエディターです.
僕はここ10年の殆どの期間 TeX 文書の編集に Emacs を利用しており,年に一度くらいの頻度で他のエディタを試しては Emacs に帰ってくるというのを繰り返していたのですが.Sublime Text 2 は大変使い心地が良く,今後も使い続けようと思うので TeX 編集環境の設定も含むインストール手順,その他もろもろをメモしておきます.

ライセンスについて

Sublime Text 2 は機能・期間ともに無制限の試用が可能ですが,継続して利用するためには USD \$59 を支払う必要があります.
個人用のライセンスを購入した場合ユーザーが一人であればマシン数は無制限であり,職場でも使って良いと明記されているので僕はこっちを購入して研究室と自宅で使っています.ちなみに研究室でライセンスを購入して共有PCにインストールする場合,マシン数とユーザー数の少ない方の数ライセンスを購入すれば良いようです.
今後変更される可能性もありますので詳しくは公式ページの情報を参照してください.

インストールと TeX ビルド環境の整備

インストールの際の設定と,TeX環境の整備手順についてメモしておきます.特定の研究室の学生さんを想定しており,情報に偏りがありますのでご注意ください.環境は
  • 日本語Windows 7 64bit
  • TeX Live 2012 がインストール済
    インターネット接続にプロキシが必要な環境下でのインストールについてはこちらを参照してください
を想定しています.

Sublime Text 2 本体のインストール

特に難しいところは無いので
からダウンロード,インストールを行ってください.

必要なパッケージのインストール

Sublime Package Control のインストール

まず,他のパッケージ類のインストールを容易にするためにSublime Package Control 
のインストールを行います.その手順は
に記載されていますが,要は
  1. Sublime Text 2 のウィンドウ上部のメニュー[View]-[Show Console] でコンソールを開く
  2. 上のリンク先の灰色のボックスに入っているコードを入力して実行する
という手順でOKです.
なお,このパッケージのインストールの際にもネットワークが利用されますが,プロキシなどの設定は Internet Explorer (IE) の設定が使用されている気がします.プロキシ環境でうまくいかなかった場合IEのインターネット接続設定を確認し,プロキシを手動で設定してみると解決するかも知れません.

Sublime Package Control のプロキシ設定

通常は設定しなくても動きますが,大学内などでインターネット接続にプロキシが必要な場合設定を行っておく方が無難です.
Sublime Text 2 の画面上部のメニューから[Preferences]-[Package Setting]-[Package Control]-[Setting Default]を選択し,
 // An HTTP proxy server to use for requests
 "http_proxy": "",
という感じの行を探して
 // An HTTP proxy server to use for requests
 "http_proxy": "proxy.kuins.net:8080",
のように設定を書き換えてください.
本来は [Preferences]-[Package Setting]-[Package Control]-[Setting Users] の方で設定するべき(アップデート時にデフォルト設定は初期化される)なのでひとしきりオプションを確認したら,設定したものをユーザー設定の方に移動しておくと良いでしょう.

日本語編集用パッケージのインストール

Package Control を使って IMESupport と ConvertToUTF8 をインストールします.Sublime Text 2 は標準では日本語のインライン入力ができないので IMESupport は事実上必須です.また,最近は TeX の文書も UTF-8 で作成することが多くなりましたが,学会のスタイルファイルで SJIS にお目にかかることもそこそこありますので, ConvertToUTF8 をインストールしておきます.
手順は以下のようになります.
  1. Sublime Text 2 のウィンドウで [Ctrl]+[Shift]+p を押下
  2. Install と入力すると自動的に 「Package Control: Install Package」が選択されるのでそれを実行
  3. IMEsupport を選択&インストール実行.これもテキストボックスに入力すると順次選択肢が減って勝手に選択されるはず.
  4. インストールが終わったら ConvertToUTF8 も同様の手順でインストール
  5. Sublime Editor を再起動するとインストールしたパッケージが有効になっているはず.

LaTeXTools パッケージのインストール&設定

つぎに,Sublime Text 2 で LaTeX の編集支援とビルドを行うパッケージをインストールし,ビルドに必要な設定を行います.
  1. IMESupport と同様の操作で LaTeXTools をインストール
  2. Sublime Text 2 のウインドウ上部のメニューから [Preference]-[Browse Packages] を選択
  3. 開いたエクスプローラが表示しているフォルダ内の LaTeXTools\ に移動して LatTeX.sublime-build を開く
  4. 上のファイルの「*** BEGIN MikTeX 2009 ***」と「*** END MikTeX 2009 ***」で挟まれた部分をコメントアウト(行頭に//をつける)し,以下の行を加える
     "cmd": ["latexmk", "-cd", "-f","-pdfdvi"], 

latexmk の設定

latexmk は TeX 文書のビルドを自動化する大変便利なツールで,最近の TeX ディストリビューションには標準で付属していますが,利用するためには設定が必要です.
Sublime Text 2 を利用しない場合でも有用なツールなので既に設定されているかも知れませんが, まだなら設定を行ってください.
手順は以下の通りです. 
  1. ホームディレクトリ( HOME 環境変数を設定していればそれが指定するフォルダ,何もしていなければ多分 C:\Users\ユーザー名 )に .latexmkrc というファイルを作成する.
    ※通常の操作ではファイル名を持たず拡張子のみのファイルは作成できないのでコマンドプロンプトを起動([ウィンドウズキー]を押し cmd と入力してエンター)して
    echo -n > .latexmkrc
    と入力する
  2. .latexmkrcの内容を編集する.だいたい下みたいな感じ
    #!/usr/bin/perl
    $latex         = 'platex -src-specials -shell-escape -interaction=nonstopmode -synctex=1 -kanji=utf8 -guess-input-enc %O %S';
    $bibtex        = 'pbibtex %O %B';
    $dvipdf        = 'dvipdfmx %O %S';
    $pdf_mode      = 3; # use dvipdf
    $pdf_previewer = 'SumatraPDF.exe -reuse-instance';
    
    
念のために2.で設定するオプションのうち,一般的でないものの効果を書いておきます.
  •  -shell-escape: platexに外部プログラムの起動を許す.PDFファイルを図として取り込む場合,このオプションを指定しておくとバウンディングボックスを取得するプログラムを自動的に起動してくれるので楽.セキュリティホールになるので素性が怪しいファイルを処理する際にはオプションを解除するべき.
  • -synctex=1: synctex用のデータを付加してコンパイルする.PDFやDVI上でクリックした位置に対応するソースファイルの位置を取得するために必要
  • -reuse-instanse: 既に SumatraPDF でファイルが開かれていれば新しいウィンドウを開かない

SumatraPDF のインストールと設定

 ビルド結果の確認を dvi ではなく PDF で行う場合,Adobe Reader にはファイルをロックしてしまう問題がある(毎回 Reader を閉じないと文書をビルドできない)ので,SumatraPDF をインストールします.また,SyncTeXに関する設定を行い,表示されているPDFをダブルクリックした際に,TeXソースを開いているエディタのカーソルが対応する位置まで移動するようにします.

  1. http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader-ja.html
    から SumatraPDF をダウンロードし,インストールする.
  2. 64bitなWindowsの場合 C:\Program Files (x86)\SumatraPDF に,32bitなWindowsの場合 C:\Program Files\SumatraPDF にパスを通す.コントロールパネルの環境変数の設定でシステム環境変数から Path という環境変数を探して編集し,末尾に;C:\Program Files (x86)\SumatraPDF 等を追加する.
  3. SumatraPDF を起動し,上部のメニューから[設定]-[オプション]を選択
  4. 開いた「SumatraPDF のオプション」ダイアログにある「逆順検索コマンドラインの設定」テキストボックスに
    "C:\Program Files\Sublime Text 2\sublime_text.exe" "%f:%l"
    を入力.ダブルクォーテーションもそのまま入れる.
    2013/4/14 追記
    彼方さんから頂いたコメントによると,TeXで生成されたPDFを開いた状態でないと上記の設定項目が現れないそうです.情報ありがとうございます.詳細はコメント欄をご覧ください.

ひとまず完了

ここまでの手順で一通りエディタが使えるようになっているはずです.
さまざまなプラグインや設定でより使いやすくなるようなので,お勧めの設定があればぜひ教えてください.

とりあえず覚えるべきショートカット

ビルドと確認

  • [Ctrl]+b でビルド
  • [Ctrl]+l, j でカーソルの現在位置に対応するところまで PDF ビューア(SumatraPDF)の表示位置を移動. ビューアが起動していなければ起動します.
  • SumatraPDFの画面でダブルクリックすると,TeXを編集しているエディタのカーソルが対応している位置まで移動します.

補間

  • \label を使った参照の補間
    \ref{(カーソルはこの位置)} で [Ctrl]+[スペース] 
  • 参考文献の補間
    \cite{(カーソル)} で [Ctrl]+l, [Ctrl]+[スペース]
    ※ BiBTeXを使って参考文献リストが作られていることが必要
  • 環境(\begin{...}~\end{...} )の補間
    remark(カーソルはこの位置) で [Ctrl]+[l], e と入力すると
    \begin{remark}
    \end{remark}
    になる
  • 英単語の補間
    ファイル中に既にある単語であれば単語中の文字からの補間が可能です.
    例えば orthogonal という単語が既にファイル内に存在していれば
    ognl[tab]
    で orthogonal に変換されます.とても便利です.

定型文の挿入

このあたりのは自分でカスタマイズした方が良いかもしれません.
  • \includegraphicsする図環境のスニペット
    bfigure[tab]
  • table 環境に入った tabular のスニペット
    btable[tab]
  • enumerate, itemize 環境
    be[tab]
    bi[tab]

5 件のコメント:

  1. 閲覧者です.

    > 4. 開いた「SumatraPDF のオプション」ダイアログにある「逆順検索コマンドラインの設定」テキストボックスに...

    とありますが、どうやらsumatraPDFでpdfファイルを開いた状態でないと「逆順検索コマンドラインの設定」のテキストボックスが出現しないようです。

    そのことはLaTeXToolsのREADMEに書いてはあるのですが、sumatraの方では説明が見当たらずしばらく詰まったのでここにコメントとして残させて下さい…


    (LaTeXToolsの説明には until you open a PDF file that has actual synchronization information とありますが、特にsynchronization informationとやらを気にせずコンパイルしたpdfファイルを開いただけでダイアログ出現→ダブルクリックによる同期などが機能し始めました。同一階層にpdfとtexの両ファイルがあったからかな?)


    大変参考になる記事をありがとうございました.

    返信削除
  2. 「最初設定項目がなくて困ったけどいろいろやっているうちに何故か設定できた」という方がおられて気になっていたのですが,理由がわかってスッキリしました!

    ありがとうございます.

    返信削除
  3. ブログ拝見させていただきました。
    LaTeX初心者でおかしな質問かもしれませんが、ここではpLaTeXを使用していましたが、これはLaTeX2eとは異なるのでしょうか?SublimeText2でLaTeX2eは扱えないんでしょうか?

    返信削除
  4. ここで使っている TeX Live 2012 の platexコマンドのバージョン表示は
    pLaTeX2e <2006/11/10> (based on LaTeX2e <2011/06/27> patch level 0)
    となっています.
    ご質問の意図が完全には理解できておりませんが,
    オリジナルの(日本語が使えない) LaTeX2e をご所望ということでなければ,
    いわゆる LaTeX2e と同じものだと考えていただいて良いように思います.

    返信削除
  5. 友人は、私は翻訳が悪いんので、私は、英語でのチュートリアルを行うことができれば、私は疑問に思う、私はあなたが私を助けることを願って、私は設定を使用するようにするとWindows sublimetexからビルドしたい

    Friend, I wonder if I can do the tutorial in English, because I do the translation is bad, I hope you can help me, I want to make the settings to use and build from Windows sublimetex

    返信削除