社会学のレポートでBibTeXを使う手順

今回はBibTeXの使い方。*1

そのBibTeXを使って、社会学で使われる様式で出力する方法をメモ。社会学分野では、『社会学評論』『American Journal of Sociology』『American Sociological Review』の形式に対応したファイルがあるので、これらを使わせていただきながら、LaTeXで文章を書く方法を紹介する。作業の流れは目次の通り。

コンテンツ

  • 準備
    • パッケージのインストール
    • 文献データベース
  • パッケージや文献DBの指定
  • 本文を書く
  • コンパイル
  • 自動出力がうまくいかないケースの対処

準備

パッケージのインストール

以下の3つのファイルを自分で調達して準備。なお、nissya_bibはSJISなので、必要ならばファイルの文字コードを変更して保存する。一応強調しておくと、これらのパッケージファイルは、各ジャーナルが公式に発表しているわけではなく、作成者のボランティアによるもの。

ちなみにインストール・登録の仕方はOS別に過去のエントリで書いているのでよかったら参考に。

文献データベース

まずは文献データベースを作成。一般的な方法で情報を収集しつつ、日本語文献や翻訳文献には新たに情報を追加する。Amazon、Cinii、EBSCO、JSTORにあるデータはBibTeX形式で書き出せるので、自前でExcelの表を作るよりは楽に作成できるはず。

文献データの収集

BibTeXのファイルは下で出てくるようなテキスト形式のデータだが、JabRefなどのBibTeX管理ソフトを用いれば楽に管理できるので、それらのインストールもしておくと便利。こちらのサイトでは文献管理ソフトのJabRefの解説をひと通りしていて、ウェブ上のデータベースからデータを追加する方法も紹介されているのでよければ参考に。*2

Amazonの情報はLead2Amazonで書き出すことができ、Ciniiなどの論文データベースサイトにはすでにBibTeXファイルで書き出す機能がある。

情報の追加

日本語文献のデータには、「yomi」というフィールドを追加。最後に並べ替える段階でこれを参照するので必須。ふりがなは小文字アルファベットで統一しないとうまく並び替えてくれない。

例えばこんな感じ。

