重い腰を上げて Atom ことはじめ − LaTeX 環境設定編
もう随分長いこと、文章やコードを書くときは Vim というテキストエディタ(以下エディタ)のお世話になっています。良い感じに手に馴染んでおり大きな不満はないけれど、ときどきは世間の流行りが気になるものです。もっと良いものあるんじゃないかな?って。
巷では Sublime Text や Atom というエディタが注目されている模様。2017 年になったし心機一転、ブログでも始めるついでに新しいエディタをさわってみることにしました。まずは、日頃から少し不満を持っていた LaTeX 文書の作成を Atom でトライ!
目標としていたのは:
です。少し試してみて、まあまあいけるかな、っていう感じにはなりました。ちなみに計算機の環境は Mac で OS は El Capitan (10.11.6) です。
とりあえず Atom の設定
まずは Atom をインストールします。バージョンは 1.12.7
でした。少しだけ設定をいじります。
- 行間が開きすぎかなーと思ったので、
Settings => Editor => Line Height
を1.5
から1.3
に - なんとなくおしゃれになる気がしたので、
Settings => Editor => Show Indent Guide
を有効に Ctrl-Tab
とCtrl-Shift-Tab
の挙動が気にくわなかったので、keymap.cson
(Atom => Keymap...
) に下記を追加。何をしているかは ここ を参照
'body': 'ctrl-tab ^ctrl': 'unset!' 'ctrl-tab': 'pane:show-next-item' 'ctrl-shift-tab ^ctrl': 'unset!' 'ctrl-shift-tab': 'pane:show-previous-item'
本題ではないのでとりあえずこれくらいにしておきます。
LaTeX 用にカスタマイズ
LaTeX 環境はもともとインストール済み。MacTeX (なんか .pkg が 3GB くらいあるやつ)を毎年インストールしてます。気が向いたら $ sudo tlmgr update --self --all
としてパッケージの鮮度を保ってます。
さて。Atom には下記のパッケージをインストールしました。
latex
文書のコンパイル担当。競合パッケージとして latex-plus
と latextools
があるようです。latex-plus
が一番センスが良さそうな気がしたけど latex
を選択。理由は後述。
pdf-view
Atom 内の PDF 表示担当。Vim ではこれができないので憧れてました。SyncTeX もちゃんとサポートされています。PDF ビューワ内をクリックまたはダブルクリック(pdf-view
の SynTeX Reverse sync behavior
で設定)すると Tex ファイルの該当個所に (backword search)、Tex ファイル内で Ctrl-Opt-S
(Latex: Sync
) することで PDF の該当箇所に (forward search。こちらは latex
の機能) 飛びます。
autocomplete-bibtex
最初からインストールされている補完パッケージ autocomplete-plus
用の BibTeX autocomplete provider(と書けば良いのかな)。ちょっと設定にてこずりました。
config.cson
(Atom => Config...
) に下記を追加。
"autocomplete-bibtex": bibtex: [ "FULL_PATH_TO_YOUR_BIBTEX_FILE1" "FULL_PATH_TO_YOUR_BIBTEX_FILE2" : ] resultTemplate: "[key]" scope: ".text.tex.latex"
@example
という風に @
キーをトリガーに続けてタイプしていくと候補を絞ってくれます。 resultTemplate
の設定はお好みで。\\cite{[key]}
とかする手もあるけど \cite{}
内に複数の key を書くことはよくあるのでとりあえず [key]
にしました。
latexer
これまた補完担当。\ref{
とかタイプすると候補を出してくれたり(参照)、\begin{itemize}
とかして改行したら勝手に \end{itemize}
を挿入してくれたり(環境)、\cite{
とかタイプすると候補を出してくれたり(引用)します。引用の補完には上記の autocomplete-bibtex
を使うので、Settings
内の Autocomplete citations
は無効に。
linter-chktex
LaTeX 用の Linter。chktex
というのが LaTeX 文法の静的チェックをしてくれるツール(存在を今まで知らなかった)。
language-latex
リアルタイムプレビュー(自動保存と自動コンパイル)
さてあとはもう少し。文書を作成していて、自分でファイルを保存してコンパイルしないと更新された PDF を確認できないのって面倒くさいですよね。更新はリアルタイムに裏で勝手にやってほしい。つまり編集したそばからファイルが自動で保存されて、自動でコンパイルされる、という機能が必要です。ちなみに Vim のときは下記のように実現していました。
自動保存は
907th/vim-auto-save
プラグイン自動コンパイルは
latexmk
に-pvc
オプション を Vim から実行 。lervag/vimtex
プラグインがおすすめ
Atom でも同等のことを実現したいので少し調べてみました。自動保存に関しては最初から autosave
というパッケージがインストールされており、これを有効にしてみたものの思ったような動作ではなかったので同種のプラグインを色々(autosave-plus
、atom-idle-autosave
など)試してみたところ autosave-onchange
というパッケージが所望の動作をすることが分かりました。自動コンパイルに関しては latex
パッケージにだけ Build on Save
というドンピシャなオプションが用意されていました(これが latex
にした決め手)。
はい。autosave-onchange
パッケージをインストールして latex
パッケージの Build on Save
を有効に。これでリアルタイムプレビューができるようになりました。