16

The IEEE Citation Reference specifies that a DOI should be provided for electronic articles without page numbers. However, IEEEtran.bst appears to provide no such functionality. What is the best way to get DOI numbers in the bibliography?

Bonus if the solution also

  • optionally makes display of DOI conditional on a lack of page numbers for conference proceedings only; and/or
  • hyperlinks the DOI (e.g. through the doi or uri packages).

I'll accept a solution that involves editing IEEEtran.bst—this is the approach I'm working on now—but would prefer one that doesn't, if possible.

4
  • Have you asked Michael Shell (author of IEEEtran) about this?
    – Joseph Wright
    Commented Aug 16, 2012 at 17:40
  • @JosephWright I sent him an email concurrently with this question, and I'll report what I hear back.
    – ezod
    Commented Aug 16, 2012 at 17:53
  • And so you heard nothing back?
    – Clément
    Commented Jan 13, 2015 at 17:44
  • 4
    He reported in August 2012 that DOI functionality is on the to-do list, and that there is more than just DOI to consider (e.g. ArXiv), so it is more involved than just a quick patch.
    – ezod
    Commented Jan 14, 2015 at 19:57

3 Answers 3

11

I've created a patch to IEEEtranN.bst that does the trick, including the "bonus" features.

4
  • 6
    I think the better way would be to create a new bst file like IEEEtranNDoi.bst and provide a MWE which shows how to use it ...
    – Mensch
    Commented Aug 17, 2012 at 1:47
  • 1
    Applying the patch generates the new bst file. I could provide that, although for the moment I am more interested in comments on the changes. The usage should be (and in this case, is) transparent to the user as compared to the current version of IEEEtranN.bst.
    – ezod
    Commented Aug 17, 2012 at 3:18
  • Works like a charm. Note the Q&A to enhance the DOI with a hyperlink: tex.stackexchange.com/questions/394811/…
    – fuesika
    Commented Oct 6, 2017 at 8:58
  • See also people.kth.se/~maguire/myIEEEtran.bst
    – 0 _
    Commented Dec 15, 2017 at 0:34
9

I use this approach to hyperlink the article title:

First, copy IEEEtran.bst to IEEEtranDOI.bst.

In the ENTRY field around line 250, add a line like this:

  dayfiled
+ doi
  edition

In the FUNCTION {format.article.title} field around line 1400, add a line like this:

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

Then use \usepackage{hyperref} and \bibliographystyle{IEEEtranDOI} and it should work. Use \usepackage[hidelinks]{hyperref} if you like hyperlinks invisible.

This is a patch I created for today's IEEEtran.bst using 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

And here's an MWE to test your 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}
6
  • 1
    I never assume anything about academicians.
    – percusse
    Commented Jan 21, 2016 at 16:39
  • I didn't say you told to do so. It's a generic comment.
    – percusse
    Commented Jan 21, 2016 at 16:42
  • 3
    Some comments are completely unnecessary and/or out of place. (This is a generic comment.)
    – bers
    Commented Jan 21, 2016 at 16:50
  • and you are the winner of this argument. Have a badge.
    – percusse
    Commented Jan 21, 2016 at 17:08
  • Do you have a link to this generated "IEEEtranDOI" file? How this relate to the @ezod patch? Commented Dec 16, 2021 at 21:38
0

I found a simple trick to do in MS word without installing or configuring anything extra:

Just add doi in Year field separated by comma. For example:

Year: Aug. 2023, doi: 10.1109/TSE.2023.3287297

This gives me following result:

Y. A. e. al., "Decomposition of Monolith Applications Into Microservices Architectures: A Systematic Review," IEEE Transactions on Software Engineering, vol. 49, no. 8, pp. 4213-4242, Aug. 2023, doi: 10.1109/TSE.2023.3287297.

This is the same I was looking for. Thanks.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .