DOI na bibliografia do IEEEtran

DOI na bibliografia do IEEEtran

OReferência de citação IEEEespecifica que um DOI deve ser fornecido para artigos eletrônicos sem número de página. No entanto, IEEEtran.bstparece não fornecer tal funcionalidade. Qual a melhor forma de obter números DOI na bibliografia?

Bônus se a solução também

  • opcionalmente, condiciona a exibição do DOI à falta de números de página apenas para anais de conferências; e/ou
  • hiperlinks para o DOI (por exemplo, através dos pacotes doiou uri).

Aceitarei uma solução que envolva edição IEEEtran.bst– esta é a abordagem na qual estou trabalhando agora – mas preferiria uma que não envolvesse, se possível.

Responder1

Eu criei umcorreçãoisso IEEEtranN.bstresolve o problema, incluindo os recursos de "bônus".

Responder2

Eu uso esta abordagem para criar um hiperlink para o título do artigo:

Primeiro, copie IEEEtran.bstpara IEEEtranDOI.bst.

No ENTRYcampo ao redor da linha 250, adicione uma linha como esta:

  dayfiled
+ doi
  edition

No FUNCTION {format.article.title}campo próximo à linha 1400, adicione uma linha como esta:

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

Então use \usepackage{hyperref}e \bibliographystyle{IEEEtranDOI}e deve funcionar. Use \usepackage[hidelinks]{hyperref}se você gosta de hiperlinks invisíveis.

Este é um patch que criei para o IEEEtran.bst de hoje usando 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

E aqui está um MWE para testar seu 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}

informação relacionada