Academic Writing

BibTeX と BibLaTeX の解説

BibTeX と BibLaTeX は同様のファイルに引用情報を保存するが, そのデータの処理と整形の方法はまったく異なる。ここでは, 実際に両者を分けるバックエンドの違い, BibLaTeX が非英語や特殊な文献をより適切に扱う理由, そして切り替えに実際どのようなコストがかかるかを示す。

5 min
Table comparing BibTeX vs BibLaTeX by formatting logic, backend processor and Unicode support

博士課程の学生が、自分の論文を書き始めるために指導教員の古い LaTeX 論文テンプレートを開くと、References.bib ファイルが bibliographystyle コマンドの隣にあり、そのコマンドは apalike を指していることに気づく。しかし、彼はどちらの引用システムなのか全く分からない。フォルダにはそれを直接示すものは何もなく、しかもテンプレートの元の作成者は今や3人のポスドクと1つの大陸を隔てた場所にいる。

BibTeX vs BibLaTeX は、その混乱の背後に隠れている本当の問いである。両者はどちらも同様のファイルに引用データを保存するが、そのデータの処理、整形、出力には全く異なる仕組みを用いる。文書がすでにどちらを使っているのか、また切り替えた場合に実際に何が変わるのかを知ることは、混乱に費やされる午後と、執筆に費やされる午後の違いである。

ある資料を正しく引用することは、参照スタイルに関する問いの半分にすぎない。そして、TextPulse の参照スタイルのガイドで扱われている半分は、どの組版システムよりもはるかに広い範囲に及ぶ。本稿は、その問いの LaTeX に特有の分岐、すなわち BibTeX か BibLaTeX か、そして両者を実際に分けているものは何かに限定して論じる。

BibTeX vs BibLaTeX: 分岐が実際に起こる場所

BibTeX は2つのシステムのうち古い方であり、同時に2つの役割を果たす。.bib ファイルに置かれたデータを読み取り、別個のスタイルファイルである .bst ファイルに導かれて、そのデータを完成した参考文献一覧へ整形する。この .bst 言語は小さく、この1つの作業のためだけに作られたものであり、それが限界でもある。元の作成者が想定していなかった資料型まで拡張することは、それ自体が専門的技能である。

BibLaTeXは、その2つの作業を分離します。書式設定はLaTeX自体の内部で行われ、別個のスタイルファイルではなく、文書自身のプリアンブルにある通常のLaTeXマクロによって制御されます。データの処理、すなわち .bib ファイルのエントリを読み取り、並べ替え、出力用に準備する作業は、Biber と呼ばれる専用のバックエンドプログラムが担当し、BibLaTeX はコンパイル時にこれを自動的に呼び出します。BibTeX は処理と書式設定を1段階で行いますが、BibLaTeX はその2つの作業を LaTeX マクロと Biber に分けます。この構造上の分離こそが、両者を分けるものに対する本当の答えです。

BibTeXBibLaTeX
書式設定ロジック別個の .bst スタイルファイル文書内の LaTeX マクロ
バックエンド処理系BibTeX 自体, 1段階でBiber, コンパイル時に自動実行
Unicode 対応ネイティブではなし完全対応
多言語の参考文献一覧追加パッケージが必要組み込み済み, 文書の言語設定に従う
典型的なプリアンブルでの呼び出しbibliographystyle と bibliographyusepackage biblatex と addbibresource

BibLaTeX が英語以外や特殊な資料をより適切に扱う理由

Unicode の差は、それだけで英語以外の問題の大半を説明します。BibTeX にはネイティブな Unicode 対応がないため、著者名やタイトルに基本ラテン文字集合以外の文字が含まれる場合、まず回避策が必要です。BibLaTeX の Biber バックエンドは完全な Unicode をサポートするため、アクセント付き文字、非ラテン文字のスクリプト、その他ソースの原言語にあるあらゆる要素がそのまま .bib ファイルに入り、正しく整形されて出力されます。

言語処理は個々の文字を超える。BibLaTeX は、edition や editor のような接続語を、babel または polyglossia によって文書に設定された言語に自動的に合わせる。また、多言語または複数部分から成る参考文献のために、かつては複数の個別の追加パッケージに分かれていた機能も取り込んでいる。従来の BibTeX スタイルは通常 1 つの言語、ほとんど常に英語向けに書かれているため、フランス語やドイツ語の資料を引用する文書では、通常、そのためだけに追加のパッケージが必要だった。

この主張の後半は、同じ構造上の分離から導かれる。BibLaTeX は、整形規則を小さな専用のスタイル言語ではなく LaTeX マクロに保持しているため、既定でより広い種類のエントリ型をサポートできる。これには、オンライン資源、データセット、複数巻の著作のような資料が含まれ、BibTeX の当初の設計では想定されていなかったものである。データセット、プレプリント、またはオンライン専用の報告書を引用する研究者は、通常、BibLaTeX のエントリ型がすでに用意されていることに気づく。一方、BibTeX のワークフローでは、既存の型、通常は包括的な miscellaneous を、合うように曲げて使うことになる。

