summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst')
-rw-r--r--Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst956
1 files changed, 508 insertions, 448 deletions
diff --git a/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst
index fb668b8f85e..ff7a583bad7 100644
--- a/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst
+++ b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst
@@ -1,5 +1,7 @@
+%%
+%% This is file `elsarticle-harv.bst' (Version 2.1),
%%
-%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%% Copyright 2009-2018 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -10,46 +12,19 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
+%%
+%% $Id: elsarticle-harv.bst 116 2018-06-29 04:55:48Z rishi $
+%%
+%% $URL: http://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-harv.bst $
%%
-%% The list of all files belonging to the 'Elsarticle Bundle' is
-%% given in the file `manifest.txt'.
-%%
-
- %%-------------------------------------------------------------------
- %% This bibliography style file is intended for texts in ENGLISH
- %% This is an author-year citation style bibliography. As such, it is
- %% non-standard LaTeX, and requires a special package file
- %% to function properly.
- %% Such a package is natbib.sty by Patrick W. Daly
- %% The form of the \bibitem entries is
- %% \bibitem[Jones et al.(1990)]{key}...
- %% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
- %% The essential feature is that the label (the part in brackets) consists
- %% of the author names, as they should appear in the citation, with the year
- %% in parentheses following. There must be no space before the opening
- %% parenthesis!
- %% With natbib v5.3, a full list of authors may also follow the year.
- %% In natbib.sty, it is possible to define the type of enclosures that is
- %% really wanted (brackets or parentheses), but in either case, there must
- %% be parentheses in the label.
- %% The \cite command functions as follows:
- %% \citet{key} ==>> Jones et al. (1990)
- %% \citet*{key} ==>> Jones, Baker, and Smith (1990)
- %% \citep{key} ==>> (Jones et al., 1990)
- %% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
- %% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
- %% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
- %% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
- %% \citeauthor{key} ==>> Jones et al.
- %% \citeauthor*{key} ==>> Jones, Baker, and Smith
- %% \citeyear{key} ==>> 1990
- %%---------------------------------------------------------------------
ENTRY
{ address
+ archive
author
booktitle
chapter
+ collaboration
edition
editor
howpublished
@@ -66,28 +41,42 @@ ENTRY
series
title
type
- url
volume
year
+ url
+ doi
+ eprint
+ pubmed
}
{}
{ label extra.label sort.label short.list }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+STRINGS { urlprefix doiprefix eprintprefix pubmedprefix }
+
+FUNCTION {init.web.variables}
+{
+ "\URLprefix " 'urlprefix :=
+ "\DOIprefix" 'doiprefix :=
+ "\ArXivprefix " 'eprintprefix :=
+ "\Pubmedprefix " 'pubmedprefix :=
+}
+
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
}
-
-STRINGS { s t }
-
+STRINGS { s t}
+FUNCTION {output.comma}
+{ ", " * write$}
+
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
- { ", " * write$ }
+ { ". " * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
@@ -95,6 +84,26 @@ FUNCTION {output.nonnull}
}
{ output.state before.all =
'write$
+ { ", " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output.commanull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { ", " * write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
{ add.period$ " " * write$ }
if$
}
@@ -104,14 +113,12 @@ FUNCTION {output.nonnull}
if$
s
}
-
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
-
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
@@ -119,7 +126,13 @@ FUNCTION {output.check}
'output.nonnull
if$
}
-
+FUNCTION {output.book.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
FUNCTION {fin.entry}
{ add.period$
write$
@@ -132,7 +145,6 @@ FUNCTION {new.block}
{ after.block 'output.state := }
if$
}
-
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
@@ -143,16 +155,13 @@ FUNCTION {new.sentence}
}
if$
}
-
-%%SP 2003/07/25
-%% No longer used
FUNCTION {add.blank}
{ " " * before.all 'output.state :=
}
FUNCTION {date.block}
{
- new.sentence
+ new.block
}
FUNCTION {not}
@@ -160,19 +169,16 @@ FUNCTION {not}
{ #1 }
if$
}
-
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
-
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
-
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
@@ -181,26 +187,34 @@ FUNCTION {new.block.checkb}
'new.block
if$
}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
-
FUNCTION {emphasize}
-{ skip$ }
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\textit{" swap$ * "}" * }
+ if$
+}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$
+}
FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }
FUNCTION {space.word}
{ " " swap$ * " " * }
-
- %% Here are the language-specific definitions for explicit words.
- %% Each function has a name bbl.xxx where xxx is the English word.
- %% The language selected here is ENGLISH
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
FUNCTION {bbl.and}
{ "and"}
@@ -217,16 +231,16 @@ FUNCTION {bbl.edby}
{ "edited by" }
FUNCTION {bbl.edition}
-{ "Edition" }
+{ "ed." }
FUNCTION {bbl.volume}
-{ "Vol." }
+{ "volume" }
FUNCTION {bbl.of}
{ "of" }
FUNCTION {bbl.number}
-{ "no." }
+{ "number" }
FUNCTION {bbl.nr}
{ "no." }
@@ -241,10 +255,10 @@ FUNCTION {bbl.page}
{ "p." }
FUNCTION {bbl.chapter}
-{ "Ch." }
+{ "chapter" }
FUNCTION {bbl.techrep}
-{ "Tech. Rep." }
+{ "Technical Report" }
FUNCTION {bbl.mthesis}
{ "Master's thesis" }
@@ -252,77 +266,29 @@ FUNCTION {bbl.mthesis}
FUNCTION {bbl.phdthesis}
{ "Ph.D. thesis" }
-FUNCTION {bbl.first}
-{ "1st" }
-
-FUNCTION {bbl.second}
-{ "2nd" }
-
-FUNCTION {bbl.third}
-{ "3rd" }
-
-FUNCTION {bbl.fourth}
-{ "4th" }
-
-FUNCTION {bbl.fifth}
-{ "5th" }
-
-FUNCTION {bbl.st}
-{ "st" }
+MACRO {jan} {"January"}
-FUNCTION {bbl.nd}
-{ "nd" }
+MACRO {feb} {"February"}
-FUNCTION {bbl.rd}
-{ "rd" }
+MACRO {mar} {"March"}
-FUNCTION {bbl.th}
-{ "th" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
+MACRO {apr} {"April"}
MACRO {may} {"May"}
-MACRO {jun} {"Jun."}
+MACRO {jun} {"June"}
-MACRO {jul} {"Jul."}
+MACRO {jul} {"July"}
-MACRO {aug} {"Aug."}
+MACRO {aug} {"August"}
-MACRO {sep} {"Sep."}
+MACRO {sep} {"September"}
-MACRO {oct} {"Oct."}
+MACRO {oct} {"October"}
-MACRO {nov} {"Nov."}
+MACRO {nov} {"November"}
-MACRO {dec} {"Dec."}
-
-FUNCTION {eng.ord}
-{ duplicate$ "1" swap$ *
- #-2 #1 substring$ "1" =
- { bbl.th * }
- { duplicate$ #-1 #1 substring$
- duplicate$ "1" =
- { pop$ bbl.st * }
- { duplicate$ "2" =
- { pop$ bbl.nd * }
- { "3" =
- { bbl.rd * }
- { bbl.th * }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
+MACRO {dec} {"December"}
MACRO {acmcs} {"ACM Comput. Surv."}
@@ -334,12 +300,12 @@ MACRO {ibmjrd} {"IBM J. Res. Dev."}
MACRO {ibmsj} {"IBM Syst.~J."}
-MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
MACRO {ieeetc} {"IEEE Trans. Comput."}
MACRO {ieeetcad}
- {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+ {"IEEE Trans. Comput. Aid. Des."}
MACRO {ipl} {"Inf. Process. Lett."}
@@ -347,7 +313,7 @@ MACRO {jacm} {"J.~ACM"}
MACRO {jcss} {"J.~Comput. Syst. Sci."}
-MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {scp} {"Sci. Comput. Program."}
MACRO {sicomp} {"SIAM J. Comput."}
@@ -355,34 +321,71 @@ MACRO {tocs} {"ACM Trans. Comput. Syst."}
MACRO {tods} {"ACM Trans. Database Syst."}
-MACRO {tog} {"ACM Trans. Gr."}
+MACRO {tog} {"ACM Trans. Graphic."}
-MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toms} {"ACM Trans. Math. Software"}
MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
-MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tcs} {"Theor. Comput. Sci."}
-FUNCTION {write.url}
-{ url empty$
- { skip$ }
- { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+ {
+ pop$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ pop$
+ }
+ { swap$
+ "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+ duplicate$ missing$
+ {
+ swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ "empty " swap$ * " in " * cite$ * warning$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
if$
}
+STRINGS { bibinfo}
+
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
-{ 's :=
+{ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
- "{vv~}{ll}{, jj}{, f.}" format.name$
- 't :=
+ "{vv~}{ll}{, jj}{, f{.}.}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
nameptr #1 >
{
namesleft #1 >
@@ -408,9 +411,12 @@ FUNCTION {format.names}
namesleft #1 - 'namesleft :=
}
while$
+ } if$
}
FUNCTION {format.names.ed}
-{ format.names }
+{
+ format.names
+}
FUNCTION {format.key}
{ empty$
{ key field.or.null }
@@ -419,36 +425,31 @@ FUNCTION {format.key}
}
FUNCTION {format.authors}
-{ author empty$
- { "" }
- { author format.names }
- if$
-}
-
-FUNCTION {format.editors}
-{ editor empty$
- { "" }
- { editor format.names
- editor num.names$ #1 >
- { " (" * bbl.editors * ")" * }
- { " (" * bbl.editor * ")" * }
+{ author "author" format.names
+ duplicate$ empty$ 'skip$
+ { collaboration "collaboration" bibinfo.check
+ duplicate$ empty$ 'skip$
+ { " (" swap$ * ")" * }
if$
+ *
}
if$
}
-FUNCTION {format.in.editors}
-{ editor empty$
- { "" }
- { editor format.names.ed
- editor num.names$ #1 >
- { " (" * bbl.editors * ")" * }
- { " (" * bbl.editor * ")" * }
- if$
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+ {
+ " " *
+ get.bbl.editor
+ capitalize
+ "(" swap$ * ")" *
+ *
}
if$
}
-
FUNCTION {format.note}
{
note empty$
@@ -463,21 +464,21 @@ FUNCTION {format.note}
change.case$
}
if$
- note #2 global.max$ substring$ *
+ note #2 global.max$ substring$ * "note" bibinfo.check
}
if$
}
FUNCTION {format.title}
-{ title empty$
- { "" }
- { title "t" change.case$
- }
+{ title
+ duplicate$ empty$ 'skip$
+ { "t" change.case$ }
if$
+ "title" bibinfo.check
}
-
FUNCTION {format.full.names}
{'s :=
+ "" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
@@ -490,10 +491,6 @@ FUNCTION {format.full.names}
namesleft #1 >
{ ", " * t * }
{
- numnames #2 >
- { "," * }
- 'skip$
- if$
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
@@ -502,7 +499,8 @@ FUNCTION {format.full.names}
{
" " * bbl.etal *
}
- { bbl.and
+ {
+ bbl.and
space.word * t *
}
if$
@@ -610,145 +608,82 @@ FUNCTION {n.dashify}
}
FUNCTION {word.in}
-{ bbl.in capitalize
+{ bbl.in %capitalize
":" *
" " * }
FUNCTION {format.date}
-{ year duplicate$ empty$
- { "empty year in " cite$ * "; set to ????" * warning$
- pop$ "????" }
- 'skip$
- if$
- month empty$
- 'skip$
- { month
- " " * swap$ *
+{ year "year" bibinfo.check duplicate$ empty$
+ {
}
+ 'skip$
if$
extra.label *
before.all 'output.state :=
", " swap$ *
}
-
FUNCTION {format.btitle}
-{ title
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {
+ }
if$
- swap$ * *
}
-
FUNCTION {either.or.check}
{ empty$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
-
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
- { bbl.volume volume tie.or.space.connect
- series empty$
- 'skip$
- { bbl.of space.word * series emphasize * }
+ { bbl.volume volume tie.or.space.prefix
+ "volume" bibinfo.check * *
+ series "series" bibinfo.check
+ duplicate$ empty$ 'pop$
+ { swap$ bbl.of space.word * swap$
+ emphasize * }
if$
"volume and number" number either.or.check
}
if$
}
-
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
+ { series empty$
+ { number "number" bibinfo.check }
{ output.state mid.sentence =
{ bbl.number }
{ bbl.number capitalize }
if$
- number tie.or.space.connect
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { bbl.in space.word * series * }
- if$
+ number tie.or.space.prefix "number" bibinfo.check * *
+ bbl.in space.word *
+ series "series" bibinfo.check *
}
if$
}
- { "" }
- if$
-}
-
-FUNCTION {is.num}
-{ chr.to.int$
- duplicate$ "0" chr.to.int$ < not
- swap$ "9" chr.to.int$ > not and
-}
-
-FUNCTION {extract.num}
-{ duplicate$ 't :=
- "" 's :=
- { t empty$ not }
- { t #1 #1 substring$
- t #2 global.max$ substring$ 't :=
- duplicate$ is.num
- { s swap$ * 's := }
- { pop$ "" 't := }
- if$
- }
- while$
- s empty$
- 'skip$
- { pop$ s }
- if$
-}
-
-FUNCTION {convert.edition}
-{ edition extract.num "l" change.case$ 's :=
- s "first" = s "1" = or
- { bbl.first 't := }
- { s "second" = s "2" = or
- { bbl.second 't := }
- { s "third" = s "3" = or
- { bbl.third 't := }
- { s "fourth" = s "4" = or
- { bbl.fourth 't := }
- { s "fifth" = s "5" = or
- { bbl.fifth 't := }
- { s #1 #1 substring$ is.num
- { s eng.ord 't := }
- { edition 't := }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
if$
}
+ { "" }
if$
- t
}
FUNCTION {format.edition}
-{ edition empty$
- { "" }
- { output.state mid.sentence =
- { convert.edition "l" change.case$ " " * bbl.edition * }
- { convert.edition "t" change.case$ " " * bbl.edition * }
- if$
+{ edition duplicate$ empty$ 'skip$
+ {
+ output.state mid.sentence =
+ { "l" }
+ { "t" }
+ if$ change.case$
+ "edition" bibinfo.check
+ " " * bbl.edition *
}
if$
}
-
INTEGERS { multiresult }
-
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
@@ -768,52 +703,58 @@ FUNCTION {multi.page.check}
while$
multiresult
}
+%FUNCTION {format.pages}
+%{ pages duplicate$ empty$ 'skip$
+% { duplicate$ multi.page.check
+% {
+% n.dashify
+% }
+% {
+% }
+% if$
+% "pages" bibinfo.check
+% }
+% if$
+%}
FUNCTION {format.pages}
-{ pages empty$
- { "" }
- { pages multi.page.check
- { bbl.pages pages n.dashify tie.or.space.connect }
- { bbl.page pages tie.or.space.connect }
+{ pages duplicate$ empty$ 'skip$
+ { duplicate$ multi.page.check
+ {
+ bbl.pages swap$
+ n.dashify
+ }
+ {
+ bbl.page swap$
+ }
if$
+ tie.or.space.prefix
+ "pages" bibinfo.check
+ * *
}
if$
}
FUNCTION {format.journal.pages}
-{ pages empty$
- 'skip$
- { duplicate$ empty$
- { pop$ format.pages }
+{ pages duplicate$ empty$ 'pop$
+ { swap$ duplicate$ empty$
+ { pop$ pop$ format.pages }
{
", " *
- pages n.dashify *
+ swap$
+ n.dashify
+ "pages" bibinfo.check
+ *
}
if$
}
if$
}
-
-%%SP 2001/01/23
-%% Only used in articles
FUNCTION {format.vol.num.pages}
-{
-%%SP 2001/01/23
-%% Add the leading space only if there is a volume
- %% volume field.or.null
- " "
- volume empty$
- { pop$ "" }
- { volume * }
- if$
- number empty$
- 'skip$
+{ volume field.or.null
+ duplicate$ empty$ 'skip$
{
- "~(" number * ")" * *
- volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
- if$
+ "volume" bibinfo.check
}
if$
}
@@ -823,70 +764,79 @@ FUNCTION {format.chapter.pages}
{ "" }
{ type empty$
{ bbl.chapter }
- { type "l" change.case$ }
+ { type "l" change.case$
+ "type" bibinfo.check
+ }
if$
- chapter tie.or.space.connect
+ chapter tie.or.space.prefix
+ "chapter" bibinfo.check
+ * *
}
if$
}
+FUNCTION {format.booktitle}
+{
+ booktitle "booktitle" bibinfo.check
+}
FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
- { "" }
- { editor empty$
- { word.in booktitle * }
- { word.in format.in.editors * ", " *
- booktitle * }
+{ format.booktitle duplicate$ empty$ 'skip$
+ {
+ editor "editor" format.names.ed duplicate$ empty$ 'pop$
+ {
+ " " *
+ get.bbl.editor
+ capitalize
+ "(" swap$ * "), " *
+ * swap$
+ * }
if$
+ word.in swap$ *
}
if$
}
-
FUNCTION {format.thesis.type}
-{ type empty$
- 'skip$
- { pop$
- type "t" change.case$
+{ type duplicate$ empty$
+ 'pop$
+ { swap$ pop$
+ "t" change.case$ "type" bibinfo.check
}
if$
}
-
FUNCTION {format.tr.number}
-{ type empty$
- { bbl.techrep }
- 'type
+{ number "number" bibinfo.check
+ type duplicate$ empty$
+ { pop$ bbl.techrep }
+ 'skip$
if$
- number empty$
- { "t" change.case$ }
- { number tie.or.space.connect }
+ "type" bibinfo.check
+ swap$ duplicate$ empty$
+ { pop$ "t" change.case$ }
+ { tie.or.space.prefix * * }
if$
}
-
FUNCTION {format.article.crossref}
{
word.in
" \cite{" * crossref * "}" *
}
-
FUNCTION {format.book.crossref}
-{ volume empty$
+{ volume duplicate$ empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- word.in
+ pop$ word.in
}
- { bbl.volume capitalize
- volume tie.or.space.connect
- bbl.of space.word *
+ { bbl.volume
+ capitalize
+ swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
}
if$
" \cite{" * crossref * "}" *
}
-
FUNCTION {format.incoll.inproc.crossref}
{
word.in
" \cite{" * crossref * "}" *
}
-
FUNCTION {format.org.or.pub}
{ 't :=
""
@@ -894,69 +844,118 @@ FUNCTION {format.org.or.pub}
'skip$
{
t empty$
- { address empty$
- 'skip$
- { address * }
- if$
+ { address "address" bibinfo.check *
}
{ t *
address empty$
'skip$
- { ", " * address * }
+ { ", " * address "address" bibinfo.check * }
if$
}
if$
}
if$
}
-
FUNCTION {format.publisher.address}
-{ publisher empty$
- { "empty publisher in " cite$ * warning$
- ""
- }
- { publisher }
- if$
- format.org.or.pub
+{ publisher "publisher" bibinfo.check format.org.or.pub
}
FUNCTION {format.organization.address}
-{ organization empty$
- { "" }
- { organization }
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {print.url}
+ {url duplicate$ empty$
+ { pop$ "" }
+ { new.sentence
+ urlprefix "\url{" * swap$ * "}" *
+ }
+ if$
+ }
+
+FUNCTION {print.doi}
+ {doi duplicate$ empty$
+ { pop$ "" }
+ { new.sentence
+ doiprefix "\doi{" * swap$ * "}" *
+ }
+ if$
+ }
+
+FUNCTION {print.eprint}
+ {eprint duplicate$ empty$
+ { pop$ "" }
+ { new.sentence
+ duplicate$ "\href{http://arxiv.org/abs/" swap$ * "}{{\tt arXiv:" * swap$ * "}}" * }
+ if$
+ }
+
+FUNCTION {print.pubmed}
+ {pubmed duplicate$ empty$
+ { pop$ "" }
+ { new.sentence
+ pubmedprefix "\Pubmed{" * swap$ * "}" *
+ }
+ if$
+ }
+
+FUNCTION {webpage}
+{ "%Type = Webpage" write$
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ author empty$
+ {
+ format.title "title" output.check
+ new.block
+ format.date "year" output.check
+ date.block
+ }
+ {
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ new.block
+}
if$
- format.org.or.pub
+ print.url output
+ fin.entry
}
+
FUNCTION {article}
-{ output.bibitem
+{ "%Type = Article" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
- new.sentence
+ new.block
crossref missing$
- { journal
+ {
+ journal
+ "journal" bibinfo.check
"journal" output.check
-%%SP 2001/01/23
-%% Add the space in format.vol.num.pages
- %% add.blank
- before.all 'output.state :=
+ add.blank
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
- format.pages output
}
if$
format.journal.pages
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {book}
-{ output.bibitem
+{ "%Type = Book" write$
+ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
@@ -972,40 +971,50 @@ FUNCTION {book}
date.block
format.btitle "title" output.check
crossref missing$
- { format.edition output
- new.sentence
- format.bvolume output
+ { format.bvolume output
+ new.block
format.number.series output
+ format.edition output
new.sentence
format.publisher.address output
}
{
- new.sentence
+ new.block
format.book.crossref output.nonnull
}
if$
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {booklet}
-{ output.bibitem
+{ "%Type = Booklet" write$
+ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
- new.sentence
- howpublished output
- address output
+ new.block
+ howpublished "howpublished" bibinfo.check output
+ address "address" bibinfo.check output
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {inbook}
-{ output.bibitem
+{ "%Type = Inbook" write$
+ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
@@ -1020,217 +1029,258 @@ FUNCTION {inbook}
format.date "year" output.check
date.block
format.btitle "title" output.check
+ format.edition output
crossref missing$
{
- format.edition output
- new.sentence
+ format.publisher.address output
format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
format.number.series output
new.sentence
- format.publisher.address output
- format.chapter.pages "chapter and pages" output.check
}
{
format.chapter.pages "chapter and pages" output.check
- new.sentence
+ new.block
format.book.crossref output.nonnull
}
if$
format.pages "pages" output.check
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {incollection}
-{ output.bibitem
+{ "%Type = Incollection" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
- format.title "title" output.check
+ format.title "title" output.book.check
new.sentence
crossref missing$
- { format.in.ed.booktitle "booktitle" output.check
+ { format.in.ed.booktitle "booktitle" output.book.check
format.edition output
- new.sentence
+ format.publisher.address output
format.bvolume output
format.number.series output
- new.sentence
- format.publisher.address output
format.chapter.pages output
+ new.sentence
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {inproceedings}
-{ output.bibitem
+{ "%Type = Inproceedings" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
- format.title "title" output.check
+ format.title "title" output.book.check
new.sentence
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
- format.edition output
- new.sentence
- format.bvolume output
- format.number.series output
new.sentence
publisher empty$
{ format.organization.address output }
- { organization output
+ { organization "organization" bibinfo.check output
format.publisher.address output
}
if$
-%%SP 2001/01/23
-%% format.pages output
+% format.bvolume output
+% format.number.series output
+% format.pages output
}
{ format.incoll.inproc.crossref output.nonnull
-%%SP 2001/01/23
-%% format.pages output
+ format.pages output
}
if$
-%%SP 2001/01/23
format.pages "pages" output.check
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
-{ output.bibitem
+{ "%Type = Manual" write$
+ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
date.block
format.btitle "title" output.check
- new.sentence
- organization output
- address output
format.edition output
+ organization address new.block.checkb
+ organization "organization" bibinfo.check output
+ address "address" bibinfo.check output
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {mastersthesis}
-{ output.bibitem
+{ "%Type = Masterthesis" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
- format.title "title" output.check
- new.sentence
+ format.btitle
+ "title" output.check
+ new.block
bbl.mthesis format.thesis.type output.nonnull
- school "school" output.check
- address output
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {misc}
-{ output.bibitem
+{ "%Type = Misc" write$
+ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
date.block
format.title output
- new.sentence
- howpublished output
+ new.block
+ howpublished "howpublished" bibinfo.check output
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {phdthesis}
-{ output.bibitem
+{ "%Type = Phdthesis" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
- format.title "title" output.check
- new.sentence
+ format.btitle
+ "title" output.check
+ new.block
bbl.phdthesis format.thesis.type output.nonnull
- school "school" output.check
- address output
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {proceedings}
-{ output.bibitem
+{ "%Type = Proceedings" write$
+ output.bibitem
format.editors output
editor format.key output
format.date "year" output.check
date.block
format.btitle "title" output.check
- new.sentence
format.bvolume output
format.number.series output
new.sentence
publisher empty$
{ format.organization.address output }
- { organization output
+ { organization "organization" bibinfo.check output
format.publisher.address output
}
if$
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {techreport}
-{ output.bibitem
+{ "%Type = Techreport" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
- format.title "title" output.check
- new.sentence
+ format.btitle
+ "title" output.check
+ new.block
format.tr.number output.nonnull
- institution "institution" output.check
- address output
+ institution "institution" bibinfo.warn output
+ address "address" bibinfo.check output
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note output
fin.entry
- write.url
}
FUNCTION {unpublished}
-{ output.bibitem
+{ "%Type = Unpublished" write$
+ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
+ new.block
+ print.url output
+ print.doi output
+ print.eprint output
+ print.pubmed output
format.note "note" output.check
fin.entry
- write.url
}
FUNCTION {default.type} { misc }
-
READ
-
FUNCTION {sortify}
{ purify$
"l" change.case$
}
-
INTEGERS { len }
-
FUNCTION {chop.word}
{ 's :=
'len :=
@@ -1239,9 +1289,9 @@ FUNCTION {chop.word}
's
if$
}
-
FUNCTION {format.lab.names}
{ 's :=
+ "" 't :=
s #1 "{vv~}{ll}" format.name$
s num.names$ duplicate$
#2 >
@@ -1320,7 +1370,8 @@ FUNCTION {calc.label}
"("
*
year duplicate$ empty$
- { pop$ "????" }
+ short.list key field.or.null = or
+ { pop$ "" }
'skip$
if$
*
@@ -1335,7 +1386,7 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
- "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
+ "{ll{ }}{ f{ }}{ jj{ }}"
format.name$ 't :=
nameptr #1 >
{
@@ -1363,7 +1414,6 @@ FUNCTION {sort.format.title}
sortify
#1 global.max$ substring$
}
-
FUNCTION {author.sort}
{ author empty$
{ key empty$
@@ -1376,7 +1426,6 @@ FUNCTION {author.sort}
{ author sort.format.names }
if$
}
-
FUNCTION {author.editor.sort}
{ author empty$
{ editor empty$
@@ -1393,7 +1442,6 @@ FUNCTION {author.editor.sort}
{ author sort.format.names }
if$
}
-
FUNCTION {editor.sort}
{ editor empty$
{ key empty$
@@ -1406,7 +1454,6 @@ FUNCTION {editor.sort}
{ editor sort.format.names }
if$
}
-
FUNCTION {presort}
{ calc.label
label sortify
@@ -1436,20 +1483,15 @@ FUNCTION {presort}
}
ITERATE {presort}
-
SORT
-
STRINGS { last.label next.extra }
-
INTEGERS { last.extra.num number.label }
-
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
"" 'next.extra :=
#0 'last.extra.num :=
#0 'number.label :=
}
-
FUNCTION {forward.pass}
{ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
@@ -1462,7 +1504,6 @@ FUNCTION {forward.pass}
if$
number.label #1 + 'number.label :=
}
-
FUNCTION {reverse.pass}
{ next.extra "b" =
{ "a" 'extra.label := }
@@ -1472,18 +1513,15 @@ FUNCTION {reverse.pass}
extra.label
duplicate$ empty$
'skip$
- { "{\natexlab{" swap$ * "}}" * }
+% { "{\natexlab{" swap$ * "}}" * }
+ { "" swap$ * "" * }
if$
'extra.label :=
label extra.label * 'label :=
}
-
EXECUTE {initialize.extra.label.stuff}
-
ITERATE {forward.pass}
-
REVERSE {reverse.pass}
-
FUNCTION {bib.sort.order}
{ sort.label
" "
@@ -1498,11 +1536,8 @@ FUNCTION {bib.sort.order}
#1 entry.max$ substring$
'sort.key$ :=
}
-
ITERATE {bib.sort.order}
-
SORT
-
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
@@ -1512,26 +1547,51 @@ FUNCTION {begin.bib}
write$ newline$
"\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
write$ newline$
- "\expandafter\ifx\csname url\endcsname\relax"
+ "\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
- " \def\url#1{\texttt{#1}}\fi"
+ "\providecommand{\href}[2]{#2}"
write$ newline$
- "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
+ "\providecommand{\path}[1]{#1}"
+ write$ newline$
+ "\providecommand{\DOIprefix}{doi:}"
+ write$ newline$
+ "\providecommand{\ArXivprefix}{arXiv:}"
+ write$ newline$
+ "\providecommand{\URLprefix}{URL: }"
+ write$ newline$
+ "\providecommand{\Pubmedprefix}{pmid:}"
+ write$ newline$
+ "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{\path{#1}}}"
+ write$ newline$
+ "\providecommand{\Pubmed}[1]{\href{pmid:#1}{\path{#1}}}"
+ write$ newline$
+ "\providecommand{\bibinfo}[2]{#2}"
+ write$ newline$
+ "\ifx\xfnm\relax \def\xfnm[#1]{\unskip,\space#1}\fi"
write$ newline$
}
-
EXECUTE {begin.bib}
-
EXECUTE {init.state.consts}
-
+EXECUTE {init.web.variables}
ITERATE {call.type$}
-
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}
-
EXECUTE {end.bib}
%% End of customized bst file
%%
%% End of file `elsarticle-harv.bst'.
+%%
+%% Change log:
+%% -----------
+%% 22.04.2011
+%%
+%% 10.08.2012
+%% a. doi, url, eprint, pmid added
+%% b. Bibtype `webpage' defined
+%%
+%% 30.08.2012
+%% a. collaboration added.
+%%
+