もちっとメモ

もちっとメモ

もぐりのエンジニアが日々の中で試してみたことを気が向いたときに書き連ねていきます

引用が増えてきたのでBibtexを導入してみた

最近,長めの文章をTexで書く機会があり,参考文献も増えてきたのでこの機にBibTexなるものを導入してみた.導入するといっても,文献データだけ別ファイルに用意してそれを読み込むだけなので,新しくソフトウェアをダウンロードするほど大したものではないです.
と思っていたのですが,意外とこれが時間がかかりました.知ってしまえばなんてことはないのですが,今回はズバッと自分のニーズに答えてくれるサイトがないので1~2時間ネット上をふらふらしました.(いつものことですが(笑))

必要なものは次の2つ(3つ)です.
Texファイル(.tex) これがないとどうしようもないですね.
・Bibファイル(.bib) これは自分で作る(コピペする)必要があります.
・Bstファイル(.bst) BibTexを使うときのスタイルファイルのようなものです.デフォルトでも用意されていますが,「○○論文みたいにしたい」と思うときはダウンロードしてみるといいと思います.いろいろな論文誌のスタイルが各論文誌のサイトからダウンロードできます.

・ステップ1:Bibファイルを用意する.
一言でいうと文献データベースのようなものです.
まず,メモ帳等をひらいて,「Reference.bib」というファイル名で保存しましょう.このときTexファイルと同じディレクトリに保存しましょう.(Texから参照できる形になっていれば同ディレクトリでなくても大丈夫です)
Bibファイルができたら中身を書きこみます.手書きもできますが,だいたい各論文誌が用意してくれているケースが多いので各論文のページを開いて「BibTex」や「Citaition」という単語を探しましょう.私がよく見るPhysical Review系では「Export Citation」のボタンを押すと,BibTexフォーマットのテキストが表示されます.ダウンロードもできますが,一つのBibファイルにまとめたいので先ほどの「Reference.bib」にテキストをコピペして保存しましょう.
※論文誌によってはBibTex形式で用意していないサイトもあります.(実際にScientific ReportではBibTex形式では用意していなくて,1時間ほどウロウロしました.)個人的なおすすめはGoogleScolarから検索して引用ボタンから取得です.他にもMendeleyを使っていればこちらから取ってくることもできます.

・ステップ2:Texファイルにいろいろ書きこむ.
(1)\documentclassの下あたりに
\bibliographystyle{plain} ←後述しますが,{}にはBstファイル名を入力してください.
と書きます.
(2)参考文献を表示させたい位置に
\bibliography{Reference} ←{}にはBibファイル名を入力してください.先ほど作った「Reference.bib」などのことです.
基本的には入力事項はこの2つです.あとはコンパイル時に
pdftex等(いつもやっているコンパイル)→bibtex→pdftex等(いつもの)
の順にコンパイルすれば,Bibファイルの内容が反映されて表示されるはずです.うまくいかないときはいつものコンパイルを何回か繰り返してみてください.
\citeなどは通常通りに使えます.ラベル名はBibファイルの先頭に書いてあるものを参照することになります.@article{の次くらいに書いてあるやつです.ダウンロードしてきたときはデフォルトでは論文番号や著者名+年号などになっておりことが多いです.適宜変更してください.

・ステップ3(オプション):Bstファイルでスタイルを変更する.
ステップ2ではしれっと「plain」を使いましたが,他にも種類はたくさんあります.自作もできますが,ネットからテンプレートをダウンロードしてくればよいでしょう.個人的なおすすめはデフォルトあるものなら
unsrt
ダウンロードしてくるなら
jpsj
です.いろいろ試してお気に入りのフォーマットを探してみてください.日本語文献の場合は頭にjをつければ使えることが多いです.「jplain」など.

 

おまけ:citeの連番を省略表記させる.
文章中で引用文献が
[1,2,3,4,5]
とかなっていると長くてダサいな.できれば,
[1-5]
とかにしたいなと思ったときは,プリアンブルに
\usepackage{cite}
を付け加えてください.コンパイルが通らないときはスタイルファイルがない場合があるので,こちらからダウンロードしてみてください.

追記:2017.01.05
私はTexworksを使っているのですが、日本語文献スタイルのbst(jplain)などを使うとうまく表示されませんでした。具体的には著者名が本のタイトルになってしまいました。どうやらコンパイル方法がわるいらしいです。こちらのサイトを参考にタイプセットをいじるとうまくいきました。

hanzomemo.blogspot.jp

BibTeX を使った文献目録の作成 - Okomeda Net

本のbib情報はLead2Amanozが便利です。アマゾンで扱っている本ならタイトルや著者名で検索すればBIbデータを表示してくれます。

lead.to

Webページの場合の書き方はこちらを参考になります。

\usepackage{url}

\url というコマンドがポイント。

のくだりはURLにアンダーバー"_"が含まれる際に関係あるみたいです。

d.hatena.ne.jp

また,所望の形式のbstファイルがないときは自分で書き換えるのも手かもしれません.

d.hatena.ne.jp

www.ketsuago.com