BibTexを使用するメリットとその使用方法
Bibtexの使い方
この文書では,$\rm\LaTeX$で参考文献リストを作成するためのツールとしてBibTex(+Mendelay, latexmk)の使用法を紹介する.
大量の参考文献を参照する場合や似た分野で何度も文書を作成するときに有効である.
(作業環境はintel macを想定しているが,殆どの場面でOSによる問題は発生しない.)
Bibtexを使うメリット
普通,$\rm\TeX$で参考文献を作成する方法として,\thebibliography
を使用する方法もある.
\thebibliography
とは,文書ごとに参考文献リストを自分で作成し,それに参照ラベルを割り当てて文書内で引用する方法となる.
この方法は,自分が作成したとおりの文献リストが文書に反映されるため,直感的に使用しやすい反面,以下のような使いづらさがある.
- 文書ごとに毎回文献リストを作成する必要がある.
- 参考文献の引用方法スタイル(参考文献をどの順番で並べるかや,イタリック,ボールドなどの使い分け,doiを入れるかなど情報の取捨選択)を変更したい場合も自力で変更しなければならない.
- 文書を作成している途中では,どれを参考文献として引用するか確定していないため,文献リストを作りづらい,また最終的に変更しようと思っていても忘れる.
これらのデメリットを克服できるのがBibtexとなっている.
- 一度引用する可能性のある文献のリスト(bibファイル)を作成すれば,他の文書でも使い回せる.
- スタイルファイルを指定するだけで,参考文献の引用方法スタイルを簡単に変更可能.
- 本文中で引用されているもののみが参考文献として出力されるため,文書作成途中でも引用リストを簡単に作れる.
Bibtexの使用方法
bibファイルの用意
文献のデータをまとめておくbibファイルを用意する.
bibファイルは以下の内容となっている.
@article{bibtex2000,
author = {Lastname, Firstname and Lastname, Firstname and ...},
doi = {00.0000/0000-000/00000},
journal = {Journal Name},
number = {0},
pages = {0--0},
title = {Journal title},
volume = {0},
year = {2000}
}
-
@article
が文献の種類を指定,@inproceeding
や@book
など,文献の種類によって変更する. -
@article
の横に書いているやつ(上だとbibtex2000
)がcitation keyとなっており,この名前を本文中で用いて引用する. -
author
に著者情報を書き込む.性, 名 and 性, 名 and ...
という少し特殊な書き方をする.ミドルネームなどは名
の方にまとめて書く. -
journal
に論文誌を書く. -
volume
,number
,pages
にそれぞれvolume, number, pagesを書く(ちなみに,複数ページの場合はpages = {1--10}
というふうに--
を用いる.Texでは-
はハイフンで--
はendashとして出力される.) -
title
にタイトルを書く.出力される際,先頭以外の大文字以外は小文字で出力されるので,大文字のまま出力したいものは{}
でくくって記入する.
必須で書かないといけないのがこれらの項目である.
追加でdoi
とかmonth
とかabstract
とかも書ける.
@inproceeding
(学会誌)では論文誌の代わりにpublisher
やcity
を書いたり,@book
ではvolume
, number
, pages
が必要ないなどの違いがある(最後に必須項目とそれ以外の項目の表をまとめる).
Tex文書本体の書き方
thebibliographyを使用する際と同じく,本文中で\cite{bibtex2000}
といったふうに書けば引用される(ちなみに\usepackage{cite}
を文書の最初に書いておけば,\cite{A,B,C}
と複数同時箇所で引用した際に自動で番号順に並び替えて引用される).
文書の最後に取り込むbibファイルの指定と引用スタイルの指定する.
例えば,同じディレクトリにlibrary.bibという文献ファイルを作成し,できるだけ省略した形式で引用したい場合次のように書く.
%参考文献の取り込み(library.bibというファイルが存在する場合)
\bibliography{library}
%参考文献出力スタイル, abbrv, plain,
\bibliographystyle{abbrv}
スタイルの種類やその仕上がりについては[BibTeX] スタイルファイルのレイアウトサンプルを参考.
基本的にはabbrv
かunsrt
(英語),もしくはjabbrv
かjunsrt
(日本語)で良い.
学会によってはスタイルファイルが配られることもある.
コンパイル方法
普通のplatexのコンパイル方法ではbibファイルは読み込まれず,bibtexを取り込んだりなど複数回コンパイルする必要がある.
めんどくさいので,latexmkで自動コンパイルするのがおすすめ(手動でやりたい方は他のサイトを調べてください).
文書のあるディレクトリに,latexmkrcという名前で以下のファイルを作成する.
#!/usr/bin/perl
$latex = 'platex %O -halt-on-error -file-line-error -interaction=nonstopmode -synctex=1 -kanji=utf8 %S';
$bibtex = 'pbibtex %O %B -kanji=utf8';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3; # use dvipdfmx
# -interaction=nonstopmode: エラーがあっても止まらずにコンパイル
# -file-line-error: エラーの起きたファイル名と行番号の表示
$max_repeat = 10;
ターミナル上で,以下のコマンドを実行すれば,自動で複数回コンパイルされpdfが生成される.
latexmk main.tex # texファイルがmain.texという名前の場合
エディタによってはlatexmkをもとに,保存に合わせて自動でコンパイルできる.
VScodeでは,拡張機能のlatex-workshopをダウンロードした後,setting.jsonを以下のように設定すればよい.
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
}
],
"latex-workshop.latex.tools": [
{
"args": [
"-f",
"-gg",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk"
}
],
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk"
],
"latex-workshop.latex.autoClean.run": "onBuilt"
これで,保存時に自動で更新されて中間ファイルが削除される.
まとめ
せっかく$\rm\TeX$を使うならBibtexが使えないと勿体ないのでぜひ使いましょう.
付録:bibファイルの自動生成
さらに楽をするために,bibファイルを自動で生成する方法を考える.
Mendelayで文献管理をしている場合,持ってる文献全部のbibtexを出力できる.
設定->Bibtexから以下のようにどこにどのような形式でbibファイルを出力するかを設定できる.
ただし,このままだと
-
month
の項が正しく出力されない -
title
の大文字小文字がちぐはぐ
となるので,以下のシェルscriptでbibファイルを整形する(mac環境を想定).
#!/bin/zsh
# Mendeleyから出力したBibtex用のライブラリファイルを正しい月表示に変更し,タイトル表記を統一する
cp library.bib library-new.bib
sed -i '' -e '/^month = /d' library-new.bib
sed -i '' -e '/^title = /s/= {{/= {/g' library-new.bib
sed -i '' -e '/^title = /s/}},/},/g' library-new.bib
付録:文献種類一覧
文献の種類一覧とそれぞれに書ける項目を書いた,ただし任意項目はこれだけではないことに注意.
文献種類 | bibtex | 必須項目 | 任意項目 |
---|---|---|---|
学術論文 | @article | author, title, journal year | volume, number, pages, month, note |
博士論文 | @phdthesis | author, title, school, year | type, address, month, note |
修士論文 | @mastersthesis | author, title, school, year | type, address, month, note |
プロシーディングス | @proceedings | title, year | editor. volume, number, series, address, month, organization, publisher, note |
プロシーディングスの一部 | @inproceedings | author, title, booktitle, year | editor, volume, number, series, pages, address, month, organization, publisher, note |
会議録 | @conference | author, title, booktitle, year | editor, volume, number, series, pages, address, month, organization, publisher note |
書籍 | @book | author editor, title, publisher, year | volume, number. series, address, edition, month, note |
小冊子 | @booklet | title | author, howpublished, address, month, year, note |
書籍の一部 | @inbook | author editor, title, chapter pages, publisher, year | volume, number. series, type, address, edition, month, year |
書籍の一部(表題あり) | @incollection | author, title, booktitle, publisher, year | editor, volume, number, series, type, pages, address, edition, month, note |
マニュアル | @manual | title | author, organization, address, edition, month, year, note |
技術報告書 | @techreport | author, title, institution, | type, number, address, month, note |
未発表 | @unpublished | author, title, note | month, year |
その他 | @misc | author, title, howpublished, month, year; note |
Author And Source
この問題について(BibTexを使用するメリットとその使用方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ooookkkk/items/5a85523d481216684233著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .