最低限度のTex編集環境をVimで実現する。
下記の4つをとりあえず実現したい。
- VimでLaTeXコードを編集
- そこそこのハイライトと編集補助
- 編集しながらコンパイル+結果の閲覧
- (いずれ)コンパイル命令を選択(英文ならpdflatex、luatexなら日本語など)
いろいろ迷った結果、結局 「latexmk + vimtexプラグイン + vimrc」を選択した。
欲しい機能を実現しつつ、なるべくブラックボックス化しないことを心がけた。
latexmkは、texコードのコンパイルを支援するアプリケーションで、これ自体はVimとは関係ない。texコードのコンパイルは、相互参照の反映のために複数回走らせる必要があるが、latexmkはどんな命令が何回どういう順序で必要なのかをコードの中身から判定し、その通りに走らせてくれる。もちろn、Vim以外でも使用可能。
一方、vimtexプラグインは、Vim編集中にlatexmkを用いて文書をコンパイルしたり閲覧したりする機能を提供している。また、ハイライトと編集補助も多少ついてくる。
必要な追加機能はvimrcのカスタマイズで実現する。
環境はUbuntuを想定している。
latexmk のインストール
texliveを入れた時についてきていたらしい。
適当なtexファイルを用意して、端末から
latexmk -pdf test.tex
としてPDFファイルが出力されればインストールできている。
vimtexプラグインのインストール
Vimのプラグインの管理ツールはいくつか有名どころがあるそうだが、僕は vim-plugというツールを使うことにした。必要十分な機能に絞られていて、あまり煩くないのが良いと思う。
vim-plugのインストール
GithubページのREADMEに従い、本体のplug.vim
をダウンロードして、 ~/.vim/autoload/
に保存する。
Vimを開いて、
:PlugInstall
というコマンドが入っていれば成功している。
vimtexのインストール
GithubページのREADMEに従い、自分の.vimrcファイルに以下を追加する。Plug 'xxx/yyy'
というのは、Githubからインストールするための省略記法らしい。
call plug#begin('~/.vim/plugged')
Plug 'lervag/vimtex'
call plug#end()
再びVimを開いて、:PlugInstal
を走らせると、指定されたプラグインがインストールされる。
終わったら、:nmap
としてみて、vimtexが提供されるマッピングがリストに入っていれば成功している。たとえば、vimtex-view vimtex-compile-toggle など。
vimrcでカスタマイズ
僕は、普段は pdflatexをコンパイルに使っているので、.vimrcには下記を追加している。latexmk -pdf
はpdflatexでコンパイルさせるオプションらしい。
いずれ、日本語のコンパイルが必要になった時にはluatexに切り替えるためのマッピングを書こうと思う。
let g:latex_latexmk_options = '-pdf'
動作確認
適当なTexファイルをVimで開いて、コマンド <localleader>ll
を打つ。すると、continuousモード(保存するたび再コンパイル)のオンオフが切り替わる。出力結果を見るためには、 <localleader>lv
とする。するとデフォルトのPDFビューアで文書が開かれる。Continuousモードなら、スクリプトを更新して保存するたびに文書も更新される。