
這IEEE 引文參考指定應為沒有頁碼的電子文章提供 DOI。然而,IEEEtran.bst
似乎沒有提供這樣的功能。在參考書目中獲取 DOI 號的最佳方式是什麼?
如果解決方案也有獎金
- 可選擇僅在會議記錄缺乏頁碼的情況下顯示 DOI;和/或
- 超連結 DOI(例如透過
doi
或uri
包)。
我會接受一種涉及編輯的解決方案IEEEtran.bst
——這是我現在正在研究的方法——但如果可能的話,我更喜歡不涉及編輯的解決方案。
答案1
我創建了一個修補做到IEEEtranN.bst
這一點就可以了,包括「獎勵」功能。
答案2
我使用這種方法來超連結文章標題:
首先,複製IEEEtran.bst
到IEEEtranDOI.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}