BibTeX 错误:“您缺少条目类型”

BibTeX 错误:“您缺少条目类型”

我有一个非常简单的文件report.tex

\documentclass{article}

\begin{document}

AlexNet \cite{krizhevsky2012imagenet} is great

\bibliographystyle{plain}
\bibliography{references}

\end{document}

还有一个非常简单的.bib文件references.bib

@article{krizhevsky2012imagenet,
  title={Imagenet classification with deep convolutional neural networks},
  author={Krizhevsky, Alex and Sutskever, Ilya and Hinton, Geoffrey E},
  journal={Advances in neural information processing systems},
  volume={25},
  year={2012}
}

当我使用 进行编译时pdflatex report.tex,出现以下警告,并且引用无法正确呈现:

LaTeX Warning: Citation `krizhevsky2012imagenet' on page 1 undefined on input l
ine 5.

No file report.bbl.
...
LaTeX Warning: There were undefined references.

在此处输入图片描述

该命令pdflatex report.tex生成一个输出文件report.aux。如果我运行该命令bibtex report.aux,我将获得以下输出:

...
Database file #1: references.bib
You're missing an entry type---line 1 of file references.bib
 :  ■@
 :    article{krizhevsky2012imagenet,
I'm skipping whatever remains of this entry
Warning--I didn't find a database entry for "krizhevsky2012imagenet"
(There was 1 error message)

为什么我会收到此错误消息?我该怎么办?

答案1

简短回答:该文件references.bib使用了一种不常见的文本编码,显然称为“UTF-16 LE”(根据我的 VS Code IDE)。我切换到“UTF-8”文本编码,现在一切都恢复正常了。

我怎么会得到这种不寻常的编码?好吧,由于touchPowershell 中没有该命令,我references.bib使用 Powershell 命令创建了该文件echo "" >> references.bib。当我在 VS Code 中打开此文件时,VS Code 将文件解释为“UTF-16 LE”,当我粘贴 BiBTeX 引用时,VS Code 将该引用转换为与文件的文本编码相匹配。但bibtex显然无法识别这种不寻常的文本编码。我花了一段时间(以及一些比喻性的用头撞墙)才弄清楚。

编辑:我通过添加到系统环境变量来添加touch到 Powershell 。现在我可以文件,它们被解释为 UTF-8。对我来说不再需要 UTF-16 LE :-)C:\Program Files\Git\usr\binPATHtouch

相关内容