我在 overleaf 中使用 .bib 文件时遇到了一个非常奇怪的问题。
我的一些引文没有出现在我渲染的论文的参考文献中,即使它们在 .bib 文件中,并且在文本中被引用和,\cite{}
与\nocite{}
其他几个正确渲染的引文完全相同。
当我尝试解决这个问题时,我注意到如果我改变第一作者名字中的一个字母,特定的引用就会突然出现!
正确的引用是:
@article{xia_2017,
author = {Xide, Xia and Brian, Kulis},
year = {2017},
title = {W-Net: A Deep Model for Fully Unsupervised Image Segmentation},
eprint={1711.08506},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
这篇文章在文中被引用为\nocite{xia_2017}
,但并未出现在参考文献中,我收到一条警告,称"Package natbib Warning: Citation `xia_2017' undefined on input line 150"
但是,如果我只改变作者名字中的一个字母,它就起作用了!例如,
@article{xia_2017,
author = {Mide, Xia and Brian, Kulis},
year = {2017},
title = {W-Net: A Deep Model for Fully Unsupervised Image Segmentation},
eprint={1711.08506},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
使用文本主体中的相同调用即可正确呈现。
这里发生了什么?
编辑:作为更新,这不仅仅是这个引文。在第一作者的名字前添加字母“M”会导致引文正确呈现(虽然拼写错误,但显然)所有原本无法呈现的引文。
编辑2:下面是重现此问题的最低限度.main
和.bib
文件的文本。
主要.tex:
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{abbrvnat}
\title{Example document}
\begin{document}
\maketitle
\nocite{Muller_1986}
\nocite{Rieutord_2007}
\nocite{ronneberger_2015_works}
\nocite{ronneberger_2015_fails}
\nocite{Strous_1995}
\bibliography{works_cited}{}
\end{document}
作品引用.bib:
@INPROCEEDINGS{Strous_1995,
author = {{Strous}, L.~H.},
title = "{Feature Tracking: Deriving Horizontal Motion and More}",
booktitle = {Helioseismology},
year = 1995,
editor = {{Hoeksema}, J.~T. and {Domingo}, V. and {Fleck}, B. and {Battrick}, Bruce},
series = {ESA Special Publication},
volume = {376},
month = jun,
pages = {213},
adsurl = {https://ui.adsabs.harvard.edu/abs/1995ESASP.376b.213S},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
@article{Bovelet_2001,
author = {Bovelet, B. and Wiehr, E.},
year = {2001},
month = {06},
pages = {13-26},
title = {A New Algorithm for Pattern Recognition and its Application to Granulation and Limb Faculae},
volume = {201},
journal = {Solar Physics},
doi = {10.1023/A:1010344827952}
}
@article{Muller_1986,
author = {Muller, Richard and Thierry, Roudier},
year = {1986},
month = {09},
pages = {11-26},
title = {Structure of the solar granulation},
volume = {107},
journal = {Solar Physics}
}
@article{ronneberger_2015_works,
title={U-Net: Convolutional Networks for Biomedical Image Segmentation},
author={MRonneberger, Olaf and Fischer, Philipp and Brox, Thomas},
year={2015},
eprint={1505.04597},
archivePrefix={arXiv},
primaryClass={cs.CV},
journal = {arXiv}
}
@article{ronneberger_2015_fails,
title={U-Net: Convolutional Networks for Biomedical Image Segmentation},
author={Ronneberger, Olaf and Fischer, Philipp and Brox, Thomas},
year={2015},
eprint={1505.04597},
archivePrefix={arXiv},
primaryClass={cs.CV},
journal = {arXiv}
}
@article{Rieutord_2007,
doi = {10.1051/0004-6361:20066491},
url = {https://doi.org/10.1051%2F0004-6361%3A20066491},
year = 2007,
month = {may},
publisher = {{EDP} Sciences},
volume = {471},
number = {2},
pages = {687--694},
author = {M. Rieutord and T. Roudier and S. Roques and C. Ducottet},
title = {Tracking granules on the Sun{\textquotesingle}s surface and reconstructing
velocity fields},
journal = {Astronomy {\&}amp$\mathsemicolon$ Astrophysics}
}
答案1
我收到来自 bibtex 的警告:Warning--I didn't find a database entry for "xia_2017"
然后来自 tex 的错误! Undefined control sequence. <recently read> \mathsemicolon
同样是来自 url 的错误,因此修复不相关的错误会产生一个示例:
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{abbrvnat}
\newcommand\mathsemicolon{;}
\usepackage{url}
\title{Example document}
\begin{document}
\maketitle
\nocite{Muller_1986}
\nocite{Rieutord_2007}
\nocite{ronneberger_2015_works}
\nocite{ronneberger_2015_fails}
\nocite{Strous_1995}
\nocite{xia_2017}
\bibliography{works_cited}{}
\end{document}
运行 pdflatex、bibtex、pdflatex、pdflatex
产生关于未定义的 2017 年引用的警告,但 2015 年的引用均按预期工作: