-
Notifications
You must be signed in to change notification settings - Fork 2
bibliography
TeXで参考文献を扱う方法は二種類あります。
thebibliography
環境を使って、参考文献を指定していく方法、
もう一つはBibTeXデータベースを使用する方法です。
まずthebibliography
環境を使った参考文献の記述を紹介します。
\documentclass[a4j]{jsarticle}
\usepackage{url}
\bibliographystyle{plain}
\begin{document}
PMOBではstudy-texリポジトリ\cite{PMOBTeX}でTeXの知識をまとめています。
\begin{thebibliography}{99}
\bibitem{PMOBTeX} "PMOB / study-tex": \\
https://github.com/PMOB/study-tex (2016/1/23)
\end{thebibliography}
\end{document}
このように、thebibliography
環境内でbibitem
として参考文献を定義し、
\cite
コマンドで参照します。
thebibliography
環境は、定義する参考文献の数を引数としてとります。
この数字以上に定義された参考文献は無視されます。
つまり参考文献を全て表示するならとりあえずデカい数字を書いておけばいいので
99とか書く(あまりよくない)習慣があります。
次に、BibTeXデータベースを使用した方法を紹介します。
practice.tex
\documentclass[a4j]{jsarticle}
\usepackage{url}
\bibliographystyle{plain}
\begin{document}
PMOBではstudy-texリポジトリ\cite{PMOBTeX}でTeXの知識をまとめています。
\bibliography{biblio}
\end{document}
biblio.bib
@misc{PMOBTeX,
author = {{PMOB}},
title = {{PMOB} / study-tex},
month = {Jan},
year = {2016},
howpublished = {\url{https://github.com/PMOB/study-tex}}
}
.bib
ファイルに参考文献を定義し、
.tex
内でスタイルと読み出すBibTeXファイルを指定します。
定義する際は項目の種別をEntryType@{...}
のように指定し、その内容は他のデータ記述言語よろしく要素=内容
の形になります。
項目の種別は以下のようなものがあります。
type | 引用先 |
---|---|
article | 学術記事など |
book | 書籍 |
booklet | 小冊子 |
misc | 特に指定はありません |
種別によって持てる要素の種類は異なります。 例えばbookにはpublisherとtitleとyearが必須要素としてあり、 articleはtitleとyearのほか、authorとjournalが必須要素としてあります。
文頭の文字以外は自動的に小文字に変更されますが、
{}
で囲まれた範囲は大文字小文字が記述した通りとなります。
BibTeXを使う際は.bib
ファイルをコンパイルする必要がありますが、
これは.aux
への操作となります。
.aux
で参照が期待される項目に関してデータベースが作られるというイメージです。
とりあえず.tex
をビルドしてから以下のコマンドを実行してください。
bibtex practice.aux
これで作成される.blg
はBibTeXのビルドログで、.bbl
ファイルがデータベース本体ですが、
この実態は自動生成されたthebibliography
です。
.aux
が成形されたのでもう一度.tex
をビルドしましょう。
この二つの大きな違いは、
BibTeXを使った場合は参考文献の項目が統一されて自動的に生成されるのに対して、
thebibliography
環境を使った場合はそれぞれの参考文献の記述に融通が効く
という点です。
参考文献の書式は統一されていた方が見やすいですから、基本的にBibTeXがいいように思います。
BibTeXを\input
されたファイル内にも適用するには、
.tex
をコンパイルして、
作成された.aux
について.bib
をコンパイルして.bbl
を作成し、
.aux
が更新された時点で.tex
を再コンパイルして参考文献を組み立て、
もう一度.tex
をコンパイルして参照をする必要があります。