При запуске этого примера кода:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage{natbib}
\begin{document}
Hello World \cite{greenwood_theoretical_2016}
\end{document}
\bibliography{Bibliography}
\bibliographystyle{plain}
Я постоянно получаю предупреждение:
«Ссылка greenwood_theoretical_2016 на странице 1 не определена в строке ввода 10»
и ссылки помечены как '?' в документе.
Я использую Sublime Text 3.2 LaTeXTools
на macOS High Sierra.
Конструктор установлен на 'базовый' итак, он работает:
pdflatex
bibtex
pdflatex
pdflatex
Я экспортировал свою библиографию из Zotero (формат: Bibtex; кодировка: UTF-8) и проверил файл «Bibliography.bib» (который находится в том же каталоге), и ссылки, похоже, верны (пример):
@article{greenwood_theoretical_2016,
title = {Theoretical, contemporary observational and palaeo-perspectives on ice sheet hydrology: {Processes} and products},
volume = {155},
issn = {0012-8252},
shorttitle = {Theoretical, contemporary observational and palaeo-perspectives on ice sheet hydrology},
url = {http://www.sciencedirect.com/science/article/pii/S0012825216300095},
doi = {10.1016/j.earscirev.2016.01.010},
urldate = {2018-12-05},
journal = {Earth-Science Reviews},
author = {Greenwood, Sarah L. and Clason, Caroline C. and Helanow, Christian and Margold, Martin},
month = apr,
year = {2016},
keywords = {Geomorphology, Esker, Meltwater, Review, Hydrology, Channel, Glacier, Ice Sheet},
pages = {1--27}
С использованиемbiblatex
вместо этого natbib
дает мне метку ссылки в квадратных скобках, т.е.
Привет, мир [greenwood_theoretical_2016]
Я также пробовал использовать разные стили, но ничего не изменилось.
Я знаю, что по этому поводу было много вопросов, но, похоже, здесь ничего не работает.
решение1
В приведенном вами коде есть некоторые проблемы:
- Порядок вызова
\bibliographystyle
и\bibliography
должен быть изменен в вашем коде (стиль должен быть первым!). - При загрузке
natbib
вам лучше использовать стилиplainnat
.plain
- У вас есть
\end{document}
перед вами вызовы библиографии. Это означает, что код после\end{document}
не выполняется.
Пожалуйста, используйте следующий код:
\RequirePackage{filecontents}
\begin{filecontents*}{Bibliography.bib}
@article{greenwood_theoretical_2016,
title = {Theoretical, contemporary observational and palaeo-perspectives
on ice sheet hydrology: {Processes} and products},
volume = {155},
issn = {0012-8252},
shorttitle = {Theoretical, contemporary observational and
palaeo-perspectives on ice sheet hydrology},
url = {http://www.sciencedirect.com/science/article/pii/S0012825216300095},
doi = {10.1016/j.earscirev.2016.01.010},
urldate = {2018-12-05},
journal = {Earth-Science Reviews},
author = {Greenwood, Sarah L. and Clason, Caroline C. and Helanow,
Christian and Margold, Martin},
month = apr,
year = {2016},
keywords = {Geomorphology, Esker, Meltwater, Review, Hydrology,
Channel, Glacier, Ice Sheet, Read Level 3},
pages = {1--27},
}
\end{filecontents*}
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage{natbib}
\begin{document}
Hello World \cite{greenwood_theoretical_2016}
\bibliographystyle{plainnat} % plain
\bibliography{Bibliography} % Bibliography
\end{document}
и видим ожидаемый результат:
Если вы хотите, чтобы библиография была пронумерована, добавьте numbers
опцию natbib
:
\usepackage[numbers]{natbib}
Правильный код для компиляции biblatex
:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage{csquotes}
\usepackage[%
natbib=true, % <=======================================
backend=biber, % <=====================================
]{biblatex}
\addbibresource{Bibliography.bib} % Bibliography <=======
\begin{document}
Hello World \cite{greenwood_theoretical_2016}
\printbibliography
\end{document}
с результатом:
решение2
Часть оригинального ответа, в которой говорится: «Я почти уверен, что команда
\bibliographystyle{plain}
должна быть перед командой\bibliography{Bibliography}
», на самом деле неверна, поскольку компиляция bibtex будет выполняться отдельно, и, таким образом, будет использоваться только aux-файл, в котором уже есть информация о стиле бибиографии. (Спасибо @barbarabeeton и @moewe...) Конечно, привычки программирования все равно заставят больше людей добавлять его перед командой печати, поскольку код будет более удобочитаемым, если сказать «Получи стиль и распечатай его»… чем «Распечатай его… Ах! И не забудь… Мне нужно в этом стиле!» :P
Не проверял, но я почти уверен, что команда \bibliographystyle{plain}
должна быть перед командой \bibliography{Bibliography}
и, что самое важное (в этом я уверен), что обе команды должны быть перед \end{document}
командой.
Попробуйте, пожалуйста, и ответьте, все ли в порядке.