はたらく双対性

雰囲気でBibTeX入門(その1)

(2021/03/06)


— ぜんぜんわからない……雰囲気でLaTeXをいじっている……。

BibTeXを導入したので、自分のような雰囲気でLaTeXを使っている数学系の人のためにも、忘れないうちにメモっておきます。

以下、いくつかの段階に分けて導入していきます。ただし日本語環境でのLaTeXの設定は済んでいるとします(方法はTeXworks/設定 - TeXWikiを見てください)。

環境は次の通りですが、他の環境でもだいたい同じだとは思います:

間違っている箇所やわかりにくい箇所があれば遠慮なく教えてください。

目次

  1. BibTeXとは?
  2. とりあえずBibTeXを使って参考文献を出力してみる
  3. 文献データベースを一つにまとめる
  4. Latexmkと自動コンパイル(飛ばしてもいい)
  5. TeXstudioの設定(飛ばしてもいい)

続く:雰囲気でBibTeX入門(その2)

主な参考文献

その他、個別にリンクを付けてあります。



BibTeXとは?

BibTeXとは、LaTeXにおける文献参照のためのツールのこと。

メリット:

デメリット:

さらに言えばBibTeXは欧文専用であり、日本語で利用するためにはpBibTeXの設定をする必要がある(以前はjBibTeXというのが使われていたらしい)。このページでは、自分がpBibTeXを導入した方法を解説する。以下、BibTeXといえばpBibTeXのことを指すものとする

なおBibTeXの後続としてBibLaTeXが開発されていて、Unicode対応であったり、BibTeXよりも自由に文献表示のカスタマイズができたりする。しかし現状では和文に対応していない(参考:biblatexとBibTeX - 武田史郎のウェブログ)。


とりあえずBibTeXを使って参考文献を出力してみる

BibTeXを使うために必要なのは、bibファイル(文献ファイル)とbstファイル(文献スタイルファイル)の二つ。これらはいずれもただのテキストファイルなので、いくらでも作れる。これらを処理するための(p)bibtexはTeXLiveに標準的に入っているので、特に追加で何かをインストールする必要はない。

bstファイルも標準的なものは初めからインストールされているので、今は気にしない。とりあえず日本語用の一番シンプルなjplain.bstを使う。

①まずbibファイルを用意する。メモ帳を開いて、

@Book{Hartshorne:1977,
  author    = {Robin Hartshorne},
  title     = {Algebraic Geometry},
  series    = {Graduate Texts in Mathematics},
  volume    = {52},
  publisher = {Springer-Verlag},
  year      = {1977},
}

@Book{上野:2005,
  author    = {上野 健爾},
  yomi      = {うえの けんじ},
  title     = {代数幾何},
  publisher = {岩波書店},
  year      = {2005},
}

をコピー&ペーストし、myrefという名前をつけて保存する(ここで文字コードはUTF-8としておく)。メモ帳を閉じて、myref.txtの拡張子を.bibに変更する。

②次にTeXworksで適当なtexファイル(例えばtest.tex)を作って、

%%% test.tex %%%
\documentclass{jsarticle}
\begin{document}
% myref.bib で登録したラベルを参照する
Hartshorne~\cite{Hartshorne:1977}は代数幾何学の定番の教科書である.和書で言えば上野~\cite{上野:2005}がある.

\bibliographystyle{jplain} % jplain.bstの読み込み。参考文献の表示形式を指定する。拡張子はつけない
\bibliography{myref} % myref.bibの読み込み。複数のbibファイルを読み込む場合は {myref,myref2} とスペースを入れないで並べる
\end{document}

と書く。myref.bibをtest.texと同じフォルダ(ディレクトリ)に移動させておく。

③最後にTeXworksでpbibtexを実行できるように設定する。TeXworksを開いている状態から、編集->設定->タイプセットと進み、「タイプセットの方法」枠内の + ボタンを押す。「タイプセットの設定をする」ウインドウにて

と記入し、「実行後、PDFを表示する」のチェックを外してから、OKボタンを押す(わからなければTeXworksでBibTeXを扱う - hanzomemoの画像を見てください)。すると「タイプセットの方法」の一覧にpBibTeXが追加されていることが確認できる。$basenameなどの意味に関しては、Defining new typesetting toolsを参照してください。

これで準備は完了。

④あとはコンパイルすればよいが、(p)bibtexを使って参考文献を表示させるためには、このとき少し手間が要る。TeXworks上で、

  1. LaTeXを実行する(pLaTeX(ptex2pdf)でタイプセットする)
  2. BibTeXを実行する(タイプセットボタン横のプルダウンからpBibTeXを選んでタイプセットする)
  3. LaTeXを実行する(タイプセット方法をpLaTeX(ptex2pdf)に戻してタイプセットする)
  4. LaTeXを実行する(もう一度pLaTeX(ptex2pdf)でタイプセットする)

と実行する(画像とか載せるのめんどうなのでわからなければbibTeXの導入メモ - 生存報告書を参照してください)。やっていることは、

  1. texファイルをplatexで処理し、参照情報を含むauxファイルを生成する。pdf上では[?]で表示される
  2. auxファイルをpbibtexで処理し、bblファイルを作成する
  3. texファイルにbblファイルを取り込んでplatexで処理する。pdf上では引用した文献が参考文献に追加されて表示される
  4. もう一度texファイルをplatexで処理して、相互参照の番号付けを解決する。pdfでは[?]のままだったものが正しく表示される

