vimで論文を執筆しているのだが、TeXのコンパイルを簡単にできないかと思った。
というのも、
platex exam.tex bibtex exam.aux platex exam.tex platex exam.tex dvipdf exam.dvi
という一連の処理を行ってようやくちゃんとしたPDFが作れるからだ。これは面倒くさい。一つのコマンドで全てできないか。
まず、 .bashrc をいじりたかったが、これをホームディレクトリに作っても機能しなかった。なぜ……? だが .bash_profile は機能した。どんな不都合があるのかよく分からないが、これで代用する。
aliasを利用して簡単にコンパイルできるようにしたかったが引数がうまく使えず、functionでできた。
funciton texcom(){ platex $1.tex bibtex $1.aux platex $1.tex platex $1.tex dvipdf $1.dvi }
これを.bash_profileに書き込むだけ。ついでに
export $THESIS="/cygdrive/c/Dropbox/Study/thesis"
とか適当に登録してみたり。
で、やってみたけど、これだけだとvimからは使えなかった……。なので .vimrc を編集。
command Texcom call s:Texcom() function s:Texcom(){ silent !platex % silent !bibtex %<.aux silent !platex % silent !platex % !dvipdf %<.dvi }
- %は編集中のファイルのパス、%<は拡張子を除去したものをそれぞれ意味していて、コンパイルなどのときに便利
- silentは各処理の度に「続けるにはEnterを押すかコマンドを入力してください」と出るのを防ぐ
- 自分で定義するコマンドは単語の頭を大文字にしないと怒られる
参考サイト
追記(2013-08-16)
色々あって*1、.vimrcは結局こうなった。
command Tex call s:Tex() function s:Tex() write silent !platex % silent !bibtex %<.aux silent !platex % silent !platex % silent !dvipdf %<.dvi silent !startxwin silent !xpdf %<.pdf redraw! endfunction