DOI in der IEEEtran-Bibliographie

DOI in der IEEEtran-Bibliographie

DerIEEE-Zitationsreferenzgibt an, dass für elektronische Artikel ohne Seitenzahlen ein DOI bereitgestellt werden soll. Allerdings IEEEtran.bstscheint es keine solche Funktion zu geben. Was ist der beste Weg, um DOI-Nummern in die Bibliographie zu bekommen?

Bonus, wenn die Lösung auch

  • macht die Anzeige des DOI optional nur bei Konferenzbeiträgen von fehlenden Seitenzahlen abhängig; und/oder
  • Hyperlinks zum DOI (z. B. über die doioder uriPakete).

Ich bin bereit, eine Lösung zu akzeptieren, bei der Bearbeitungen erforderlich sind IEEEtran.bst(dies ist der Ansatz, an dem ich gerade arbeite), würde aber nach Möglichkeit eine Lösung ohne Bearbeitung bevorzugen.

Antwort1

Ich habe einPatchdazu IEEEtranN.bstreicht es, einschließlich der „Bonus“-Funktionen.

Antwort2

Ich verwende diesen Ansatz, um den Artikeltitel als Hyperlink zu verwenden:

Kopieren Sie zunächst IEEEtran.bstnach IEEEtranDOI.bst.

Fügen Sie im ENTRYFeld um Zeile 250 eine Zeile wie diese hinzu:

  dayfiled
+ doi
  edition

Fügen Sie im FUNCTION {format.article.title}Feld um Zeile 1400 eine Zeile wie diese hinzu:

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

Dann verwenden Sie \usepackage{hyperref}und \bibliographystyle{IEEEtranDOI}und es sollte funktionieren. Verwenden Sie, \usepackage[hidelinks]{hyperref}wenn Sie Hyperlinks unsichtbar mögen.

Dies ist ein Patch, den ich für das heutige IEEEtran.bst erstellt habe, unter Verwendung von 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

Und hier ist ein MWE zum Testen Ihres 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}

verwandte Informationen