如何仅在一个 bibtex 参考文献中包含 doi 并将其从所有其他参考文献中排除?

如何仅在一个 bibtex 参考文献中包含 doi 并将其从所有其他参考文献中排除?

这里有很多关于 bibtex 中 doi 字段的问题,但它们都是(至少我发现的)关于为所有参考文献添加 doi 的问题。如果您只想在参考书目中的单个参考文献中添加它,您应该怎么做(假设您使用的是排除 doi 的样式文件)。

期望的输出是作者、年份、标题、期刊、卷、期、页码。这些似乎是样式文件唯一没有忽略的字段。我想将 DOI 放在末尾,用于一篇正在印刷的论文。我知道我可以在年份字段中输入“正在印刷”,但实际上给出了年份,因为这篇论文出现在期刊的网站上。理想情况下,我想用 DOI 替换此参考文献的页码、卷或期。

下面是两个参考文献和相应的样式文件,用作最小可重现示例。

@article{berec2015,
  title={Designing efficient surveys: spatial arrangement of sample points for detection of invasive species},
  author={Berec, Lud{\v{e}}k and Kean, John M and Epanchin-Niell, Rebecca and Liebhold, Andrew M and Haight, Robert G},
  journal={Biological Invasions},
  volume={17},
  number={1},
  pages={445--459},
  year={2015},
  publisher={Springer}
}

@article{oclea2015,
  title={The danger of fictitious invasive species},
  author={oclea, Mason},
  journal={Fake Journal of Ecology},
  year={2015},
  volume={},
  number={},
  pages={1--15. DOI:10.1899/15-9834.6}
}

\documentclass[12pt,reqno]{article}
\setlength\parindent{0pt} %no auto indentation for new paragraphs
\usepackage{geometry} 
\geometry{a4paper} 
\usepackage{natbib}
\begin{document}
\citep{berec2015}
\citep{oclea2015}
\bibliographystyle{BESJournalsStyleFile}
\bibliography{BibTexFileGoesHere}
\end{document}

使用 Bibstyle BESJournalsStyleFile,可以在这里找到https://www.ctan.org/tex-archive/biblio/bibtex/contrib/besjournals?lang=en。我尝试过在所有字段中添加 DOI。上面的作者选项oclea2015在 PDF 中的 DOI 之前产生了一个奇怪的页面。

答案1

书目样式besjournals似乎与名为 的字段没有任何关系doi。因此,对于您想要显示 doi 相关信息的任何条目,您需要将该信息放在 字段中note,幸运的是,该字段将放在格式化条目的末尾。

对于列出的第二个条目,您应该创建以下近似重复的条目(请注意-doi条目键中的额外字符串):

@article{oclea2015-doi,
  title={The danger of fictitious invasive species},
  author={Oclea, Mason},
  journal={Fake Journal of Ecology},
  year={2015},
  note={\mbox{doi}:\url{10.1899/15-9834.6}}
}

当然,你应该保留原始条目——正确的volumenumberpages字段,但没有note字段 -- 。这样,您可以选择将哪个条目(带有或不带有 doi 信息的条目)包含在参考书目中。

在此处输入图片描述

\RequirePackage{filecontents} % make this a self-contained example
\begin{filecontents}{BibTexFileGoesHere.bib}
@article{berec2015,
  title={Designing efficient surveys: spatial arrangement of sample points for detection of invasive species},
  author={Berec, Lud{\v{e}}k and Kean, John M and Epanchin-Niell, Rebecca and Liebhold, Andrew M and Haight, Robert G},
  journal={Biological Invasions},
  volume={17},
  number={1},
  pages={445--459},
  year={2015},
  publisher={Springer},
}
@article{oclea2015,
  title={The danger of fictitious invasive species},
  author={Oclea, Mason},
  journal={Fake Journal of Ecology},
  year={2015},
  volume={},
  number={},
  pages={1--15},
  doi={10.1899/15-9834.6},
}
@article{oclea2015-doi,
  title={The danger of fictitious invasive species},
  author={Oclea, Mason},
  journal={Fake Journal of Ecology},
  year={2015},
  doi={10.1899/15-9834.6},
  note={\mbox{doi}:\url{10.1899/15-9834.6}}
}
\end{filecontents}

\documentclass[12pt,a4paper]{article}
\setlength\parindent{0pt} %no indentation for first lines of paragraphs
\usepackage{geometry,natbib,url}

\begin{document}
\nocite{*}  % include all entries in the bib file
\bibliographystyle{besjournals}
\bibliography{BibTexFileGoesHere}
\end{document}

答案2

这是一个令人讨厌的黑客行为,但不幸的是,克服样式文件默认设置并不那么简单。我在评论中提出的建议是将 DOI 附加到页面:

pages = {1--15. DOI:10.1899/15-9834.6}

在样式看到卷为空白后切换到此模式,在页面详细信息前面附加 pp.。 解决方案是在卷字段中放置一个负空间,这样样式文件就会乐意将其视为常规期刊文章:

volume = {\kern-0.3em}

这应该可以,但有一个警告:卷后的标准逗号仍会打印,如果期刊名称恰好与右边距齐平,它将打印在新行上。我本质上希望你的真实标题不会出现这个问题,而你的假标题是例外。

为了我自己的理智,除了使用页面字段,您还可以像 Steven 建议的那样将 DOI 放在注释字段中,这会让视觉效果更好一些。如果您只是单独执行此操作,并且由于某种原因您的样式文件不喜欢将首字母大写(这意味着如果您选择使用注释字段,您需要将其列为“doi”而不是“DOI”),则仍然会添加 pp.。

我正在进行的 oclea2015 条目:

@article{oclea2015,
  title={The danger of fictitious invasive species},
  author={oclea, Mason},
  journal={Journal of Ecology},
  year={2015},
  volume={\kern-0.3em},
  number={},
  pages={1--15},
  note={doi:10.1899/15-9834.6}
}

Oclea2015

相关内容