LaTeX: avisos de 'citação indefinida'

LaTeX: avisos de 'citação indefinida'

Ao executar este código de exemplo:

\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}

Continuo recebendo o aviso:

'Citação greenwood_theoretical_2016 na página 1 indefinida na linha de entrada 10'

e as referências são marcadas como '?'no documento.

Estou usando o Sublime Text 3.2 LaTeXToolsno macOS High Sierra.
O construtor está definido como 'básico'então ele roda:

pdflatex
bibtex
pdflatex
pdflatex

Exportei minha bibliografia do Zotero (Formato: Bibtex; Codificação: UTF-8) e verifiquei o arquivo 'Bibliography.bib' (que está no mesmo diretório) e as citações parecem estar corretas (exemplo):

@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}

Usandobiblatexem vez de natbibme dá o rótulo da referência entre colchetes, ou seja

Olá mundo [greenwood_theoretical_2016]

Também tentei usar estilos diferentes, mas nada mudou.

Eu sei que tem havido muitas perguntas sobre isso, mas nada parece funcionar aqui.

Responder1

No seu código fornecido há alguns problemas:

  1. A ordem de chamada \bibliographystylee \bibliographydeve ser alterada no seu código (estilo primeiro!).
  2. Com o carregamento, você natbibdeve usar melhor o estiloplainnatplain
  3. Você tem \end{document}antes de ligar para a bibliografia. Isso significa que o código seguinte \end{document}não é executado.

Por favor, use o seguinte código:

\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}

e veja o resultado esperado:

resultado com bibtex

Se você deseja obter a bibliografia numerada, adicione a numbersopção natbib:

\usepackage[numbers]{natbib}

O código correto para compilar 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}

com o resultado:

insira a descrição da imagem aqui

Responder2

A parte da resposta original aqui que diz "Tenho quase certeza de que o comando \bibliographystyle{plain}deve estar antes do comando \bibliography{Bibliography}" não está realmente correta porque a compilação do bibtex será feita separadamente e assim será usado apenas o arquivo aux que já possui as informações sobre o estilo bibiográfico. (Obrigado @barbarabeeton e @moewe...) Claro, os hábitos de programação ainda farão com que mais pessoas o adicionem antes do comando de impressão, já que o código será mais legível por humanos dizendo "Obtenha um estilo e imprima-o". . do que "Imprima... Ah! e não esqueça... preciso nesse estilo!" :P

Não testei, mas tenho quase certeza de que o comando \bibliographystyle{plain}deve estar antes do comando \bibliography{Bibliography}e o mais importante (isso aqui tenho certeza), que ambos os comandos devem estar antes do \end{document}comando.

Por favor, tente e responda se estiver tudo bem.

informação relacionada