reftex で参照する bib ファイルを更新する

概要

reftex で参考文献を参照するときに, bib ファイルを外部から更新すると,emacs 内では bib ファイルが更新されず, 新しく追加した文献を C-c [ で見つけることができない.これをなんとかしたい.

解決策

reftex が参考文献を参照するときは, 裏で bib ファイルが開かれており, buffer 上の bib ファイルから参考文献が検索されている.このため buffer 上の bib ファイルをディスク上から再読み込みすれば reftex の参照にひっかかるようになる.bib ファイルを開き M-x revert-buffer を実行すれば再読み込みできる.

もっとよい解決策として, bib ファイルを開き M-x auto-revert-mode を実行する方法がある. auto-revert-mode では, ディスク上でファイルが更新されたときに自動的に buffer 上のファイルも更新してくれる.

bib ファイルを開いたとき自動的に auto-revert-mode にするには bibtex-mode-hook に auto-revert-mode をひっかければよい.

(add-hook 'bibtex-mode-hook '(lambda () (auto-revert-mode t)))

こうしておけば, reftex で参照するときにいちいち bib ファイルを更新する手間が省ける.

Emacs 23 からはすべてのファイルを自動的に auto-revert-mode で開くためのグローバル変数 global-auto-revet-mode というものも存在する.

(global-auto-revert-mode t)

とすれば, 有効にできる.