BibTex 在处理月份的默认三字母缩写时存在问题。我使用 overleaf 和 mdpi 模板以及 Zotero 来管理我的参考文献。但是,Overleaf 在处理 Zotero 生成的 BibTex 时存在一些问题。尽管月份字段已在 .bib 文件中填写,但参考书目中根本不显示月份。Overleaf 给出错误“BibTex:字符串名称“jul”未定义”,但基本上一年中的每个月都是如此。
以下是 BibTex 的一个示例条目:
@article{yangSegStereoExploitingSemantic2018,
title = {{SegStereo}: {Exploiting} {Semantic} {Information} for {Disparity} {Estimation}},
shorttitle = {{SegStereo}},
url = {http://arxiv.org/abs/1807.11699},
language = {en},
urldate = {2021-06-30},
journal = {arXiv:1807.11699 [cs]},
author = {Yang, Guorun and Zhao, Hengshuang and Shi, Jianping and Deng, Zhidong and Jia, Jiaya},
month = jul,
year = {2018},
note = {arXiv: 1807.11699},
keywords = {Computer Science - Computer Vision and Pattern Recognition, Sensors Paper},
}
非常感谢有关如何解决此问题的任何建议。
答案1
如果你研究一下plain.bst
BibTeX 的基本参考书目样式,你会发现
MACRO {jan} {"January"}
MACRO {feb} {"February"}
MACRO {mar} {"March"}
MACRO {apr} {"April"}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"August"}
MACRO {sep} {"September"}
MACRO {oct} {"October"}
MACRO {nov} {"November"}
MACRO {dec} {"December"}
这意味着风格必须定义这些宏。在 BibTeX 语法中,类似
month=mar,
没有括号或引号的将被解释为给出宏作为值(因为该值由字母组成)。
但是,如果样式文件未定义这些宏,您可以.bib
通过 将它们添加到文件中@string
。这是一个有点牵强的例子,您只需要添加常见月份的字符串。
\begin{filecontents*}{\jobname.bib}
@string{therm="Th\'ermidore"}
@article{test,
title={Title},
author={A. Uthor},
Journal={Journal},
year=2021,
month=therm,
pages={1--31}
}
\end{filecontents*}
\documentclass{article}
\begin{document}
\cite{test}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}