
のIEEE 引用文献ページ番号のない電子論文には DOI を付与する必要があると規定されています。しかし、IEEEtran.bst
そのような機能は提供されていないようです。参考文献に DOI 番号を取得する最も良い方法は何ですか?
解決策が
- オプションとして、会議議事録のページ番号がない場合に限りDOIを表示する。
- DOI にハイパーリンクします (例:
doi
またはuri
パッケージ経由)。
編集を伴う解決策を受け入れますIEEEtran.bst
(現在取り組んでいるのがこれです) が、可能であれば、編集を伴わない解決策を希望します。
答え1
私はパッチIEEEtranN.bst
「ボーナス」機能も含めて、これでうまくいきます。
答え2
記事のタイトルにハイパーリンクを張るには、次の方法を使用します。
まず、コピーIEEEtran.bst
してIEEEtranDOI.bst
コピーします。
250 行目付近のフィールドにENTRY
、次のような行を追加します。
dayfiled
+ doi
edition
1400 行目付近のフィールドにFUNCTION {format.article.title}
、次のような行を追加します。
"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
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}