ということ。これでとりあえずBibTeXが使えているはずで、表示されるpdfには

Hartshorne [1] は代数幾何学の定番の教科書である.和書で言えば上野 [2] がある.

参考文献

[1] Robin Hartshorne. Algebraic Geomtry, Vol. 52 of Graduate Texts in Mathematics. Springer-Verlag, 1977.

[2] 上野健爾. 代数幾何. 岩波書店, 2005.

といった文章が出ているはず。bibファイルの詳しい書き方は、雰囲気でBibTeX入門(その2)を見てください。

とりあえずBibTeXが使えるようになったが、まだまだやっておくことがある。


文献データベースを一つにまとめる

myref.bibに文献情報をどんどん加えていけば、自分だけの文献リストが出来上がってくる。同じmyref.bibを他のtexファイルでも読み込んで使っていきたい。そんなときは、bibファイルを C:\Users\ユーザー名\texmf\bibtex\bib の中に移動させるだけでよい。なければ作る。すなわち

とする。これで、毎回「myref.bibをtexファイルと同じフォルダに置く」をする必要なく、\bibliography{myref}と書いておけば、ちゃんと C:\Users\ユーザー名\texmf\bibtex\bib にあるmyref.bibを読み込んで使ってくれるようになる。

なお、C:\Users\ユーザー名\texmf という場所は、デフォルトで変数 TEXMFHOME に入力されている場所で、TeXのシステム更新に影響を受けない。個人のユーザが用意したファイル(ダウンロードしたstyファイルやbibファイルやbstファイルなど)はこの場所に置くのが基本(参考:ユーザがファイルを追加したい場合は(ローカルな追加) - TeXwiki)。

もしシステム全体で共通して用いるのであれば、デフォルトで変数 TEXMFLOCAL に入力されている C:\texlive\texmf-local 以下の場所に置く。この場合は、TEXMFHOME に置いたときと違ってtexが見つけてくれないので、探して読む込んでくれるように一覧表(ls-R)の更新を行う必要がある(一覧表の更新、つまりmktexlsrの実行についてはstyファイルを置く場所・置いた後にすること - 粗大メモ置き場が参考になる)。しかし、ことbibファイルについては自分用の文献データベースファイルなので、 TEXMFHOME の場所に置くべきだろう。

もっと違う場所(例えば自前のバックアップフォルダなど)に置いて使いたいときは、環境変数BIBINPUTSにパスを追加する必要がある。

あたりを参考のこと。


Latexmkと自動コンパイル

BibTeXを使って参考文献を出力するとき、platex->pbibtex->platex->platexと四回もコンパイルしないといけない。人によっては、これを大変面倒だと思う人がいるかもしれない。

そこでlatexmkというツールを使って、文書を作成するのに必要な回数タイプセットしてくれるように設定する。これはBibTeXやMakeindexなど複数の実行が必要なものに対して役に立つ。なお、latexmkの代替としてllmkというツールも開発されている(参考:llmk プロジェクトが始動しました - ラング・ラグー)。そのほか、ClutTeXという自動化ツールもある(参考:LaTeX処理自動化ツール ClutTeX をリリースした - 雑記帳)。

Latexmkについては

に大体書いてある。

①まずメモ帳で

#!/usr/bin/env perl
 
$latex = 'platex -synctex=1 -halt-on-error -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'pbibtex %O %S';
$makeindex = 'mendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';

$max_repeat = 5;
$pdf_mode = 3;

と書いて、名前を.latexmkrcとし、ファイルの種類を「すべてのファイル」にして保存する。置く場所は、test.texと同じフォルダか、C:\Users\ユーザー名 の中におく。

②次に、TeXworksにおいて、編集->設定->タイプセットと進み、「タイプセットの方法」枠内の + ボタンを押す。「タイプセットの設定をする」ウインドウにて

と記入し、「実行後、PDFを表示する」のチェックを入れたまま、OKボタンを押す。すると「タイプセットの方法」の一覧にLatexmkが追加されていることが確認できる。.latexmkrcに書いたことを、引数のところに直接書いておいても良い。

③あとはタイプセットのプルダウンからLatexmkを選択してひとたびタイプセットを実行すれば、必要に応じて自動的にpbibtexを実行したりplatexを複数回実行してくれる。

ただし、普通にコンパイルするより時間がかかる場合があるので注意されたい(私はこの点をストレスフルに感じるので、普段は設定していない)。


TeXstudioの設定

TeXstudioについては、y.さんのTeX講習会資料の付録Aを参照のこと。ここに書いてある日本語でLaTeXをする設定は済んでいるとする。

TeXstudioでpbibtexを実行する操作は、ツール->文献(ショートカットはF8)である。一度コンパイルして、ツール->文献して、再びコンパイル(ビルド&表示)すれば、参考文献が反映される。

TeXstudioでもlatexmkの設定ができる。上の.latexmkrcのファイルは作ってあるとするとき、TeXstudioを開いて

とすると、ビルド&表示(ショートカットはデフォルトでF5)すればlatexmkが動いてくれるようになる。


続く:雰囲気でBibTeX入門(その2)

「LaTeXについてのメモ」に戻る