RakefileでLaTeXファイルを監視自動コンパイル

id:hayamizがなんかOMake つかって LaTeX コンパイルしたら簡単すぎて身長が5cm伸びたとか書いてたのでOMake使おうかと思ったけど

LATEX = platex
DVIPDFM = dvipdfmx

LaTeXDocument(document, document)

.DEFAULT: document.pdf document.dvi

ここでは、 .tex ファイルが "document.tex" というもの1つだけであることを仮定しとります。なので、hoge.tex なら ↑の内容の "document" を "hoge" に書き換えればおk。

とかちょっと面倒過ぎてありえないのでやっぱりrakeでやることにした。前々から使ってるLaTeXファイルコンパイル用のRakefileに継続的に自動コンパイルするcontタスクを追加。

desc "Continuation Watching Build"
task :cont do
    at_exit{
        loop do
            system("rake", "--silent")
            sleep 5
        end
    }
end

手抜き最高!


使い方は

  1. http://coderepos.org/share/browser/lang/ruby/misc/rake_template/Rakefile-latex をダウンロードしてRakefileという名前でtexファイル置いてるディレクトリに置く
  2. 対象のファイルがhoge.texならrake hogeとして一度コンパイル
  3. rake cont&として自動コンパイルをbgで走らせておく

あとはrakeがhoge.texから、hoge.texがinputしてるtexファイルやら画像ファイルやらbibファイルとか色々適当に監視して、更新されたらコンパイルしてくれます! やった!

test