LaTeX 論文の引用と参考文献を漏れなく確認する方法

ブログEasyLaTeX公開日

本文と .bib の両方向を確認する

本文のキーが .bib にないと、Citation 'key' undefined や PDF の [?] になります。逆に、データベースにあって本文で引用しない項目は、通常、警告なしで一覧から除外されます。

次の例には2冊のデータがありますが、主ファイルは1冊だけを引用します。

@book{knuth1984,
  author = {Donald E. Knuth},
  title = {The TeXbook},
  publisher = {Addison-Wesley},
  year = {1984}
}
@book{lamport1994,
  author = {Leslie Lamport},
  title = {LaTeX: A Document Preparation System},
  edition = {2},
  publisher = {Addison-Wesley},
  year = {1994}
}
\documentclass[11pt]{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{refs.bib}
\begin{document}
\cite{knuth1984}
\printbibliography
\end{document}

ログから未解決のキーを探す

Citation 'kingma2015' on page 3 undefined のページ番号は本文の引用位置です。.bib の位置ではありません。キーを検索して確認します。

  1. 綴りと大文字・小文字が完全に一致するか。
  2. データベースを読み込んだか。biblatex は \addbibresource{refs.bib}、従来の BibTeX は \bibliography{refs} を使います。ファイル名の誤りは全引用に影響します。
  3. コメント内だけにないか。% \cite{...} は検索されても引用として処理されません。

文献処理の途中で未解決になっている場合もあります。EasyLaTeX で再コンパイルし、全処理を待ってください。残る場合は参考文献関連のログを確認します。

引用されていない項目を探す

この方向には通常警告がありません。.bib のキーを一覧にし、本文で1つずつ検索します。引用漏れなのか、不要になった古いデータなのかを判断します。

プロジェクトのコピーで \nocite{key} を使えば1項目、\nocite{*} なら全項目を確認できます。後者を正稿に残すと、一覧だけでは実際に引用された項目を判断できません。

種類別にフィールドを確認する

フィールドの不足は処理停止ではなく、空欄やスタイル依存の表示になることがあります。文献処理ツールの警告も確認します。

種類主に確認する項目起こり得る表示
@articleauthor、title、journal、year、必要に応じて巻・ページ出版情報の欠落
@inproceedingsauthor、title、booktitle、year会議録名の欠落
@bookauthor、title、publisher、year出版者情報の不足
@misc / @online著者または組織、title、年・日付、URLWeb 情報の欠落。閲覧日は対応するフィールドとスタイルも必要

journal を journals と誤記すると、未指定と同様に扱われる場合があります。使っている文献方式とスタイルのフィールドを確認してください。

章の制限を外して最終確認する

\includeonly で省略した章は今回処理されません。その引用は補助情報に依存し、一覧から欠ける場合があります。\input はこの制限を受けません。最後は制限を解除して全体を処理し、引用と文献一覧を照合します。

よくあるメッセージ

メッセージ原因対処
Citation 'x' undefinedキーの不一致・不足、データベース未読込.bib とファイル名を確認
There were undefined references.未解決参照や処理の途中完了後に個々のキーを確認
Please (re)run Biber on the file: main文献処理の更新が必要プラットフォームで再コンパイルしログを確認
I didn't find a database entry for "x"BibTeX が項目を見つけられないキーと読込先を確認
empty year in x出版フィールドの不足補完する。一覧には表示される場合もある

関連記事:大規模プロジェクトの管理、コンパイルの問題。

まとめ

  • 欠けた項目と未使用の項目を別々に確認する。
  • ログだけでは未使用の項目を把握できない。
  • \nocite{*} はコピーでの点検に使う。
  • 章別プレビュー後は全体をコンパイルする。

EasyLaTeXでプロジェクトと refs.bib を一緒に管理し、正しい主ファイルから処理できます。