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