hogashi.*

日記から何から

Windows7のSublimeTextでTeX環境構築

 Windowsってだけで色々厳しかった気がしますが、なんとか動くようになったので道程を書きます。
 先に書いておくと、CloudLaTeXなる素晴らしい(らしい)ものがあるので、それで十分なのかもしれません。cloudlatex.io

TeXと付随するソフトのインストール

TeXのインストール

 今回はW32TeXを使いました。
> W32TeX - TeX Wiki
 "TeXインストーラ3"なる偉大なインストーラ*1があるので、それを利用しました(W32TeX, dviout, Ghostscript, GSviewを一緒くたにインストールしてくれます)。
> TeXインストーラ 3
 TeXインストーラ3の手順は、詳しく説明してくれている以下のサイトを参考にしました。did2memo.net
 ただ気を付けるべき点はおそらく、最初のファイルダウンロード元URLの設定だろうと思います。「~のダウンロードに失敗、ログを見れば~」みたいなダイアログが出たり、「ダウンロード&インストールするファイルを選んでください」のリストのどれかが一つもなかったら、戻ってその項目のプルダウンのURLのリストをひとつずつ試してみてください。
 全て成功したら、あとはインストールを待ちます。終わり次第促されるまま再起動。
 W32TeXをインストールしたフォルダ以下のbinフォルダを、環境変数PATHに追加します。

Ghostscriptの設定

 Ghostscriptを起動し、「Options -> Advanced Configure...」を選択、Ghostscript Optionsに「-dWINKANJI」を追加します*2。追加後は以下のようになります。

-dNOPLATFONTS -sFONTPATH="c:\psfonts" -dWINKANJI

 追加したら「OK」で設定を保存し、Ghostscriptを閉じて完了です。

Perlのインストール

 後述のlatexmk.exeがPerlスクリプトの為、Perlをインストールする必要があります。
 今回はStrawberryPerlをインストールしました。
> Strawberry Perl for Windows
 Perlの実行ファイルのあるフォルダが環境変数PATHにあることを確認します(無ければ追加します)。

Sublime Text

 何かと機能性の高いエディタ、Sublime Textをインストールしました。今回使ったのはSublime Text 3*3です。www.sublimetext.com
> Sublime Text - Download

LaTeXTools

