
TheСсылка на цитирование 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}