Как проверить цитирование и библиографию в статье LaTeX
Проверяйте оба направления: цитаты в тексте и базу .bib
Цитата с отсутствующим в .bib ключом может вызвать Citation 'key' undefined и [?] в PDF. Обратная ситуация тише: запись базы, на которую нет ссылок, обычно не попадает в библиографию без предупреждения.
Здесь база содержит две книги, но основной файл цитирует только одну:
@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{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. Найдите ключ в базе и проверьте:
- Точное написание и регистр. Ключ в цитате и базе должен совпадать.
- Загружена ли база. biblatex использует
\addbibresource{refs.bib}, традиционный BibTeX —\bibliography{refs}. Неверное имя файла может затронуть все цитаты. - Не закомментирована ли кажущаяся цитата.
% \cite{...}находится поиском, но не создаёт цитирования.
Неразрешённая цитата может отражать и незавершённый проход библиографической обработки. В EasyLaTeX снова запустите компиляцию и дождитесь всего задания. Если проблема остаётся, изучите библиографические ошибки журнала.
Найдите записи базы, которые нигде не цитируются
Для этого направления обычно нет предупреждения. Составьте список ключей .bib и ищите каждый в тексте. Неиспользованная запись может быть забытой цитатой или старым источником; решите, какой это случай.
В копии проекта \nocite{key} позволяет проверить одну запись, а \nocite{*} — показать все. Если оставить последний вариант в итоговой рукописи, по библиографии нельзя будет понять, какие записи действительно цитировались.
Проверьте поля по типу записи
Недостающие поля часто дают пустой или зависящий от стиля вывод, а не останавливают LaTeX. Библиографические инструменты могут предупреждать о них.
| Тип | Часто проверяемые поля | Возможный симптом |
|---|---|---|
@article | author, title, journal, year; volume и pages, где применимо | Неполные сведения о публикации |
@inproceedings | author, title, booktitle, year | Нет названия сборника трудов |
@book | author, title, publisher, year | Неполные сведения об издателе |
@misc / @online | author или 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 и компилируйте правильный основной файл.