@BOOK{Miyamoto2008,
  title = {福祉政治 - 日本の生活保障とデモクラシー},
  author = {宮本 太郎},
  year = {2008},
  publisher = {有斐閣},
  isbn = {9784641178021},
  url = {http://amazon.co.jp/o/ASIN/464117802X/},
  yomi = {miyamoto tarou}
}

また、翻訳のある外国語文献の場合は、原書の情報に加え、以下のフィールドを追加。

  • jtitle(訳書ののタイトル)
  • jauthor(翻訳者)
  • jyear(訳書の出版年)
  • jpublisher(訳書の出版社)

例えばこんな感じ。

@BOOK{Esping-Andersen1990,
  title = {The Three Worlds of Welfare Capitalism},
  author = {Esping-Andersen, Gosta},
  year = {1990},
  publisher = {Princeton University Press},
  jtitle = {福祉資本主義の三つの世界},
  jauthor = {岡沢 憲芙 and 宮本 太郎},
  jyear = {2001},
  jpublisher = {ミネルヴァ書房},
  isbn = {9784623033232},
  url = {http://amazon.co.jp/o/ASIN/4623033236/}
}

パッケージや文献DBの指定

文献情報をどの形式で出力するかを文書ごとにプリアンブルで指定し、文書の末尾(文献リストを出力したい場所)に、\bibliography{データベース名}というコマンドを加える。プリアンブル部分は、使いたいスタイルによって使い分ける。

『社会学評論』スタイルの場合

\usepackage{nissya_bib}

『American Journal of Sociology』スタイルの場合

\usepackage{natbib}
\bibliographystyle{ajs}
\renewcommand{\citep}[2][\empty]{(\citealt[#1]{#2})}

『American Sociological Review』スタイルの場合

\usepackage{natbib}
\bibliographystyle{asr}
\renewcommand{\citep}[2][\empty]{(\citealt[#1]{#2})}

AJS及びASRのファイルはnatbibパッケージ(TeXLive2011には導入済み)と組み合わせて使う。*3
natbibを使う場合、本文中の文献表記で、著者名と出版年の間にコンマが入ってしまうので、\citepコマンドを再定義して使う。再定義の部分は参考サイトから引用させていただいた。

本文を書く

引用コマンドを使ってLaTeX文書を書くことで、用意した文献データベースから情報を自動で参照してくれる。今回は基本的なコマンドのみ紹介するが、他にも柔軟に使うことができる。詳しいことはnissya_bib及びnatbibのマニュアルを参照。nissya_bibのマニュアルはダウンロードしたzipに入っているし、natbibはCTANの中にマニュアル(natbib.pdf)がある。

%本文中で著者名を表示
\citet{BibTeXキー} => 著者名(出版年)

%著者名を文献注に入れる
\citep{BibTeXキー} => (著者名 出版年)

%複数の文献を列挙
-\citep{BibTeXキー1, BibTeXキー2} => (著者名1 出版年1; 著者名2 出版年2)

%ページ番号も表示
-\citep[ページ番号]{BibTeXキー} => (著者名 出版年:ページ番号)

以上を抑えればあまり苦労はしないのではないだろうか。次にそれぞれのスタイル別に、書き方と出力の例を載せておく。

『社会学評論』スタイルの例
\documentclass[11pt]{jsarticle}
%『社会学評論』スタイルの場合
\usepackage{nissya_bib}

\begin{document}
%%%%%%%%%% ここから本文 %%%%%%%%%%

\citet{Esping-Andersen1990}の類型論はその後の福祉国家研究に大きなインパクトを持ったが、そのレジーム論を西欧以外の国に適用する場合は、宗教的要素を捨象するなど、分析目的に沿って再定義することも必要である\citep{Miyamoto2008}。

%%%%%%%%%% ここまで本文 %%%%%%%%%%

\bibliography{Bibfile1,Bibfile2} %文献データベースを指定
\end{document}

f:id:hnsn1202:20121015202338p:plain

『American Journal of Sociology』スタイルの例
\documentclass[11pt]{article}

%『American Journal of Sociology』スタイルの場合
\usepackage{natbib}
\bibliographystyle{ajs}
\renewcommand{\citep}[2][\empty]{(\citealt[#1]{#2})}

\begin{document}
%%%%%%%%%% ここから本文 %%%%%%%%%%

\citet{Esping-Andersen1990} indicates clusters of welafre states. However, regime approach may obscure internal variation in same regime and contradictory policies in one nation\citep{Hook2010}.

%%%%%%%%%% ここまで本文 %%%%%%%%%%
\bibliography{Bibfile1,Bibfile2} %文献データベースを指定
\end{document}

f:id:hnsn1202:20121015202512p:plain

複数のデータベースファイルを指定することもでき、その際はコンマで区切る。ただしコンマの後にはスペースを入れない。私が試した限りではスペースが入ると2つ目以降のデータベースファイルを認識してくれない。

コンパイル

作成したテキストをコンパイルすることで上で見たような出力を得られる。BibTeXを用いる場合は、latex -> bibtex -> latex -> latexの順番でコンパイルする。それぞれ、本文の出力、文献情報の参照、文献リストの出力、本文に文献情報を挿入、という順番で進んでいく。

エラーが出たら

エラーが出た場合は、まずチェックするのは以下の点だろうか。

  • パッケージのインストールはできているか
  • 文献DBは認識できる場所に保存されているか
  • 文献DBのファイル名は正しいか
  • DBファイルの名前の区切り方は適切か(DBファイルを複数認識させられない時は無駄にスペースが入っていないかチェック)
  • bibtexkeyは間違っていないか
  • 著者名のふりがな情報は適切か(並べ替えがうまくできない時)

エラーの原因はケースバイケースなので、上に上げた原因以外も、各自で対応することが求められる。

自動出力がうまくいかないケースの対処

自動化が完璧でないケースでは、コンパイルの途中で作成されるbblファイルの中身を直接編集することで対処できる。

例えばnissya_bibの場合、海外のジャーナル論文が翻訳されて日本語の単行本に収録されているような場合もうまくいかない。そこで、bblファイルをテキストエディタで開いてみると、文献情報が以下のように書かれている。

\nissyaitem[Best]{J Best}{Best,~J.}{J.~Best}{1987=2006}{best1987}
Best,~J.,\hspace{.3em}1987,  ``Rhetoric in Claims-Making: Constructing the
  Missing Children Problem,'' {\em Social Problems,} 34(2):  101--21.

この部分を編集する。ちなみにjyearのフィールドは認識しているようで、本文中には既に(Best 1987=2006)というように出力されている。文末の文献情報のところには、原著の情報だけが出力されている状態だ。これに翻訳の情報を直接書き加えて以下のようにする。

\nissyaitem[Best]{J Best}{Best,~J.}{J.~Best}{1987=2006}{best1987}
Best,~J.,\hspace{.3em}1987,  ``Rhetoric in Claims-Making: Constructing the
  Missing Children Problem,'' {\em Social Problems,} 34(2):  101--21.(=2006, 足立重和訳「クレイム申し立ての中のレトリック―行方不明になった子どもという問題の構築」平英美・中河伸俊編『構築主義の社会学 - 実在論争を超えて』世界思想社, 6-51.~)

これでtexファイルをコンパイルすれば読み込まれる。当然、もう一度bibtexでコンパイルしてしまうと、元に戻るので、文献リストをいじるときは注意が必要。

さいごに

再度強調しておくと、ここで用いたパッケージファイルは、各ジャーナルが公式に発表しているわけではない。日本語の方はいくつか対応していない文書形式があるし、英語の方はどうも出版社の所在地をうまく扱えていないような気がする。なので雑誌に投稿したりするときは再度自分でチェックは必要かと思う。

今回は社会学用の情報を中心に紹介したので、BibTeXそのものの話や、文献管理ソフトの使い方などはそれほど詳しく紹介できなかった。そのへんの一般的な情報が必要な際は、下記のサイトなどが参考になるかと思う。また要望などあればご意見いただけるとうれしい。

参考サイト

脚注

*1:BibTeXはフリーの文献管理ツール。文献のデータベース書式としても比較的メジャーで、文献・論文DBサイトでも書き出せることも多い。そのため文献DBを自前で作るにも手間がけっこう省ける。そしておそらく一番便利なのは、LaTeXと組み合わせると、文献の出力を自動でしてくれることだろう。

*2:TeXインストールの記事でもJabRefを紹介してきた。

*3:chicagoパッケージとも併用が可能だが、引用・参照コマンドが違うので使う場合はマニュアルを参照。このパッケージもデフォルトで導入済み。