BibTex:字符串名称“mar”未定义

BibTex:字符串名称“mar”未定义

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.bstBibTeX 的基本参考书目样式,你会发现

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}

在此处输入图片描述

相关内容