ずっと Emacs で LaTeX 文書を書いていたのだけれど, 最近 Emacs Lisp も書く気力もわかなく, LaTeX のためだけに Emacs のことを勉強するのも苦痛になってきたので, とうとう Vim に乗り換えてしまった. たぶんいちばんまともなのは TeXStudio を使うことなのだけれど, まぁ普段日本語を書くとき以外は Vim を使用しているのだが, これを機に Vim の使い方の幅を広げてみようと思ってとりあえず環境をつくり始めていた. だいたい固まってきたので, ここに自分用メモとして(重要)まとめておく.
ちなみに, Vim でやるかと思わせてくれたのは Vim で Beamer を使ってスライドを作った人の完成度が高くてすっげーと思った次第. 僕ミーハーなので……
プラグイン
まず大前提ですが, 僕は NeoVim を使っています. 差はよく知りませんが, 一部のプラグインは NeoVim のみのサポートです.
プラグイン管理は dein.vim, 補完プラグインは deoplete.vim, スニペットは neosnippet.vim. この辺の話は真面目には書かない.
インストール方法などは上記の GitHub などに掲載されているので, 興味のある方は自分で調べるなりなんなりしていただくことにする.
dein.vim で管理している場合は .vimrc に次のように記述.
call dein#add('lervag/vimtex')
ちなみに僕自身はこのプラグインはメインファイルの再帰検索と, latexmk -pvc
を vim から起動する以外に使ってないので, 実際にはもっと高機能なのだろうけどあまり使い方を知らない. リポジトリの doc を読むなりすべき(僕がサボっているので全く説得力がない).
TeXWiki を参考に次のように設定.
"" "" vimtex "" let g:vimtex_latexmk_continuous = 1 let g:vimtex_latexmk_options = '-pdfdvi' let g:vimtex_view_general_viewer = 'okular' let g:vimtex_view_general_options = '--unique @pdf\#src:@line@tex'
vimtex というプラグインは latexmk でタイプセットをするので, .latexmkrc はちゃんと設定しておく.
上のコードは let g:vimtex_latexmk_continuous = 1
は latexmk -pvc
を自動で起動させるもの. let g:vimtex_view_general_viewer = 'okular'
は, PDF viewer は okular を使う, let g:vimtex_view_general_options = '--unique @pdf\#src:@line@tex'
は okular --unique
コマンドでビューワーを起動するという意味. Windows の設定は TeXWiki を見てね.
再帰検索
たとえば, つぎのようなディレクトリ構成になっていたとする.
├── main.tex └── src ├── section1.tex └── section2.tex etc...
このとき, Vim で section1.tex を編集しているがコンパイルの対象は main.tex である, ということはよくある. しかし, この状態で vimtex のコンパイルコマンド :VimtexCompile
を起動しても section1.tex をコンパイルしようとして(\documentclass がないから)失敗する. おそらく一度は経験がある人が多いのでは. それを避けるために, main ファイルを空ファイルを作ることで指定する. すなわち,
├── main.tex ├── main.tex.latexmain └── src ├── section1.tex └── section2.tex etc...
という構成にする(main.tex.latexmain は空ファイルでよい). すると, secton1.tex を vim で開いて :VimtexCompile
を叩くと, main.tex をコンパイルしてくれる. 詳細は :help vimtex
参照.
ちなみに :VimtexCompile
のデフォルトのキーバインドがよくわからないので, 自分で割り当てた.
nnoremap <C-x>t :VimtexCompile<Enter>
これで Ctrl-x , t と入力すればコンパイルが始まる. なに? Emacs っぽいだって? わざとです.
もっと便利にしよう!
スニペットなどを登録すれば自作マクロも補完されるようになったり, いろいろと便利なのでよく使うものはなるべくスニペット作ったりして行きましょうという話. そういうのは Gist に置いてある.
これは僕の自作のもの. 今の所完全手動なのだけど, 自動で登録する方法とかないんかなとか思っていたりいなかったりするし思っているだけだったりする. まぁこれだけでもかなり便利になった.
とりあえず環境がだいたいできてきた. 大学院生になって今までよりは LaTeX 文書を書く機会が増えるようになるのでもっと便利にしていきたいですね.