前回(Emacsのorg-modeで論文を書く(その2:BibDeskによる論文収集と整理))は,BibDeskを用いて文献情報をbibtex ファイルとして収集する方法についてまとめた.今回は,この文献情報を利用した引用をEmacsのorg-modeでどのように自動化するかについてまとめる.早い話が,org-modeからlatexのbibtexとreftexの機能を利用するということになる.
Table of Contents org-mode-reftex-setup org-mode-reftex-setupの使用方法 ox-bibtex.el bst ファイルについて bst ファイルの置き場所 文献を引用したorg-modeからのexportの実例 org-mode-reftex-setup 参照サイト:Using Emacs Org-mode to Draft Papers
RefTex-ModeというものがEmacsには含まれている.文献や引用の管理のためのパッケージである.詳細はC-h iでマニュアルを見れば分かる,と言いたいところだが,このマニュアルが膨大である.そこで,RefTeX in a Nutshellという2ページほどの要約を読めば,使うのには十分であるとマニュアル自体に書いてある(笑).実は私はそれすらろくに読んでいないが,以下のように設定すれば,十分に使える.設定方法は,以前の記事(Emacsの設定(その2)設定ファイル(init.el)をorg-modeで管理する)に記載したとおり,init.orgに書き込めば良い.
#+begin_src emacs-lisp (defun org-mode-reftex-setup () (load-library "reftex") (and (buffer-file-name) (file-exists-p (buffer-file-name)) (reftex-parse-all)) (define-key org-mode-map (kbd "C-c )") 'reftex-citation) ) (add-hook 'org-mode-hook 'org-mode-reftex-setup) #+end_src 上記の設定により,参照サイトの説明のように,org-modeの中でreftex-citationの機能が働くようになる.
org-mode-reftex-setupの使用方法 org-modeで文書を書いている最中に文献を引用したい箇所で,C-c ) と打つ
すると,まず,どの文献リストを使うかを聞いてくるので,hogefuga-reference.bibなど使いたいリストの名前を打つ.前回説明した方法で収集した文献のbib ファイルが有るはずである.
次に,文献を絞り込むためにキーワードを打つように催促されるので,それを打つ.すると,そのキーワードを有する文献のリストがずらずらと並ぶ.下図の例では,stetler と著者名を打ったときの結果が下のバッファに表示されている.該当する文献にカーソルを持ってくるか,クリックして選択し,リターンを押せば決定され,本文の該当箇所にその論文の cite-key,つまり,\cite{Stetler:2012jt} が入力される.
上図の下のバッファ内でも,C-sの検索機能は使えるので,さらに絞り込みが必要な際は便利である.以前の記事(Emacsの設定(その1)Preludeの導入)で述べたようにpreludeを導入して,かつ,helmを有効にしておけば,下図のようにC-sでswiperが使えて更に便利である.(なお,下図では,まず,heat shock proteinと打ち,ズラッと並んだ真ん中のバッファでC-sとやってstetlerと打ったところである.一番下のバッファにstetlerで絞り込まれた候補が並んでいる)
ox-bibtex.el 参考サイト:Org and Bibtex
上述の作業で,文献を本文中にcite-keyとして引用することはできた.次に必要なのはorg-modeからpdfやhtmlにexportする際に,cite-keyをもとに,文献が雑誌の規定の様式で引用され,最後に文献リストが規定の様式で記述されるようにすることである.この面倒をみてくれるのが,ox-bibtex.el である.
ox-bibtex.elは,org-plus-contrib packageの中に含まれているので,まず,org-plus-contribをインストールする.これは,package.el を使えば簡単である.