BibTeX とは?
BibTeX とは TeX において引用・参考文献を扱うためのツールです。
[注]
- この記事は、経済学の論文を TeX を用いて書く際に BibTeX を使う方法についての説明です。経済学でよく利用される「著者・年」形式(author-year 形式)での引用を主に想定しているので「経済学における」と書いていますが、経済学が専門ではない人でも参考になるかもしれません。
- 元々は、「こちらのページ」に掲載していたものですが、最初に書いてからかなり時間が経過し、内容も古くなってきていたので、大幅に書き直したものです。
- 以下では実際には LaTeX(
pdflatex
)を用いるのですが TeX という呼び方を使います。 - このページで説明しているのは BibTeX というツールの話です。TeX で引用・参考文献を扱う仕組みには biblatex パッケージというものもあります。biblatex はまた別ものなので注意してください。biblatex についてはこのページの「biblatexについて」 の部分で少し説明しています。
経済学で(他の分野でも同じだと思いますが)論文を書く際には様々な文献を引用しますが、論文には引用した文献を列挙した参考文献(reference)部分を作成する必要があります。通常 TeX では参考文献部分は 「thebibliography 環境」を使って作成しますが、その中身を直接自分で書く場合、以下のような問題が生じます。
- 本文で引用しているのに参考文献部分には載せ忘れている
- 参考文献部分の形式がバラバラになる。例えば、
- 項目(年、タイトル、著者名等)の順序が文献によってバラバラ。
- 本、雑誌名をイタリックにしていない。
- ある文献の著者の first name はイニシャルだけに略しているが、別の著者の名前は略していない。
- カンマ、ピリオド、シングル・ダブルクオーテーションが入ってたり入ってなかったりする。
- スペースが入ってたり入ってなかったりする。
- 文献の順序がおかしい(経済学では普通はアルファベット順に並べます)。
これに対し、BibTeX を使う場合には
- 事前に文献が登録されたデータベースを用意しておく。
- TeX のファイルで引用の命令を書く。
- BibTeX を実行すると TeX のファイルで引用されてる文献だけをデータベースから抽出し、指定した形式で参考文献部分を自動で作成してくれる
というようにかなりの部分を自動で処理してくれます。ですので、参考文献部分は
- 基本的に自分で書く必要ありません
- 正確で間違えることはありませんし、見た目もずっときれいになります。
- 引用しておきながら参考文献部分には掲載し忘れるということもなくなります。
- 自分で(例えば、アルファベット順に)並べかえる必要もなくなります。
- BibTeX のスタイルファイルを変えることで、自由に参考文献部分の形式を変えることができます。
さらに、引用(citation)部分の形式もスタイルファイルによって変更できます。ですので、引用部分も
- 自分で書く必要はありません
- 正確できれいです。
- これもスタイルファイルによって好きな形式に変更可能です。
利用例
言葉で機能を説明するよりも、実際に利用した例を見た方がわかりやすいかもしれませんので、いくつか利用例を紹介します。
例 1: BibTeX のスタイルファイルを変える例
同じ TeX のファイルの中で、同じ文献を引用しているものを、BibTeX のスタイル・ファイルだけ変えてコンパイルした例です。参考文献部分(reference)の形式が変わります。
-
American Economic Review(AER)形式
- BibTeXのスタイルファイルに econ-aea.bst を使ったもの
-
Econometrica形式
- econ-econometrica.bst を使ったもの
-
Journal of Political Economy(JPE)形式
- econ-jpe.bst を使ったもの
-
Journal of Economic Theory(JET)形式
- econ-jet.bst を使ったもの
econ-aer.bst などのファイルが参考文献の形式を決める BibTeX のスタイル・ファイルで、**「bstファイル」**と呼ばれます。
[注] 上で利用している bst ファイルはCTANにも置いてあるので、「TeX Live 2020」以降には含まれています(TeX Live 2020を使っている人でしたら、初めからインストールされているということです)。
上の例の中で引用されている文献のデータベースのファイルは以下の場所にあります。
この中身を見てもらえばわかりますが、データベースでは適当な順番に箇条書きで登録されているだけなのですが、BibTeX を使うと TeX ファイルで引用している文献だけをデータベースから読み込み、指定した形式に従って自動で参考文献部分を作成してくれます。
例 2: 様々な引用(citation)形式の例
natbib package(natbib.sty)を使うことで、多様な形式の引用ができます。以下のファイルで確認してください。
例 3: 日本語文献も引用した例
以下にある jecon.bst という BibTeX のスタイルファイルを使えば、英語文献・日本語文献を同時に扱え、しかも経済学でよく見るような形式で参考文献をつくることができます。
-
jecon.bstを利用した例
- jecon.bst は「ここのページ」から入手できます。
BibTeX の使い方
以下で BibTeX の使いかを説明します。BibTeX を利用するには以下の手順が必要になります。
- データベースを用意する。
- 必要なものをインストールする。
- TeX のファイルを書く。
データベースの用意
まず、データベース・ファイル(文献リストが登録されたファイル)を用意する必要があります。このファイルは拡張子を bib としなければいけないので、以下では**「bib ファイル」**と呼びます。
とりあえずここでは以下の bib ファイルを例として使いたいと思います。
このファイルをダウンロードして保存します。
bib ファイル(データベース・ファイル)の置き場所
bibファイルはとりあえず編集しているTeXのファイル(文献を引用するファイル)と同じフォルダに置いてください。
文献のデータベースは、様々な論文を書く際に使うことになると思います。ですので、本来は一つのデータベースファイルを様々なTeXファイルから利用できるようにしておいた方が便利です。このようにするためには bib ファイルをある特定の場所に置いておく必要があります(あるいは、bib ファイルの場所を TeX の設定に加える)。そのやり方は少しややこしいので、ここでは省略します。
私自身は上記のように一つの bib ファイルを共有するのではなく、bib ファイルを TeX のファイルのあるフォルダにそのたびにコピーして使っています。少し面倒ですが、それの方が都合のよいこともあるので。
データベースの書き方
昔はbibファイルは自分で作成するものだったのですが、最近はネットからBibTeX用のデータをダウンロードできることがほとんどです。特に、公刊済みの論文は出版社がBibTex用の文献データを提供していることが普通です。例えば、
Takeda, S. (2007) "The Double Dividend from Carbon Regulations in Japan." Journal of the Japanese and International Economies, 21(3): 336–364. 10.1016/j.jjie.2006.01.002.
という論文については、https://doi.org/10.1016/j.jjie.2006.01.002 のページにある「Cite」ボタン→「Export citation to BibTeX」から BibTeX 用のデータが入手できます。
このため、現在ではデータを自分で作成する(書く)必要はあまりなくなりました。ただ、書籍や日本語の論文などは文献データが提供されていないこともまだ多いので、そういう場合は自分で書く必要があります。
中身の書き方はたいていの TeX の本に載っています。例えば、奥村先生の 『LaTeX2e 美文書作成入門』 等に載っています。解説したウェブサイトもたくさんあります(「bib ファイルの書き方」で検索すればたくさん出てきます)。また、上に置いてある econ-example.bibというファイルや
を見れば、どのように書くかだいたいわかると思います。参考にしてみてください。jecon-example.bib の方は日本語の文献も登録してあります。
[注]「ここのページ」に書いているのですが、上の jecon-example.bib というファイルは、jecon.bst という bst ファイルで利用することを前提としているので、日本語の文献の著者について姓名を普通とは異なる順序で書いています(英語文献の著者と同様の書き方をしています)。この書き方では jplain.bst などの普通のスタイルを利用する場合に表示がおかしくなるので注意してください。
経済学で論文を書く際に引用するのは
- 雑誌に掲載された論文
- 書籍
- 書籍の中の一つの論文
- 未公刊の論文(Working paper、discussion paperなど)
がほとんどだと思います。ですので、BibTeX の文献のタイプとしては
- aritcle
- book
- incollection
- unpublished
の書き方さえ覚えればだいたいすむと思います。
[注] 未公刊の論文を BibTeX においてどのタイプに分類するかは人によって違うのですが、上では「unpublished」というタイプに割り当てています。
BibTeXを利用するのに必要なもの
参考文献部分の形式は利用する bst ファイルによって変わってきます。ですので、自分の望む形式の bst ファイルを用意する必要があります。以下では、「econ-aea.bst」という bst ファイルを使いたいと思います。この econ-aea.bst という bst ファイルは American Economic Association(AEA)が出版するジャーナル(例えば、AER、AEJ、JELなど)の参考文献の形式を作成するためのものです。
この econ-aea.bst は TeX Live 2020 には含まれているので、TeX Live 2020 を利用している人は特に何もしないでも利用できます。TeX Live 2020 以外を利用している人は以下の場所から自分でダウンロードしてください。
ダウンロードした後は、この後、編集する TeX のファイルと同じフォルダに置いておきます。
[注] TeX Live 2020 には含まれていますが、最新版を使いたい人は上の GitHub からダウンロードしてください。
TeX のファイルの書き方
書き方は簡単です。以下の econ-example.tex を例にします。
econ-example.tex の中身は以下の通りです。
\documentclass[10pt,a4paper]{article}
\usepackage[longnamesfirst]{natbib}
\begin{document}
\citet{fujita99jp:_spatial_econom} and \citet{brezis93:_leapf_inter_compet} are ...
\bibliographystyle{econ-aea}
\bibliography{econ-example}
\end{document}
この文書は英語の論文ということで、クラスファイルには「article」を利用しています。
① natbib packageの設定
まず、プリアンプルで natbib.sty を読み込みます
\usepackage[longnamesfirst]{natbib}
option の longnamesfirst
については natnotes.pdf を見てください。付けないでもかまいません。
BibTeX を利用するのに natbib packageが必須というわけではないです。しかし、経済学でよく使う「著者名(年)」の形式(author-year形式)の引用には natbib が必要になります。ここで使う econ-aea.bst も natbib を使うことを前提としていますので、natbib を読み込みます。
[注] plain.bst などを利用する場合には natbib は使いません(使えません)。
② 引用の命令
本文では引用したい部分で引用の命令を用います。TeX で普通引用に使われる命令は \cite
ですが、 natbib では \citet
(あるいは、\citep
)を使います。例えば、引用のキーワードが fujita99:_spacial_econom
である文献を引用するには次のような命令を書きます。
\citet{fujita99:_spacial_econom} is ...
キーワードというのは bibファイル(BibTeX のデータベース・ファイル)で各文献 に付けているラベルのことです。
後は同じように引用していけばいいです(引用の形式の変更については、上で紹介した natnotes.pdfを見てください。
③ 参考文献部分の指定
最後に、参考文献をつけたい部分に
\bibliographystyle{econ-aea}
\bibliography{econ-example}
のような指定をします。
\bibliographystyle
は参考文献の形式を指定する命令であり、bstファイルを指定します。拡張子は省略します。ここでは先ほどの econ-aea.bst を指定しています。
また、\bibliography
命令は bib ファイルを指定するための命令であり、かつこの命令が書かれた位置に参考文献が出力されます。ここでは先ほどダウンロードした econ-example.bib ファイルが指定されています。bib ファイルについても拡張子は除いて指定します。
コンパイル
ここでは econ-example.tex というファイルを例にしていますが、中身は英語なので、コンパイルにはpdflatex
を使うことにします(もし他のコマンドを使う場合はコマンド名だけ置き換えてください)。この場合、BibTeXも含めたコンパイルの手順は以下の通りになります。
- まず
pdflatex
で一回コンパイル、 - 次に、
bibtex
を実行、 - さらに、あと2回
pdflatex
を実行。
コマンドプロンプトから実行するなら、econ-example.tex のあるフォルダ に移動して
pdflatex econ-example.tex [ENTER]
bibtex econ-example [ENTER]
pdflatex econ-example.tex [ENTER]
pdflatex econ-example.tex [ENTER]
となります([ENTER] エンターキー、あるいはリターンキーです)。
エラーが出ずに上手くコンパイルできたら econ-example.pdf のようなファイルが出来上がるはずです。
コンパイルの仕組み
BibTeX を使う場合には、
- まず
pdflatex
で一回コンパイル - 次に、
bibtex
を実行 - もう1回
pdflatex
を実行 - さらにもう1回
pdflatex
を実行
という手順でコンパイルすると書きましたが、このような手順をとる理由を簡単に説明します。
その壱
まず、1)で pdflatex を実行することで econ-example.aux というファイルが作成され、その中に
- econ-example.tex の中で
\citet
命令で引用されている文献の情報、 -
\bibliographystyle
命令で指定されている BibTeX スタイルファイル(bstファイル)の名前、 -
\bibliography
命令で指定されている BibTeX データベースファイル(bibファイル)の名前
等が書き込まれます。
その弐
次に、2)で、bibtex は econ-example.aux ファイルの中身を読み込み、引用されている文献のみをデータベース(econ-example.bib)から探し出し、指定したスタイル(econ-aea.bst)で参考文献部分を作成します。
作成された参考文献部分(thebibliography環境)は bbl という拡張子を持ったファイル(上の例では econ-example.bbl)に出力されます。bibtex を実行した後に、試しに econ-sample.bbl というファイルを開いて中身を覗みてください。以下のような中身となっているはずです。
\begin{thebibliography}{xxx}
\harvarditem[Brezis et~al.]{Brezis, Krugman, and
Tsiddon}{1993}{brezis93:_leapf_inter_compet}
\textbf{Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon.} 1993.
``Leapfrogging in International Competition: A Theory of Cycles in National
Technological Leadership.'' \textit{American Economic Review} 83 (5):
1211--1219.
\harvarditem[Fujita et~al.]{Fujita, Krugman, and
Venables}{1999}{fujita99jp:_spatial_econom}
\textbf{Fujita, Masahisa, Paul~R. Krugman, and Anthony~J. Venables.} 1999.
\textit{The Spatial Economy}. Cambridge, MA: MIT Press.
\end{thebibliography}
BibTeX が自動で \thebibliography 環境を作成してくれているのがわかると思います。
[注] なお、bibtex.exe を実行しても、bbl ファイルが作成されないようなときは、なんらかのエラーが生じている可能性が高いです。このようなときには同じフォルダに econ-example.blg というファイルができているはずなので、それの中身を読んでください。この blg という拡張子を持つファイルにはエラーメッセージを含めた bibtex のログが出力されます。
その参
3)で pdflatex を再び実行することで 2)で作成された参考文献部分が bbl ファイルから読み込まれることになります。この段階では引用部分はまだ「?」マークになっています。
その四
最後に、4)で pdflatex を実行することで、引用部分を適切に処理し完了となります。
流れのまとめ
- pdflatex を実行 → aux ファイルが作成される。
- bibtex を実行 → bibtex が aux ファイルの中の情報を読み込んで、指定されたデータベースから指定された形式で参考文献部分を作成。結果 (作成された \thebibliography 環境) が bbl ファイルに出力される。
- もう一回、pdflatexを実行 → bbl ファイルの中身を読み込み、\bibliography 命令のある部分に参考文献が出力される。
- さらにもう一回、pdflatex を実行 → 引用部分を適切に処理。
上手くいかない場合
上の通りにやっても上手くいかないという場合、pdflatex の実行時、あるいは bibtex の実行時に何らかのエラーが生じている可能性が高いです。とりあえずはエラーメッセージが出ていないかをチェックするのがよいと思います。
BibTeX についてその他いろいろ
BibTeX を使っている TeX のファイルを配布したい
BibTeX を使っている TeX のファイルを配布したり、誰かに渡したいというような場合があると思います。もし、そのままの TeX のファイルで配布しようとすると、BibTeX の作成した bbl ファイルも一緒に配布しなければいけません(bbl ファイルが一緒のフォルダになければ、TeX のファイルをコンパイルしても参考文献の部分になにも出力されません。参考文献の実体は bbl ファイルの中にありますから)。このようなときには次のような方法をとることで bbl ファイルを配布しなくてすみます。
- TeX ファイル内の
\bibliographystyle
、\bibliography
命令を両方とも消す。 - bbl ファイル内の中身をコピーし、
\bibliography
命令のあった部分に貼り付ける。
つまり、 bbl ファイルの中身は BibTeX が自動で作成してくれた thebibliography 環境ですので、それをそのまま TeX のファイルに貼り付けてしまえば bbl ファイルはもう不要になるということです。BibTeX を実行する必要もありませんし、bbl ファイルを読み込む必要もなくなるので \bibliographystyle
、 \bibliography
命令は不要になります。
引用や参照の形式を変更したい
引用部分や参考文献部分の形式を変更したいこともあると思います。まず、
- 引用部分の形式 → 引用のためのスタイルファイル(sty ファイル)に依存
- 参考文献部分の形式 → BibTeX のスタイルファイル(bst ファイル)に依存
という関係があることに注意してください。例えば、上の例のように econ-aea.bst + natbib.sty を利用しているときには、
- 引用部分の形式 → natbib.sty に依存
- 参考文献部分の形式 → econ-aea.bst に依存
ということです。
[注] natbib.sty を利用しているときには、厳密には引用部分の形式も bst ファイルに少し依存します。
引用部分の形式の変更
そもそも引用のために特殊なスタイルファイルを使わず TeX に標準で備わっている \cite
命令だけを利用しているときには引用部分の形式を変更するのは難しいです。 引用の形式を変更するにはなんらかの特殊なスタイルファイルを利用するのが普通です。
例えば、上で紹介した natbib.sty を使っているときには、オプションを付ける、また引用の命令を変えることで、様々な引用形式をつかえます。例えば、natbibではデフォールトでは、Kruguman (2000) のような引用形式になりますが、
\usepackage[square]{natbib}
のように square オプションを付けて natbib を読み込むと、Kruguman [2000] のように四角括弧となります。また、引用の命令を
\citet[][Chap. 3]{keyword}
\citep[][Chap. 3]{keyword}
のようにすれば Kruguman (2000, Chap. 3) や (Kruguman 2000, Chap. 3) のような形式になります。もっと詳しいことは natnotes.pdf を見てください。
参考文献部分の形式の変更
\usepackage[square]{natbib}
で引用部分が Kruguman [2000] というように四角括弧となると説明しましたが、いくら natbib にオプションを付けても参考文献部分は変わりません。参考文献部分は bst ファイルに依存するものだからです。
参考文献部分の形式を変えたい場合には、
- 利用する bst ファイルを別のものに変更する
- bst ファイルを自分自身で書き換える
のどちらかをする必要があります。
多くの人が様々な形式の bst ファイルを作成し、それが CTAN などで配布されていますので、既存の bst ファイルに自分が望むようなものがあるかもしれません。特に、様々な雑誌のための bst ファイルも作成されていますので、投稿したい雑誌向けの bst ファイルがないか探してみるといいと思います。
もし自分の望むような形式を実現する bst ファイルがなければ自分で修正・作成するのも一つの方法です。ただし、bst ファイルは BibTeX 用の特殊な文法で書かれており、自分で修正・作成するのは少しハードルが高いです。
そのような人には
を勧めます。econ.bst は私が作成した bst ファイルですが、カスタマイズしやすい仕組みになっていますので、これをベースにして、自分が望むような形式のものに書き換えるのがいいと思います。
最終手段(手で書き換え)
だいたい自分の望み通りの形式を実現してくれる bst ファイルを見つけた、あるいは、ほぼ自分の望み通りの形式となるように bst ファイルを書き換えたが、細かい部分が自分の希望とは異なっているという場合もあると思います。
BibTeX は bst ファイルの文法さえわかれば、かなり複雑な処理をさせることができます。ただ、複雑な処理をさせるには、それに応じて複雑なプログラムを書かなければいけないので、あまりに細かい部分にこだわるとかえって手間がかかってしまいます(これは BibTeX だけでなく、TeX 全般に言えることかもしれませんが)。私自身、bst ファイルを書き換えたりしてますが、細かい不具合にはたいてい目をつぶります。
それでも細かい形式にこだわらざるを得ないようなときには、とりあえず不完全でもいいので BibTeX で参考文献をつくらせる。そして、最後に bbl ファイルの中身を手で修正するというのが手っ取り早いと思います。
日本語の文献も引用したい場合
ここまでは基本的に英語で論文を書き、引用するのも英語の文献のみという前提で話をしてきました。しかし、日本語で論文を書き、(英語の文献だけではなく)日本語の文献も引用したいという人もいると思います。
そのような人には jecon.bst という bstファイルを勧めます。これも私が作成したbstファイルですが、
- 経済学でよく使われる形式に近い形式
- 英語文献だけではなく、日本語文献も適切に扱う
という特徴があるbstファイルです。また、econ.bst 同様、カスタマイズもしやすくなっており、形式のカスタマイズも比較的簡単にできます。
jecon.bst については以下のサイトを見てください。
biblatexについて
BibTeX は TeX における標準的な引用・参考文献作成のツールであり、現在でも利用している人は多いと思いますが、BibTeX よりももっと柔軟な引用・参考文献作成の機能を求める声も多くありました。特に、自然科学系、社会科学系とはかなり異なる引用の形式を用いる人文科学系の人々には従来の BibTeX では望むような引用・参考文献作成が難しかったようです。それもあり、biblatex という新しい引用・参考文献作成ツールが開発されました。
biblatex の利点としては
- BibTeX よりもずっと機能が豊富で、自由度の高い引用、参考文献形式が実現可能
- カスタマイズもしやすい
という点があげられます。
ここではずっと BibTeX の使い方を説明をしてきましたが、私自身も、もし英語の文献しか引用しないのなら、biblatex を使うのがよいのではないかと思います。
ただ同時に、社会科学系の人は BibTeX ではなく、biblatex を使う必要性はそれほど高くないのではないかとも思います。特に、BibTeX を既に利用していて、その機能におおむね満足している人は無理に biblatex に移行することはないと思います。
[注] biblatex はものすごく多機能ということもあり、マニュアルが膨大なページ数になっています。自分の望むカスタマイズをするためにマニュアルを読むものかなり骨が折れます。
また、英語文献だけではなく、日本語文献も引用したいという人も biblatex よりもむしろ BibTeX がよいのではないかと思います。というのは、BibTeX でしたら上で紹介した jecon.bst を使うことで日本語・英語のどちらの文献も適切に扱えますが、biblatex で日本語文献も英語文献も両方とも適切に扱えるというものはまだ少ないためです(一応、あります。例えば、biblatex-japanese などです)。
BibTeX と biblatex の比較については、私のブログの「biblatexとBibTeX」という記事でも書いていますので、そちらも参考にしてください。