Package Controlのインストール

 まず、Sublime Textのパッケージ管理ツールであるPackage Controlをインストールします。
 Sublime Textを起動し、「[Ctrl] + [`]」を入力*4すると、下にコンソールが出るので、そこへ以下のサイトにある長い1文を入れ、[Enter]します。
> Installation - Package Control
 魔法のようにPackage Controlがインストールされます。

LaTeXToolsのインストール

 Package Controlを使って、LaTeXToolsをインストールします。
 「[Ctrl] + [Shift] + [p]」でコマンド窓が開くので、「Package Controll: Install Package」と入力してこれを選択し、パッケージ検索窓に「LaTeXTools」と入力しこれを選択するとインストールされます。

LaTeXToolsの整備

 そのままでは上手く動かないので、設定など整備します。

 まず、初期設定を適用します。「[Ctrl] + [Shift] + [p]」でコマンド窓を開き、「LaTeXTools: Reconfigure and migrate settings」と入力しこれを選択します。

 次に、裏で動作するファイルの内容を変更します。「Settings -> Browse Packages」から開くフォルダ*5以下の「LaTeXTools\builders\traditionalBuilder.py」を、ファイル前方(多分18行から)について以下のように編集します。

#...(前略)

#もともとあった行 ここから
# DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
# 				"-e", "$pdflatex = '%E -interaction=nonstopmode -synctex=1 %S %O'",
# 				"-f", "-pdf"]
#もともとあった行 ここまで

DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
                    "-e", "$latex = 'uplatex %O -interaction=nonstopmode -synctex=1 %S'",
                    "-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
                    "-e", "$bibtex = 'upbibtex %O %B'",
                    "-e", "$makeindex = 'makeindex %O -o %D %S'",
                    "-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
                    "-f", "-norc", "-gg", "-pdfdvi"]

#もともとあった行 ここから
# WINDDEFAULT_COMMAND_WINDOWS_MIKTEX = ["texify", 
#  					"-b", "-p",
#  					"--tex-option=\"--synctex=1\""]
#もともとあった行 ここまで

DEFAULT_COMMAND_WINDOWS_MIKTEX = DEFAULT_COMMAND_LATEXMK

#...(後略)
LaTeXの設定

 今度はLaTeX自体の設定です。ただこれは後からファイルを消しても大丈夫だったので要らない設定かもしれません*6

 環境変数HOMEがあればその場所、無ければC:\Users\[ユーザ名]に、「.latexmkrc」を置きます。Windowsだと拡張子のみのファイルはエクスプローラからでは作れないので、コマンドプロンプトでその場所を開いて、

% echo hoge > .latexmkrc

とかコマンドを打って作ります。
 .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';

SumatraPDF

 編集中のPDFビューに使うPDFビューワとしてSumatraPDFをインストールしました。もしかすると最新版は前述のTeXインストーラでインストールされるかもしれません、それならそれで問題はありません。
 インストール後、SumatraPDFのインストール場所を環境変数PATHに追加します。www.sumatrapdfreader.org
 AcrobatReaderでもPDFは開けますが、わざわざSumatra PDFをインストールする理由があります。AcrobatReaderは、PDFファイルを開くとファイルを占有し更新ができません。他方Sumatra PDFは、PDFファイルを開いたままファイルを更新できるのです。よってPDFビューワを閉じることなく

  1. TeXファイルを編集する
  2. ビルドする
  3. PDFビューが更新される

の流れを可能にできます。また後述のように、エディタとPDFビューワの対応づけが可能です。

SumatraPDFの設定

 エディタとの対応をとるために、SumatraPDFの設定をします。
 SumatraPDFのメニューから「設定 -> オプション」を選択します。出た窓の「逆順検索コマンドラインの設定」に、以下のように入力します。

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

 一つ目のクオート内にはSublime Textの実行ファイルのパスを書きます。インストール時に場所を変えている場合は、それに沿って書いてください。


 ここまでで構築は終わりです。

使い方

 使い方は、

Sublime Text:
  [Ctrl] + [b] : ビルド
  [Ctrl] + [l], [j] : カーソル位置と対応する場所をPDFビューで表示
SumatraPDF:
  ドキュメントをダブルクリック : Sublime Textのカーソルを対応する場所へ移動

などです。何かTeXで書いてみて、ビルドしてみて下さい。

TraditionalBuilder: Invoking latexmk... done.

と出ればビルド成功です。
 以下のLaTeXToolsのgithubページに詳しいです。github.com

故障かな?と思ったときは

 何故か上手くいかないときは、以下のことを確認してみて下さい。

「[Ctrl] + [b]」でビルドができない

  • とにかく再起動したか
  • Perlの実行ファイルのあるフォルダが、環境変数PATHに追加されているか
  • LaTeXToolsの初期設定を適用する「LaTeXTools: Reconfigure and migrate settings」を実行したか
  • LaTeXToolsの裏で動く「traditionalBuilder.py」を適切に編集したか
  • .latexmkrcを適切な場所に置き、編集したか
  • 書いたTeXファイルの内容にエラーが無いか

ビルドはできるがPDFが生成されない

  • とにかく再起動したか
  • W32TeXのbinフォルダが環境変数PATHに追加されているか

故障かな?と思わなかったときは

 有難く利用しましょう。

参考

 以下のページを参考にしています(既に挙げたものももう一度挙げています)。
> W32TeX - TeX Wiki
> TeXインストーラ 3
did2memo.net
> Sublime Text 2 で LaTeX on Windows - Ichiro Maruta Homepage
wshinya.hatenablog.com
> Installation - Package Control
github.com

*1:2015/10/11現在での最新版は0.85r1

*2:WindowsAPIを使ってフォントを表示する設定、らしい(W32TeX)

*3:2015/10/11現在で最新版はBuild 3083

*4:または「View -> Show Console」

*5:おそらくC:\Users\[ユーザ名]\AppData\Roaming\Sublime Text 3\Packages

*6:よく考えるとWindows7に「/usr/bin/perl」とか存在しない(シェバンは無視されるだけかもしれないけれど)