IEEEtran 参考书目中的 DOI

IEEEtran 参考书目中的 DOI

IEEE 引文参考指定应为没有页码的电子文章提供 DOI。但是,IEEEtran.bst似乎没有提供此功能。在参考书目中获取 DOI 编号的最佳方法是什么?

如果解决方案还

  • 可选择仅在会议论文集缺少页码的情况下显示 DOI;和/或
  • 超链接 DOI(例如通过doiuri包)。

我会接受涉及编辑的解决方案IEEEtran.bst(这是我现在正在研究的方法),但如果可能的话,我更倾向于不涉及编辑的解决方案。

答案1

我创建了一个修补这样IEEEtranN.bst做可以达到目的,包括“奖励”功能。

答案2

我使用这种方法来超链接文章标题:

首先,复制IEEEtran.bstIEEEtranDOI.bst

ENTRY第 250 行附近的字段中,添加如下一行:

  dayfiled
+ doi
  edition

FUNCTION {format.article.title}第 1400 行附近的字段中,添加如下一行:

  "title" bibinfo.check
+ doi empty$ {} { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$
  duplicate$ empty$ 'skip$

然后使用\usepackage{hyperref}\bibliographystyle{IEEEtranDOI},它应该可以工作。\usepackage[hidelinks]{hyperref}如果您喜欢不可见的超链接,请使用。

这是我使用以下命令为今天的 IEEEtran.bst 创建的补丁diff -c IEEEtran.bst IEEEtranDOI.bst

*** IEEEtran.bst        2015-08-26 16:56:09.000000000 -0400
--- IEEEtranDOI.bst     2016-01-20 14:17:48.216975400 -0500
***************
*** 262,267 ****
--- 262,268 ----
      chapter
      day
      dayfiled
+     doi
      edition
      editor
      howpublished
***************
*** 1419,1424 ****
--- 1420,1426 ----
      }
    if$
    "title" bibinfo.check
+   doi empty$ {} { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * } if$
    duplicate$ empty$ 'skip$
      { quote.close 'this.status.quote :=
        is.last.char.not.punct

下面是一个 MWE 来测试您的 IEEEtranDOI.bst:

\documentclass{IEEEtran}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @article{Example,
        author = {Author, The},
        doi = {10.1000/182},
        journal = {Awesome Journal},
        title = {{This is the title, click to go to doi}},
        year = {2016},
    }
\end{filecontents}
\begin{document}
    \nocite{*}
    \bibliographystyle{IEEEtranDOI}
    \bibliography{\jobname}
\end{document}

相关内容