自分の論文を人間らしくする

重要な語句や引用には手を加えずに、AI支援テキストを変換して自然な人間の文章のようにします。

無料で始める

文書がすでにどちらを使っているかを見分ける方法

前文で数秒で判別できる。biblatex を読み込み、.bib ファイルを指す addbibresource 行がある文書は、BibLaTeX を実行している。これに対して、前文のどこにも biblatex への言及がなく、ファイルの末尾近くで bibliographystyle の後に bibliography を呼び出している文書は、従来の BibTeX を実行している。

  • 前文で biblatex という語を探す。パッケージ行に現れていれば、その文書は BibLaTeX を使っている。
  • addbibresource を探す。これは BibLaTeX にのみ存在し、従来の BibTeX では代わりに bibliography を使う。
  • ビルドがどのプログラムを呼び出しているか確認する。BibLaTeX の文書では、コンパイル手順で BibTeX ではなく Biber を実行する必要がある。
  • 本文中の引用コマンドを確認する。parencite と textcite は BibLaTeX 専用である。cite だけは両方で動作するため、前文の確認が最初に来る。

BibTeX から BibLaTeX に切り替えると実際にどれだけのコストがかかるか

.bib ファイル自体は、ほとんど手を加えずに切り替え後も残る。というのも、両方のシステムが同じ基礎となるエントリ形式を読み取るからである。ほとんどのフィールドはそのまま引き継がれ、BibLaTeX は BibTeX の元のフィールド名を別名として受け入れるが、年と月を別々のフィールドにする代わりに 1 つの日付フィールドを用いるなど、より正確な代替手段も提供している。

文書の引用システムが確定したら、新しいエントリを適切な形で生成する作業は、記憶だけを頼りに生のフィールドを入力するよりも、専用の bibtex generator を使うほうが容易である。特に、文書全体で 1 回しか現れないソース種別ではその傾向が強い。

実際の負担はデータではなく、プリアンブルとビルドチェーンにある。bibliographystyle と bibliography は biblatex と addbibresource に置き換える必要があり、natbib から借用した引用コマンドは BibLaTeX 自身の対応物と照合して確認する必要がある。また、コンパイラまたはエディタには、ビルド中に BibTeX ではなく Biber を実行するよう指示しなければならない。最後の手順が人をつまずかせる。旧来のビルド順序のまま設定されたエディタは、参考文献がまったくない文書を出力し、しかも実際の原因を示すエラーも出さないからである。

一度特定されれば、これらはどれも難しくない。まさにそこが問題である。各要素は小さく、十分に文書化された変更にすぎないが、説明のないまま引き継がれたテンプレートは、最初の変更点、つまりビルド段階で静かに失敗しがちであり、書き手が引用自体が機能していたかどうかを見る前に止まってしまう。

切り替えるべきか、それとも動作しているテンプレートをそのままにすべきか?

すでに classic BibTeX で動作する文書を作成しており, つまり新しい機能が不要で, 参照するのが英語のソースだけで, 記事, 書籍, 会議論文以外のソース種別を決して必要としないなら, プロジェクトの途中で切り替える理由はほとんどない。締切まで 2 か月の時点で動作中の論文テンプレートは, 上記の移行コストを吸収する場所ではない。

複数の言語で出典を引用する文書、データセット、ウェブサイト、またはその他の標準的でない出典タイプから引く文書、あるいは元の著者がすでに BibLaTeX を前提に構築していたためにそのまま引き継がれた文書は、別の मामलाです。そこでは、切り替えるべきかどうかではなく、その文書がそもそも classic BibTeX で動作していたのかどうかが問題であり、まさにそのために上の preamble check があるのです。

参考文献リストを別の journal 向けに再整形する方法には専用のページがあり、注釈付き参考文献一覧と literature review の違いにも同様に専用のページがあります。

ただし、すべての引用の問題が LaTeX の問題であるわけではありません。出版社の記録から reference を直接取得する citation generatorは、.bst ファイルや Biber の実行を必要とせず、LaTeX ではなく Word で作業する人にとっても、同じ根本的な作業を解決します。

XLinkedInFacebook

よくある質問

BibTeX と BibLaTeX の違いは, 整形作業がどこで行われるかにある。BibTeX は, 別個の .bst スタイルファイルに従って, 引用データを自ら読み取り, 整形する。BibLaTeX はこの役割を分割し, Biber と呼ばれるバックエンドプログラムがデータを処理し, 整形は文書内の通常の LaTeX マクロで制御される。この分割により, BibLaTeX は Unicode, 複数言語, そして特殊な文献種別をより容易に扱える。

Sara

Content planner and copywriter at TextPulse. Sara runs the blog day to day, from planning and drafting through to publishing. She writes the practical guides: clear explanations of academic writing problems, aimed at the person who actually has to hand something in.