Как проверить цитирование и библиографию в статье LaTeX

БлогEasyLaTeX OfficialОпубликовано

Проверяйте оба направления: цитаты в тексте и базу .bib

Цитата с отсутствующим в .bib ключом может вызвать Citation 'key' undefined и [?] в PDF. Обратная ситуация тише: запись базы, на которую нет ссылок, обычно не попадает в библиографию без предупреждения.

Здесь база содержит две книги, но основной файл цитирует только одну:

bibtex
@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}}
LaTeX
\documentclass[11pt]{article}\usepackage{fontspec}\setmainfont{CMU Serif}\setsansfont{CMU Sans Serif}\setmonofont{CMU Typewriter Text}\usepackage[russian]{babel}\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 и ищите каждый в тексте. Неиспользованная запись может быть забытой цитатой или старым источником; решите, какой это случай.

В копии проекта \nocite{key} позволяет проверить одну запись, а \nocite{*} — показать все. Если оставить последний вариант в итоговой рукописи, по библиографии нельзя будет понять, какие записи действительно цитировались.

Проверьте поля по типу записи

Недостающие поля часто дают пустой или зависящий от стиля вывод, а не останавливают LaTeX. Библиографические инструменты могут предупреждать о них.

ТипЧасто проверяемые поляВозможный симптом
@articleauthor, title, journal, year; volume и pages, где применимоНеполные сведения о публикации
@inproceedingsauthor, title, booktitle, yearНет названия сборника трудов
@bookauthor, title, publisher, yearНеполные сведения об издателе
@misc / @onlineauthor или organization, title, year/date, URLНеполные веб-сведения; дате обращения также нужны подходящие поле и стиль

Ошибочное поле вроде journals вместо journal может игнорироваться как отсутствующее. Проверяйте поля, действительно используемые вашей системой и стилем.

Снимите ограничения глав перед итоговой проверкой

С \includeonly исключённые главы не обрабатываются в текущем запуске. Их цитаты зависят от доступной вспомогательной информации и могут отсутствовать в списке. \input не ограничивается \includeonly. Перед сравнением цитат и библиографических записей уберите ограничения и скомпилируйте всё.

Распространённые сообщения

СообщениеПричинаДействие
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{*} для проверки в копии, а не как подтверждение полноты цитирования.
  • После просмотра глав выполняйте полную компиляцию.

Храните refs.bib с проектом в EasyLaTeX и компилируйте правильный основной файл.