BibTeX と Org Export

以前の記事 (Org Export) で Emacs の Org-Mode で作成したファイルを LaTeX 形式へエクスポートする方法について簡単に触れた。Org-Mode のエクスポート機能を利用すれば、執筆中に LaTeX 等の構文を考慮しなくてもよいので、より簡単に文書を作成することができる。今回は Org-Mode で BibTeX の文献データベースを利用する方法をメモしておく。なお Mac OS X (10.6.8), Carbon Emacs パッケージ (22.3.1), org (7.4), pTeX (via Macports, 3.141592-p3.1.10) で作業を行なっている。

必要なものは Org-Mode の配布用アーカイブの /contrib/lisp 以下に含まれる org-exp-bibtex.el なので、適宜パスの通ったところにコピーしておく。設定ファイルには、

(require 'org-exp-bibtex)

と書いておく。

Org Export as LaTeX を実行した時に読み込むパッケージ類も適宜設定しておく。私は普段 BibTeX 用に natbib.sty を利用しているので、次のように書いている。

(require 'org-latex)
;; for details, see org.el, 3213 ff., 3265 ff. and org-latex.el.
(setq org-export-latex-packages-alist
  '(("AUTO" "inputenc"  t)   ; automatically replaced with a coding system
    ("T1"   "fontenc"   t)
    ("deluxe,expert,multi"     "otf"   nil)
    (""     "txfonts"   nil)
    (""     "graphicx"  t)
    ("dvipdfmx"     "color"  nil)
    ("setpagesize=false,dvipdfmx"     "hyperref"  nil)
    ("longnamesfirst,colon,sort&compress"     "natbib"  nil)
    ;; ...                                                      ; 適宜追加
    ))

この org-export-latex-packages-alist で設定されたパッケージは LaTeX 形式にエクスポートされたすべてのファイルに適用されるが、そのファイルでのみ使用したい場合は org ファイルの先頭に、

#+LATEX_HEADER: usepackage{natbib}

等と必要なパッケージを付け加える。

AUCTeXYaTeX などを利用して LaTeX 文書を執筆する場合、BibTeX ファイル (.bib) の文献を引用するには RefTeX を使用すると便利である。特に何も設定しなくとも Org-Mode からも同様に RefTeX を利用することができる (M-x org-reftex-citation, C-c C-x [)。キーバインドを変更したければ Emacs 設定ファイルに、

(define-key org-mode-map (kbd "C-c [") 'org-reftex-citation)

というように適宜変更する。

例えば文献情報に “bibunsho” を含む資料を引用したい場合、org ファイル内で M-x org-reftex-citation を実行して、”bibunsho” と mini-buffer に入れると、

https://skalldan.files.wordpress.com/2011/07/wpid-reftex_okumura2.png

というように別ウインドウに条件を満たす BibTeX データベースの文献リストが並ぶ。このバッファ内で “n” (next) や “p” (previous) で目的の文献を選択し Return で決定すると、元の Org ファイルに目的の文献が引用される。

もう一点前準備として、org-latex-to-pdf-process に latexmk を利用するように設定しておくと便利かも知れない。latexmk とは Perl で書かれた LaTeX コンパイルの支援プログラムだが、BibTeX や makeindex などの処理を含む場合も、適切に判断して必要な回数だけコンパイルを行ってくれる。インストールは Macports から可能だ。

$ sudo port install latexmk

初期設定はホームフォルダの .latexmkrc で行う。日本語の TeX を利用する場合、例えば次のように設定しておく。

$latex  = 'platex -kanji=utf8 -src-specials -interaction=nonstopmode';
$bibtex = 'jbibtex -kanji=utf8';
$dvipdf  = 'dvipdfmx %O -o %D %S';
$pdf_previewer = 'open %O %S';
$pdf_mode = 3;                  #  3 = create pdf file by dvipdf
$pdf_update_method = 0;         #  0 =  auto update

Emacs の設定ファイルには、

(setq org-latex-to-pdf-process '("latexmk %f"))

と書いておく。

以上で Org-Mode で BibTeX データベースを利用するための設定は完了した。

次のような org ファイルを RefTeX などを利用して準備してみる。

https://skalldan.files.wordpress.com/2011/07/wpid-texbook2.png

BibTeX ファイル (texbook.bib, 文字コード UTF-8) は TeX Wiki の TeX についての本/文献データベース をほぼそのまま転用した (最近の情報などを少しだけ追加)。

@Comment copy from http://oku.edu.mie-u.ac.jp/~okumura/texwiki

@book{jtexbook,
    author    = "Donald E. Knuth",
    title     = "改訂新版 {TeX}ブック",
    publisher = "アスキー",
    isbn      = "4-7561-0120-8",
    year      = 1992,
}

@book{jlatexbook,
    author    = "Leslie Lamport",
    title     = "文書処理システム{LaTeX}",
    publisher = "アスキー",
    isbn      = "4-7561-0784-2",
    year      = 1990,
}

... (以下省略) ...

bst ファイル (jecon.bst) には武田史郎氏の 経済学用 BibTeX スタイルファイル を利用させていただいた。それらの情報 (texbook.bib, jecon.bst) を、参考文献を出力したい場所に、

#+BIBLIOGRAPHY texbook jecon

というように記述する。Org export as LaTeX, process to PDF and open PDF file (C-c C-e d) を実行してみる。

https://skalldan.files.wordpress.com/2011/07/wpid-texbook_pdf2.png

簡単な文書作成なら、こうして Org-Mode で作成するほうが手間が省ける。また文系分野では往々にしてありえることだが、寄稿する原稿の形式として TeX を受け付けてもらえない場合には、Text 形式で Export して (Word など) 指定された形式に加工して投稿することもできるだろう。そのうち Org-Mode と Microsoft Word の連携なども実現するかもしれない1。一方で、その Org ファイル作成の目的が LaTeX 形式へのエクスポートのみである場合や、TeX マクロを駆使して細部に凝った大きな文書を執筆する場合などは、はじめから AUCTeX などを利用して従来通り LaTeX 文書として執筆した方が融通は効くだろう。ちなみに、るびきちさんの『Emacs テクニックバイブル』はひとつの Org-Mode のファイルで書かれたそうである (同書, p. 272)。Emacs 内で文章を書く mode はすべて Org-Mode で統一される、という方向へ向かっているのかも知れない。

参考

関連記事

Footnotes:

1 [Edit: 2011/12/15] Org-Mode 7.6 からは OpenDocumentText 形式のエクスポートをサポートしているので (OpenDocumentText Exporter for Orgmode)、実質ほとんど可能となったと言える (→ Org-modeとMS Wordの連携)。ODT exporter はながらく contrib 扱いであったが、Org 7.8 では正式に core に含まれるようになったようである (→ The Org->ODT exporter is now in Org’s core)。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s