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)
とすれば, 有効にできる.