此警告与我在此网站上看到的其他问题略有不同,因为其中只提到了冒号和 bibtexkey。它不会导致错误,而且输出对我来说似乎不错,但我感兴趣的是我需要清理哪些内容才能消除此警告。
我使用\usepackage[numbers]{natbib}
和\bibliographystyle{unsrtnat}
。
当我运行 BibTex 时,我得到了Warning--I didn't find a database entry for ":"
通常的输出。我通过{:}
在文档中搜索来检查,以确保我从未通过此 bibtexkey 引用任何内容,例如\cite[...]{:}
或\cite[...]{:}
,但没有找到任何内容。但我相信这也会导致未定义的引用,因为这肯定是打字错误。
可能存在什么问题?
答案1
如果我尝试
\documentclass{article}
\usepackage[numbers]{natbib}
\begin{document}
\cite{x}
\citep[x]:
\end{document}
那么.aux
文件包含
\relax
\citation{x}
\citation{:}
BibTeX 将拾取这些条目以填充文件.bbl
。再次运行 BibTeX 和 LaTeX 后,.bbl
文件中的条目将\bibcite
在文件中产生行.aux
,例如
\bibcite{x}{{1}{2020}{{Uthor}}{{}}}
这样,您将能够\citation{:}
在.aux
文件中找到有问题的条目并猜测问题出在哪里。二分搜索有助于缩小查找范围。
警告
Warning--I didn't find a database entry for “:”
能仅有的由 BibTeX 发出,并且它只在文件中查找\citation
行.aux
。因此,如果发出警告,则是形式为 的一行\citation{:}
。
答案2
我偶然发现了答案:我打错了\citep[...]:
,用的是方括号而不是卷曲括号。在做了一些其他更改并重新编译后,我注意到有未定义的引用。对我来说,这条消息似乎以前不存在,但我不知道这是否合理,所以我可能只是错过了它。