Ich beabsichtige, ein Manuskript einzureichen bei derZeitschrift für Computerphysikvon Elsevier. Obwohl vom Verlag für die erste Einreichung keine expliziten Formatierungsanforderungen für Bibliografien festgelegt wurden, bin ich daran interessiert, den tatsächlichen Bibliografiestil der endgültigen PDF-Datei der in dieser Zeitschrift veröffentlichten Artikel nachzubilden.
Voraussetzung ist, dass jedes Bibliografieelement (also der gesamte Zeileneintrag) zu einem anklickbaren Hyperlink wird (unter Verwendung des doi
Felds, falls verfügbar, andernfalls unter Verwendung des url
Felds des entsprechenden Schlüssels in der bib
Datei).
Da ich verwende elsarticle.cls
, kann ich nicht verwenden biblatex
. Daher ist eine natbib/bibtex
basierte Lösung erforderlich.
Hier ist ein MWE zum Einstieg:
\documentclass[number]{elsarticle}
\begin{document}
\begin{frontmatter}
\title{Dummy document \tnoteref{t1,t2}}
\tnotetext[t1]{Title footnote 1}
\tnotetext[t2]{Title footnote 2}
\author[a]{First Author\fnref{fn1}}
\ead{firstemail_id@insti_1.edu}
\author[b]{Second Author\fnref{fn2}}
\ead{secondemail_id@insti_2.edu}
\address[a]{Address of author with affiliation `a'}
\address[b]{Address of author with affiliation `b'}
\fntext[fn1]{This is a footnote.}
\fntext[fn2]{Another author footnote}
\begin{abstract}
Dummy abstract.
\end{abstract}
% Research highlights
\begin{highlights}
\item Research highlight 1
\item Research highlight 2
\end{highlights}
\begin{keyword}
Some \sep keywords
\end{keyword}
\end{frontmatter}
\section{Introduction}{\label{sec:intro}}
Intro
\section{Next}{\label{sec:blah}}
More blah
\nocite{*} % Temporary placeholder. Comment out after bib file is populated and \cite commands issued
\bibliographystyle{elsarticle-num}
\bibliography{manuscript_references.bib}
\end{document}
Antwort1
Wie ich in meinem Kommentar unter der Frage geschrieben habe, halte ich dies nicht unbedingt für die beste Idee für die Einreichung bei Elsevier-Zeitschriften, aber es ist möglich, wenn Sie die .bst
Datei ein wenig ändern.
Ich bin sicher, dass es auch andere Möglichkeiten gibt, dies zu erreichen, aber ich habe es so gemacht.
elsarticle-num-names.bst
verfügt bereits über eine Möglichkeit, einige Teile der Referenz als Link zur URL zu setzen (die Titel der @misc
Einträge mit einem url
Feld sind bereits direkt mit der URL verknüpft). Wir können diese Maschinerie also nutzen und erweitern, um den Linkbereich auf den gesamten Artikel auszudehnen und auch DOIs zu berücksichtigen.
Die Erweiterungen für DOIs sind mehr oder weniger unkompliziert. Die Erweiterung des Linkbereichs erforderte einige Änderungen an Makros und Funktionen.
Der Unterschied zu elsarticle-num-names.bst
(v2.1 [2019-04-15], der aktuellen Version auf CTAN) ist
--- elsarticle-num.bst 2019-04-05 15:29:24.000000000 +0200
+++ link-elsarticle-num.bst 2020-03-26 21:55:15.423852900 +0100
@@ -114,32 +114,51 @@
}
FUNCTION {setup.inlinelink}
-{ makeinlinelink
- { hrefform #1 = % hypertex
- { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+{
+ doi empty$
+ {
+ url empty$
+ { "" }
+ { url }
+ if$
+ }
+ { doiurl doi * }
+ if$
+ duplicate$ empty$
+ 'pop$
+ {
+ hrefform #1 = % hypertex
+ { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }" * 'openinlinelink :=
"\special {html:</a>}" 'closeinlinelink :=
}
{ hrefform #2 = % hyperref
- { "\href{" url * "}{" * 'openinlinelink :=
+ { "\href{" swap$ * "}{" * 'openinlinelink :=
"}" 'closeinlinelink :=
}
- 'skip$
+ 'pop$
if$ % hrefform #2 =
}
if$ % hrefform #1 =
#0 'makeinlinelink :=
}
- 'skip$
- if$ % makeinlinelink
+ if$
}
-FUNCTION {add.inlinelink}
+FUNCTION {add.openinlinelink}
{ openinlinelink empty$
'skip$
- { openinlinelink swap$ * closeinlinelink *
+ { openinlinelink write$
"" 'openinlinelink :=
}
if$
}
+FUNCTION {add.closeinlinelink}
+{ closeinlinelink empty$
+ 'skip$
+ { closeinlinelink write$
+ "" 'closeinlinelink :=
+ }
+ if$
+}
FUNCTION {output.nonnull}
{ % Save the thing we've been asked to output
's :=
@@ -157,7 +176,6 @@
% Write out what's currently at the top of the stack, using the
% original output.nonnull function.
s
- add.inlinelink
output.nonnull.original % invoke the original output.nonnull
}
{ % Still in brackets. Add open-bracket or (continuation) comma, add the
@@ -203,12 +221,6 @@
if$
}
-FUNCTION {fin.entry.original}
-{ add.period$
- write$
- newline$
-}
-
FUNCTION {new.block}
{ output.state before.all =
'skip$
@@ -472,7 +484,7 @@
FUNCTION {write.url}
{ url empty$
{ skip$ }
- { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+ { "\newline\urlprefix\nolinkurl{" url * "}" * write$ newline$ }
if$
}
@@ -1032,13 +1044,11 @@
}
FUNCTION {make.href.hypertex}
{
- "\special {html:<a href=" quote$ *
- swap$ * quote$ * "> }" * swap$ *
- "\special {html:</a>}" *
+ pop$
}
FUNCTION {make.href.hyperref}
{
- "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+ pop$ "\path{" swap$ * "}" *
}
FUNCTION {make.href}
{ hrefform #2 =
@@ -1054,12 +1064,7 @@
FUNCTION {format.url}
{ inlinelinks #1 = url empty$ or
{ "" }
- { hrefform #1 =
- { % special case -- add HyperTeX specials
- urlintro "\url{" url * "}" * url make.href.hypertex * }
- { urlintro "\url{" * url * "}" * }
- if$
- }
+ { urlintro "\nolinkurl{" * url * "}" * }
if$
}
@@ -1104,14 +1109,13 @@
FUNCTION {output.bibitem}
{ outside.brackets 'bracket.state :=
output.bibitem.original
- inlinelinks url empty$ not and
- { #1 'makeinlinelink := }
- { #0 'makeinlinelink := }
- if$
+ setup.inlinelink
+ add.openinlinelink
}
FUNCTION {fin.entry}
-{ output.web.refs % urlbst
+{
+ output.web.refs % urlbst
makeinlinelink % ooops, it appears we didn't have a title for inlinelink
{ setup.inlinelink % add some artificial link text here, as a fallback
"[link]" output.nonnull }
@@ -1121,7 +1125,14 @@
{ "]" * }
'skip$
if$
- fin.entry.original
+ add.period$
+ write$
+ type$ "webpage" =
+ 'skip$
+ 'write.url
+ if$
+ add.closeinlinelink
+ newline$
}
FUNCTION {webpage}
@@ -1139,7 +1150,6 @@
}
if$
new.block
- title empty$ 'skip$ 'setup.inlinelink if$
format.title "title" output.check
inbrackets "online" output
new.block
@@ -1159,7 +1169,6 @@
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
crossref missing$
{ journal
@@ -1179,7 +1188,6 @@
'skip$
if$
fin.entry
- write.url
}
FUNCTION {book}
@@ -1194,7 +1202,6 @@
if$
}
if$
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.btitle "title" output.check
crossref missing$
{ format.edition output
@@ -1208,20 +1215,17 @@
if$
format.note output
fin.entry
- write.url
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
howpublished output
address output
format.note output
format.date "year" output.check
fin.entry
- write.url
}
FUNCTION {inbook}
@@ -1236,7 +1240,6 @@
if$
}
if$
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.btitle "title" output.check
crossref missing$
{
@@ -1254,13 +1257,11 @@
format.pages "pages" output.check
format.note output
fin.entry
- write.url
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
@@ -1277,13 +1278,11 @@
format.pages "pages" output.check
format.note output
fin.entry
- write.url
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
@@ -1303,7 +1302,6 @@
format.pages "pages" output.check
format.note output
fin.entry
- write.url
}
FUNCTION {conference} { inproceedings }
@@ -1320,7 +1318,6 @@
}
{ format.authors output.nonnull }
if$
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.btitle "title" output.check
author empty$
{ organization empty$
@@ -1339,13 +1336,11 @@
format.note output
format.date "year" output.check
fin.entry
- write.url
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
bbl.mthesis format.thesis.type output.nonnull
school "school" output.check
@@ -1353,26 +1348,22 @@
format.note output
format.date "year" output.check
fin.entry
- write.url
}
FUNCTION {misc}
{ output.bibitem
format.authors output
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title output
howpublished output
format.note output
format.date "year" output.check
fin.entry
- write.url
empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
bbl.phdthesis format.thesis.type output.nonnull
school "school" output.check
@@ -1380,7 +1371,6 @@
format.note output
format.date "year" output.check
fin.entry
- write.url
}
FUNCTION {proceedings}
@@ -1389,7 +1379,6 @@
{ organization output }
{ format.editors output.nonnull }
if$
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.btitle "title" output.check
format.bvolume output
format.number.series output
@@ -1413,13 +1402,11 @@
if$
format.note output
fin.entry
- write.url
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
format.tr.number output.nonnull
institution "institution" output.check
@@ -1427,18 +1414,15 @@
format.note output
format.date "year" output.check
fin.entry
- write.url
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
- title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
format.note "note" output.check
format.date "year" output.check
fin.entry
- write.url
}
FUNCTION {default.type} { misc }
@@ -1487,6 +1471,8 @@
write$ newline$
" \def\href#1#2{#2} \def\path#1{#1}\fi"
write$ newline$
+ "\providecommand*{\nolinkurl}{\url}"
+ write$ newline$
}
EXECUTE {begin.bib}
Die geänderte Datei link-elsarticle-num.bst
kann heruntergeladen werden vonhttps://gist.github.com/moewew/1519006f9de5500db470bcc4701edeb5(diese Seite weist auch einen schönen Unterschied zum Original auf).
Damit ist link-elsarticle-num.bst
folgendes MWE
\documentclass[number]{elsarticle}
\usepackage[T1]{fontenc}
\usepackage[colorlinks]{hyperref}
\begin{filecontents}{\jobname.bib}
@article{sigfridsson,
author = {Sigfridsson, Emma and Ryde, Ulf},
title = {Comparison of Methods for Deriving Atomic Charges from the
Electrostatic Potential and Moments},
journal = {Journal of Computational Chemistry},
year = 1998,
volume = 19,
number = 4,
pages = {377-395},
doi = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},
}
@misc{elk,
author = {Anne Elk},
title = {A Theory on {Brontosauruses}},
year = {1971},
url = {https://example.edu/~elk/bronto.pdf},
}
@book{nussbaum,
author = {Nussbaum, Martha},
title = {{Aristotle's} {`De Motu Animalium'}},
year = 1978,
publisher = {Princeton University Press},
address = {Princeton},
}
\end{filecontents}
\begin{document}
\nocite{*}
\bibliographystyle{link-elsarticle-num}
\bibliography{\jobname}
\end{document}
produziert
Wenn Sie die explizite Ausgabe von URLs und DOIs unterdrücken möchten, entfernen Sie
output.web.refs % urlbst
und das
type$ "webpage" =
'skip$
'write.url
if$
Block von FUNCTION {fin.entry}
in, link-elsarticle-num.bst
so dass es heißt
FUNCTION {fin.entry}
{
makeinlinelink % ooops, it appears we didn't have a title for inlinelink
{ setup.inlinelink % add some artificial link text here, as a fallback
"[link]" output.nonnull }
'skip$
if$
bracket.state close.brackets = % urlbst
{ "]" * }
'skip$
if$
add.period$
write$
add.closeinlinelink
newline$
}
Antwort2
elsarticle
Um zitierte Bibliographien mit der Klasse (die implizit den Ref-Manager verwendet ) in anklickbare Links umzuwandeln bibtex
, können Sie verwenden \usepackage{hyperref}
. Die zweite Seite der Ausgabe würde wie folgt aussehen:
Die Eingabe-Tex-Datei ist
\documentclass[number]{elsarticle}
\usepackage[hidelinks, colorlinks=true]{hyperref} %% ADDS LINKS TO REFERENCES, YOU CAN IGNORE THE OPTIONS [hidelinks, colorlinks=true] IF YOU LIKE.
\begin{document}
\begin{frontmatter}
\title{Dummy document \tnoteref{t1,t2}}
\tnotetext[t1]{Title footnote 1}
\tnotetext[t2]{Title footnote 2}
\author[a]{First Author\fnref{fn1}}
\ead{firstemail_id@insti_1.edu}
\author[b]{Second Author\fnref{fn2}}
\ead{secondemail_id@insti_2.edu}
\address[a]{Address of author with affiliation `a'}
\address[b]{Address of author with affiliation `b'}
\fntext[fn1]{This is a footnote.}
\fntext[fn2]{Another author footnote}
\begin{abstract}
Dummy abstract.
\end{abstract}
% Research highlights
\begin{highlights}
\item Research highlight 1
\item Research highlight 2
\end{highlights}
\begin{keyword}
Some \sep keywords
\end{keyword}
\end{frontmatter}
\section{Introduction}{\label{sec:intro}}
Intro
\section{Next}{\label{sec:blah}}
More blah in example of citation here \cite{Tenis_2000}. Another example of citation \cite{kilde}. Here is a third citation for a real article with doi and url \cite{Aalbersberg_2014}.
\nocite{*} % Temporary placeholder. Comment out after bib file is populated and \cite commands issued
\bibliographystyle{elsarticle-num}
\bibliography{reference} %%% DON’T ADD EXTENSION OF FILE
\end{document}
Die hier verwendete Referenzdatei ist reference.bib
@Book{kilde,
author = {John Doe},
publisher = {John Wiley},
title = {Differential equations : an introduction to modern methods and applications},
year = {2020},
address = {New Jersey},
isbn = {9780471651413},
keywords = {Differential equations},
language = {In English},
}
@Article{Tenis_2000,
author = {Michael Tenis},
journal = {Jounal of Energy},
title = {New article about something},
year = {2000},
month = aug,
number = {7},
pages = {66--88},
volume = {2},
}
@Article{Aalbersberg_2014,
author = {IJsbrand Jan Aalbersberg and Sophia Atzeni and Hylke Koers and Beate Specker and Elena Zudilova-Seinstra},
journal = {{LIBER} Quarterly},
title = {Bringing Digital Science Deep Inside the Scientific Article: the Elsevier Article of the Future Project},
year = {2014},
month = {apr},
number = {4},
pages = {274},
volume = {23},
doi = {10.18352/lq.8446},
publisher = {Uopen Journals},
url = {https://doi.org/10.18352/lq.8446},
}
Die \usepackage{hyperref}
kann mit vielen Optionen verwendet werden, um die Links zu Ihrer Verlinkung zu optimieren. z.B. ändern Sie die Farbe der Links, platzieren Sie Unterstreichungen oder Kästchen usw. Sie können dies in seinemHandbuch. Dies dient dazu, die Zitate mit den Referenzen im Abschnitt „Bibliografie“ zu verknüpfen.
Um die Referenzen im Abschnitt „Bibliographie“ mit der Website des Herausgebers zu verknüpfen, sollten Sie in Ihrer Datei die Felder url
oder doi
oder beide verwenden reference.bib
. Die WebsiteCrossrefhilft dabei sehr, da Sie alle Referenzinformationen, Actions>Cite
einschließlich url
und doi
, direkt von dort in Ihre reference.bib
Datei kopieren können.
Beachten Sie, dass nach der Verwendung des \bibliography
Befehls der Name der Bib-Datei folgen muss.ohneErweiterung wie diese \bibliography{reference}
.