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}and\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

這是一個用於測試 IEEEtranDOI.bst 的 MWE:

\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}

相關內容