参考错误“警告——(...) 中的年份为空;设置为“????””

参考错误“警告——(...) 中的年份为空;设置为“????””

我是 latex/bibtex 的新手,我不知道这个错误是从哪里来的。我从 Zotero 集合中生成了一个 .bib 文件,并尝试在我的 latex 文档中生成参考书目。但是,文档中生成的参考文献无法正确获取出版年份,尽管它存在于 .bib 文件中。

缩小的 .bib 文件如下所示:

@article{packham_interactive_2005,
  title = {Interactive Visualisation for Decision Support and Evaluation of Robustness—in Theory and in Practice},
  volume = {19},
  issn = {1474-0346},
  url = {http://www.sciencedirect.com/science/article/pii/S1474034605000613},
  doi = {10.1016/j.aei.2005.07.006},
  timestamp = {2016-04-06T06:59:27Z},
  number = {4},
  journaltitle = {Advanced Engineering Informatics},
  shortjournal = {Advanced Engineering Informatics},
  series = {Computing in Civil Engineering11th International Workshop of the European Group for Intelligent Computing in Engineering},
  author = {Packham, I. S. J. and Rafiq, M. Y. and Borthwick, M. F. and Denham, S. L.},
  urldate = {2016-04-06},
  date = {2005-10},
  pages = {263--280},
  note = {00019},
  keywords = {decision support,Genetic algorithms,Interactive visualisation,Knowledge discovery,Robustness evaluation},
}

我正在生成类似以下 MWE 的参考书目(我尝试了两种不同的样式,一种来自 elsevier 模板,另一种可在此处获得(http://www.frontiersin.org/Design/bst/frontiersinSCNS_ENG_HUMS.bst) 均无法加载年份):

\documentclass[preprint,12pt]{elsarticle}

\begin{document}

fermentum \cite{packham_interactive_2005}

\section{References}
%\bibliographystyle{model1-num-names}
\bibliographystyle{frontiersinSCNS_ENG_HUMS}
\bibliography{Interactive_Optimization}


\end{document}

[2] ISJ Packham, MY Raq, MF Borthwick, SL Denham, 决策支持和稳健性评估的交互式可视化|理论与实践 19 (????) 263{280. 00019.

第一次编译突出显示了以下错误:警告——(...) 中的年份为空;设置为???? 现在,不再显示任何错误,尽管年份仍然用 (????) 而不是“2005”来表示。

我是不是漏掉了什么?这是我使用的 bib 样式的问题吗?还是我从 Zotero 生成的 bib 文件的问题?有什么解决办法吗?请注意,我还尝试将 bib 文件中的标签从“日期”更改为“年份”,但问题没有解决。谢谢您的帮助!

答案1

作为 Zotero 的补充罗斯的回答(在我看来,这在 bibtex 上是正确的,尽管我很确定 citekeys 中的下划线是没问题的),请注意 Zotero 可以导出 BibLaTeX 和 BibTeX。对于您可能正在使用的 Bettter BibTeX 插件也是如此(如果没有,应该考虑)。您的 MWE 来自 BibLaTeX 导出。Zotero 的 BibTeX 导出将自动执行 Ross 在 MWE 中为您修复的确切操作:正确地将日期分为年份和月份字段。(它还将执行其他一些不同的事情,使其与标准 bibtex 更加一致)。

答案2

我想指出的是,您正在使用 Elsevier 的类文件,elsarticle.cls以及bst为 Springer 期刊准备的文件。很难想象这是您的故意。如果您正在为其中一个出版商准备论文,则需要查看他们的说明。

尽管如此,使 MWE 工作的关键是识别文件frontiersinSCNS_ENG_HUMS是一种authoryear样式。这意味着您需要告诉 elsarticle 类您正在使用authoryear。这可以通过将该选项添加到类选项中来完成。要解决空年份警告,只需添加year = {2005}到 bibitem 中。

我还从文件名和 bibitem 键中删除了破折号和下划线。这些在 中没有问题BibLaTeX,但我认为它们在这里会产生问题。bibitem 中的某个地方可能还存在另一个错误。我最终将其粘贴到 JabRef 中,运行Cleanup Entry并粘贴回 MWE。

MWE和结果如下:

\documentclass[preprint,authoryear]{elsarticle} 

\begin{filecontents*}{InteractiveOptimization.bib}
@Article{packham05,
    author       = {Packham, I. S. J. and Rafiq, M. Y. and Borthwick, M. F. and Denham, S. L.},
    title        = {Interactive Visualisation for Decision Support and Evaluation of Robustness---in Theory and in Practice},
    year         = {2005},
    volume       = {19},
    number       = {4},
    pages        = {263--280},
    note         = {00019},
    date         = {2005-10},
    doi          = {10.1016/j.aei.2005.07.006},
    issn         = {1474-0346},
    journal      = {Advanced Engineering Informatics},
    keywords     = {decision support,Genetic algorithms,Interactive visualisation,Knowledge discovery,Robustness evaluation},
    series       = {Computing in Civil Engineering11th International Workshop of the European Group for Intelligent Computing in Engineering},
    shortjournal = {Advanced Engineering Informatics},
    timestamp    = {2016-04-06T06:59:27Z},
    url          = {http://www.sciencedirect.com/science/article/pii/S1474034605000613},
    urldate      = {2016-04-06},
}
\end{filecontents*}

\begin{document}

fermentum \citep{packham05}

%\section{References}
%\bibliographystyle{model1-num-names}
\bibliographystyle{frontiersinSCNS_ENG_HUMS}
\bibliography{InteractiveOptimization}

\end{document}

在此处输入图片描述

答案3

因此,如果您像我一样,犯了很多错误的引用并且不想手动修复它,那么您可以使用正则表达式:

(journaltitle = {([^}]+)})

并替换为:

journaltitle = {$2},\n\tjournal = {$2}

以修正期刊名称。年份如下:

(\s(date = {([^-}]+)-[^}]+}))

并替换为:

$1,\n\tyear = {$3}

话虽如此,我不太擅长使用正则表达式,所以你应该手动检查每个匹配项,看看它是否按照你的要求执行。此外,如果你有一些已经正确的项目,这将添加重复的日记帐和年份字段。

编辑:我不再这样做了。我已经通过使用解决了这个问题betterbibtex

相关内容