LaTeX で論文を作成するときに参考文献をどう書いていますか? 毎回毎回 thebibliography 環境を利用して一所懸命に全てを書いていますか? そんなの効率悪すぎます。 そう、もしあなたが Emacs を使っているのであれば、本当に効率が悪すぎるのです。 どうせなら BibTeX を利用して快適に作業しましょう。 :-)
参考文献となる論文・書籍群を専用のデータベースに登録しておけば、 LaTeX で論文・レポート等を作成する際に BibTeX 経由でそれを利用する事ができます。 一度データベースを作成してしまえば参考文献の一覧を作成する際の労力がかなり軽減できるので、 LaTeX を頻繁に利用する人にとって BibTeX は (長い目で見れば!) 便利この上ないツールと言えるでしょう。
まず初めにデータベースを作成しましょう。 以下の書式に従った内容を並べて作成した、.bib という拡張子を持つファイルがそれです。
@文献の種類{その文献を表す一意の文字列, 必須項目1 = 内容1, 必須項目2 = 内容2, 必須項目3 = 内容3, 必須項目4 = 内容4, オプション項目A = 内容A, オプション項目B = 内容B }
Emacs で .bib ファイルを開くと自動的に bibtex-mode
になります。
この mode で提供されるコマンド群を使って作業すると楽です (メニューから辿って使えます)。
最低でも以下に出てくるものと、bibtex-next-field
(\C-j) 位は覚えておきましょう。
また、必要であれば M-x describe-mode して何が出来るかチェックしておくと良いです。
文献の種類には以下等が用意されています。
定期刊行物や雑誌に掲載の論文を示します。
bibtex-mode
の場合、bibtex-Article
(\C-c \C-e \C-a) でテンプレートが入力できます。
数学の場合、オプション項目の month, note 以外は全て記入する場合が多いようです。
出版社から発刊された書籍を示します。
bibtex-mode
の場合、bibtex-Book
(\C-c \C-e b) でテンプレートが入力できます。
数学の場合、オプション項目の month, note 以外は全て記入する場合が多いようです。
学術会報誌に掲載された報告を示します。
bibtex-mode
の場合、bibtex-InProceedings
(\C-c \C-e \C-p) でテンプレートが入力できます。
Emacs 上で reftex-mode
を利用する場合、文献を表す一意の文字列は以下の様に長く覚えにくいものでも問題ありません。
@Article{fuller80:_gener_serial_rings_ii, author = {K. R. Fuller}, title = {On Generalization of Serial Rings {II}}, journal = {Comm. Algebra}, year = 1980, volume = 8, number = 7, pages = {635--661} } @Article{erdogdu87:_distr, author = {V. Erdo{\u{g}}du}, title = {Distributive modules}, journal = {Canad. Math. Bull.}, year = 1987, volume = 30, number = 2, pages = {248--254} } @Book{anderson92:_rings_categ_modul, author = {F. W. Anderson and K. R. Fuller}, title = {Rings and Categories of Modules}, publisher = {Springer-Verlag}, year = 1992, edition = {Second}, address = {Berlin-New York}, note = {ISBN: 3-540-97845-3} }
bibtex-mode
で各エントリーのテンプレートを挿入すると、
オプション項目の先頭には“OPT”が、2 択の項目の先頭には“ALT”が付く場合があります。
これらは、エントリーの各項目を入力し終わった後に bibtex-clean-entry
(\C-c \C-c) すると、
必要に応じて整えられます (空の項目が自動的に削除されるなど)。
また、この際に文献を表す一意の文字列が入力されていないと、該当箇所へ自動的に適当な文字列を入力してくれます。
上記の手順で作成した .bib ファイル群…ここでは math.bib, comp.bib としましょう…を、 それを利用したい .tex ファイル…ここでは algebra.tex としましょう…と同じディレクトリにコピーします。 そして次にこの algebra.tex の適当な場所 (参考文献のところ) に以下を書き加えましょう。
\bibliographystyle{plain} \bibliography{math,comp}
参考文献の項目に日本語がある場合は以下です。
\bibliographystyle{jplain} \bibliography{math,comp}
これで準備完了です。
後は reftex-mode
を有効にして、論文を呼び出したいところで
reftex-citation
(\C-c [) してみれば良いです。
この際、キーワードを尋ねられますので、論文名や著者名の一部を入力しましょう (正規表現可)。
すると候補の一覧が表示されますので、適当に選択しましょう。
本文中で直接的に参照しない文献を参考文献に載せたい場合は、\nocite を利用しましょう。 これは \cite と同じ書式で利用できます。
上記を含む編集作業が終わったら、実際にコマンドを入力して .dvi ファイルを作成するわけですが、この操作が普段とはちょっと異なります。 具体的には以下の手順です (日本語環境が必要な場合、latex, bibtex の部分をそれぞれ platex, jbibtex とする)。 YaTeX を利用している場合、Emacs 上からこれらの操作を実行できます。
$ latex algebra $ bibtex algebra $ latex algebra $ latex algebra
以上で作業完了です。 旨くいっているか確認してみましょう。
\bibliographystyle の引数によって、参考文献の書式を多少変更できます。 ここでもいくつか紹介しておきます。
他にも American Mathematical Society による amsplain, amsalpha などがあります。 数学の場合、amsplain を利用するのが無難かもしれません。
以下 (の適当な行) を ~/.emacs に書いておけば、
標準の LaTeX-mode や AUCTeX, YaTeX などで .tex ファイルを編集する際、自動的に reftex-mode
が有効になります。
(add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'yatex-mode-hook 'turn-on-reftex) ; with YaTeX mode
もし比較的新しい reftex-mode
環境を利用しているのであれば、
YaTeX 対策として以下の様にしておくと良いでしょう。
もちろんこの場合、上記 3 行のうち最終行は要りません。
(add-hook 'yatex-mode-hook #'(lambda () (reftex-mode 1) (define-key reftex-mode-map (concat YaTeX-prefix ">") 'YaTeX-comment-region) (define-key reftex-mode-map (concat YaTeX-prefix "<") 'YaTeX-uncomment-region)))
上記の手順で作業を済ませると、algebra.tex と同じディレクトリに algebra.bbl というファイルが出来ているはずです。 この内容を利用して algebra.tex に thebibliography 環境で参考文献の一覧を作成することも可能です。