Пустая библиография

Путь, серверная часть, отсутствующая цитата, печатная библиография против библиографии.

Пустая библиография

Симптом

Ваш документ компилируется без фатальной ошибки, но раздел «Ссылки» полностью отсутствует или под ним ничего не отображается заголовок. Часто каждый \cite в тексте одновременно отображается жирным вопросительным знаком. Ничего не вышло из строя, поэтому нет очевидной ошибки, которую нужно было бы искать, и именно это расстраивает.

Почему это происходит

Библиография создается не только LaTeX. LaTeX сначала записывает список цитируемых ключей во вспомогательный файл. Отдельная серверная программа («bibtex» или «biber») считывает вашу базу данных «.bib» и форматирует соответствующие записи. Наконец, LaTeX считывает этот отформатированный результат обратно на следующем проходе. Пустая библиография означает, что этот конвейер где-то сломался: бэкэнд никогда не запускался, он работал, но не смог найти базу данных, он нашел базу данных, но ключи не были запрошены, или документ запрашивает результат с помощью неправильной команды.

Устраните причины по порядку

Сначала убедитесь, что файл базы данных существует там, где указано в документе. \bibliography{refs} и \addbibresource{refs.bib} ищут refs.bib относительно основного файла, поэтому файл, находящийся в подпапке bib/, должен называться bib/refs или bib/refs.bib. Неправильный путь тихо проваливается.

Во-вторых, убедитесь, что серверная часть действительно работает. Одной компиляции никогда не бывает достаточно; полный цикл — LaTeX, затем «bibtex» или «biber», затем еще два раза LaTeX. Oleafly запускает этот цикл автоматически, но ручная сборка или неправильно настроенная цепочка инструментов редактора могут пропустить средний шаг, и в результате получится пустой список ссылок.

В-третьих, убедитесь, что присутствует хотя бы одна команда \cite. Серверная часть форматирует только те записи, которые запрашивает документ, поэтому черновик без ссылок изначально получает пустой список. На ранних этапах разработки вы можете принудительно выполнить все с помощью \nocite{*}, который запрашивает каждую запись в базе данных, не печатая ничего в тексте.

В-четвертых, сопоставьте команду с системой. Классические документы BibTeX заканчиваются \bibliographystyle{...} и \bibliography{refs}. Документы biblatex загружают базу данных в преамбуле с помощью \addbibresource{refs.bib} и распечатывают ее с помощью \printbibliography. Смешивание этих двух функций, например, загрузка biblatex, но при этом вызов \bibliography, приводит именно к такому сбою. То же самое касается запуска неправильного бэкэнда: biblatex нужен biber, а подача ему классического bibtex ничего не дает.

Чтение собственного журнала бэкэнда

Серверная часть записывает свои жалобы в файл .blg рядом с вашим документом, и именно здесь появляются неверные записи, повторяющиеся ключи и сообщения «Мне не удалось открыть файл базы данных». Если приведенные выше шаги выглядят правильно, но список по-прежнему пуст, журнал .blg почти всегда указывает настоящего виновника. О вопросительных знаках, которые сохраняются после появления самой библиографии, см. в разделе Удаление загадочных знаков цитирования.

Вернуться к Журнал грамотности