summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-07-10 20:27:00 +0000
committerKarl Berry <karl@freefriends.org>2019-07-10 20:27:00 +0000
commitdd5347d453541300a1195d59f647c2760c44cf56 (patch)
tree0212a5f6c53f443cb1cda3e6ff1a286d4fc501a1 /Master/texmf-dist/bibtex/bst
parentc0125154df0e529a252e218a4c505369986f8706 (diff)
bath-bst (10jul19)
git-svn-id: svn://tug.org/texlive/trunk@51595 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex/bst')
-rw-r--r--Master/texmf-dist/bibtex/bst/bath-bst/bath.bst416
-rw-r--r--Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst416
2 files changed, 478 insertions, 354 deletions
diff --git a/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst b/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst
index 253d236913e..e42be4ff86a 100644
--- a/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst
+++ b/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst
@@ -41,6 +41,7 @@ ENTRY
organization
pages
publisher
+ pubstate
school
series
sortyear
@@ -144,19 +145,16 @@ FUNCTION {continue.clause}
if$
}
FUNCTION {date.block}
-{
- new.block
+{ new.block
}
FUNCTION {bibinfo.check}
{ swap$
duplicate$ missing$
- {
- pop$ pop$
+ { pop$ pop$
""
}
{ duplicate$ empty$
- {
- swap$ pop$
+ { swap$ pop$
}
{ swap$
"\bibinfo{" swap$ * "}{" * swap$ * "}" *
@@ -168,13 +166,11 @@ FUNCTION {bibinfo.check}
FUNCTION {bibinfo.warn}
{ swap$
duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
""
}
{ duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
+ { swap$ "empty " swap$ * " in " * cite$ * warning$
}
{ swap$
"\bibinfo{" swap$ * "}{" * swap$ * "}" *
@@ -262,7 +258,7 @@ FUNCTION {bbl.etal}
{ "et~al." }
FUNCTION {bbl.editors}
-{ "eds." }
+{ "eds" }
FUNCTION {bbl.editor}
{ "ed." }
@@ -345,6 +341,18 @@ FUNCTION {bbl.online}
FUNCTION {bbl.nodate}
{ "n.d." }
+FUNCTION {bbl.inpreparation}
+{ "preprint" }
+
+FUNCTION {bbl.submitted}
+{ "preprint" }
+
+FUNCTION {bbl.inpress}
+{ "in press" }
+
+FUNCTION {bbl.unpublished}
+{ "Unpublished" }
+
MACRO {jan} {"January"}
MACRO {feb} {"February"}
@@ -394,90 +402,85 @@ INTEGERS { nameptr namesleft numnames }
STRINGS { bibinfo }
FUNCTION {format.names}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ll}{, jj}{, f{.}.}{~vv}"
- format.name$
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- t "others" =
- {
- " " * bbl.etal *
- }
- {
- bbl.and
- space.word * t *
+ duplicate$ empty$
+ 'skip$
+ { 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{ll}{, jj}{, f{.}.}{~vv}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ { " " * bbl.etal *
+ }
+ { bbl.and
+ space.word * t *
+ }
+ if$
}
if$
}
+ 't
if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
}
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
+ while$
}
- while$
- } if$
+ if$
}
FUNCTION {format.names.ed}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{f{.}.~}{vv~}{ll}{ jj}"
- format.name$
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- t "others" =
- {
-
- " " * bbl.etal *
- }
- {
- bbl.and
- space.word * t *
+ duplicate$ empty$
+ 'skip$
+ { 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{f{.}.~}{vv~}{ll}{ jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ { " " * bbl.etal *
+ }
+ { bbl.and
+ space.word * t *
+ }
+ if$
}
if$
}
+ 't
if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
}
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
+ while$
}
- while$
- } if$
+ if$
}
FUNCTION {format.authors}
{ author "author" format.names
@@ -486,8 +489,7 @@ 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
*
@@ -496,8 +498,7 @@ FUNCTION {format.editors}
}
FUNCTION {format.translators}
{ translator "translator" format.names.ed duplicate$ empty$ 'skip$
- {
- "." *
+ { "," *
" " *
bbl.translator *
"(" swap$ *
@@ -516,20 +517,16 @@ FUNCTION {format.full.names}
"{vv~}{ll}" format.name$
't :=
nameptr #1 >
- {
- namesleft #1 >
+ { namesleft #1 >
{ ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
- {
- " " * bbl.etal *
+ { " " * bbl.etal *
}
- {
- bbl.and
+ { bbl.and
space.word * t *
}
if$
@@ -638,8 +635,7 @@ FUNCTION {format.btitle}
if$
"title" bibinfo.check
duplicate$ empty$ 'skip$
- {
- emphasize
+ { emphasize
select.language
}
if$
@@ -681,12 +677,10 @@ FUNCTION {format.booktitle}
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
- {
- editor "editor" format.names.ed duplicate$ empty$ 'pop$
- {
- "," *
+ { editor "editor" format.names.ed duplicate$ empty$ 'pop$
+ { "," *
" " *
- get.bbl.editor
+ get.bbl.editor add.period$
" " *
* swap$
*
@@ -837,8 +831,7 @@ FUNCTION {convert.edition}
}
FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
+ { convert.edition
output.state mid.sentence =
{ "l" }
{ "t" }
@@ -863,8 +856,7 @@ FUNCTION {format.booklet.type}
if$
}
FUNCTION {add.cmd.number}
-{
- ". " swap$ "number" bibinfo.check *
+{ ". " swap$ "number" bibinfo.check *
}
FUNCTION {format.legr.number}
{ series field.or.null 's :=
@@ -999,26 +991,65 @@ FUNCTION {format.chapter}
}
if$
}
-FUNCTION {format.series.chapter.number}
+FUNCTION {format.series.number.chapter}
{ series duplicate$ empty$
- { pop$ "" }
+ { pop$ "(" }
{ "series" bibinfo.check
"(" swap$ *
+ }
+ if$
+ type duplicate$ empty$
+ { pop$
+ number duplicate$ empty$
+ 'pop$
+ { "number" bibinfo.check
+ swap$ duplicate$ "(" =
+ { swap$ * }
+ { ", " * swap$ * }
+ if$
+ }
+ if$
chapter duplicate$ empty$
'pop$
{ "chapter" bibinfo.check
- ", c." swap$ * *
+ swap$ duplicate$ "(" =
+ { swap$ * }
+ { ", c." * swap$ * }
+ if$
}
if$
+ }
+ { "type" bibinfo.check
+ swap$ duplicate$ "(" =
+ { swap$ * }
+ { ", " * swap$ * }
+ if$
number duplicate$ empty$
- 'pop$
+ { pop$
+ chapter duplicate$ empty$
+ 'pop$
+ { "chapter" bibinfo.check
+ " c." swap$ * *
+ }
+ if$
+ }
{ "number" bibinfo.check
- ", " swap$ * *
+ " " swap$ * *
+ chapter duplicate$ empty$
+ 'pop$
+ { "chapter" bibinfo.check
+ ", c." swap$ * *
+ }
+ if$
}
if$
- ")" *
}
if$
+ ")" *
+ duplicate$ "()" =
+ { pop$ "" }
+ 'skip$
+ if$
}
FUNCTION {format.case.number}
{ casenumber duplicate$ empty$
@@ -1086,8 +1117,7 @@ FUNCTION {format.org.or.pub}
""
address empty$ t empty$ and
'skip$
- {
- address "address" bibinfo.check *
+ { address "address" bibinfo.check *
t empty$
'skip$
{ address empty$
@@ -1106,13 +1136,23 @@ FUNCTION {format.publisher.address}
FUNCTION {format.organization.address}
{ publisher empty$
{ organization "organization" bibinfo.check format.org.or.pub }
- { publisher "publisher" bibinfo.warn format.org.or.pub }
+ { publisher "publisher" bibinfo.warn format.org.or.pub
+ organization duplicate$ empty$
+ 'pop$
+ { "organization" bibinfo.check ". " * swap$ * }
+ if$
+ }
if$
}
FUNCTION {format.institution.address}
{ publisher empty$
{ institution "institution" bibinfo.check format.org.or.pub }
- { publisher "publisher" bibinfo.warn format.org.or.pub }
+ { publisher "publisher" bibinfo.warn format.org.or.pub
+ institution duplicate$ empty$
+ 'pop$
+ { "institution" bibinfo.check ". " * swap$ * }
+ if$
+ }
if$
}
FUNCTION {format.library}
@@ -1201,8 +1241,7 @@ FUNCTION {multi.page.check}
multiresult
}
FUNCTION {n.dashify}
-{
- 't :=
+{ 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
@@ -1228,12 +1267,10 @@ FUNCTION {n.dashify}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
{ duplicate$ multi.page.check
- {
- bbl.pages swap$
+ { bbl.pages swap$
n.dashify
}
- {
- bbl.page swap$
+ { bbl.page swap$
}
if$
"pages" bibinfo.check
@@ -1245,8 +1282,7 @@ FUNCTION {format.journal.pages}
{ pages duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$
{ pop$ pop$ format.pages }
- {
- ", " *
+ { ", " *
swap$
n.dashify
pages multi.page.check
@@ -1265,8 +1301,7 @@ FUNCTION {format.journal.eid}
{ eid "eid" bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$ 'skip$
- {
- ", " *
+ { ", " *
}
if$
swap$ *
@@ -1274,25 +1309,41 @@ FUNCTION {format.journal.eid}
if$
}
FUNCTION {format.vol.num.pages}
-{ volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check
+{ pubstate field.or.null
+ duplicate$ "inpress" =
+ { pop$ bbl.inpress }
+ { duplicate$ "submitted" =
+ { pop$ bbl.submitted }
+ { duplicate$ "inpreparation" =
+ { pop$ bbl.inpreparation }
+ { pop$ "" }
+ if$
+ }
+ if$
}
if$
- number "number" bibinfo.check duplicate$ empty$ 'skip$
- {
- swap$ duplicate$ empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
+ duplicate$ empty$
+ { pop$
+ volume field.or.null
+ duplicate$ empty$ 'skip$
+ { "volume" bibinfo.check
+ }
+ if$
+ number "number" bibinfo.check duplicate$ empty$ 'skip$
+ { swap$ duplicate$ empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ swap$
+ "(" swap$ * ")" *
+ }
+ if$ *
+ eid empty$
+ { format.journal.pages }
+ { format.journal.eid }
if$
- swap$
- "(" swap$ * ")" *
}
- if$ *
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
+ 'skip$
if$
}
FUNCTION {format.chapter.pages}
@@ -1324,16 +1375,19 @@ FUNCTION {format.journal.series.vol.pages}
and
pages empty$
and
- eid empty$
- and
'skip$
{ " " * }
if$
series "series" bibinfo.check
volume "volume" bibinfo.check *
- duplicate$ empty$ pages empty$ and
+ duplicate$ empty$
'skip$
- { "/" * }
+ { pages field.or.null duplicate$ empty$
+ 'skip$
+ { "/" swap$ *
+ }
+ if$ *
+ }
if$ *
}
{ duplicate$ "ECR" =
@@ -1396,13 +1450,11 @@ FUNCTION {format.url}
if$
}
FUNCTION {format.article.crossref}
-{
- word.in
+{ word.in
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
-{
- word.in
+{ word.in
" \cite{" * crossref * "}" *
}
FUNCTION {format.book.crossref}
@@ -1428,8 +1480,7 @@ FUNCTION {article}
get.title.addenda
new.block
crossref missing$
- {
- journal
+ { journal "t" change.case$
"journal" bibinfo.check
emphasize
"journal" output.check
@@ -1483,8 +1534,7 @@ FUNCTION {book}
{ new.sentence
format.publisher.address output
}
- {
- new.block
+ { new.block
format.book.crossref output.nonnull
}
if$
@@ -1544,16 +1594,14 @@ FUNCTION {inbook}
format.btitle "title" output.check
get.title.addenda
crossref missing$
- {
- format.publisher.address output
+ { format.publisher.address output
format.bvolume output
format.chapter.pages "chapter and pages" output.check
new.block
format.number.series output
new.sentence
}
- {
- format.chapter.pages "chapter and pages" output.check
+ { format.chapter.pages "chapter and pages" output.check
new.block
format.book.crossref output.nonnull
}
@@ -1608,7 +1656,6 @@ FUNCTION {inproceedings}
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
eventyear output
- continue.clause
venue output
new.sentence
publisher empty$
@@ -1696,13 +1743,30 @@ FUNCTION {uklegislation}
if$
entrysubtype field.or.null "secondary" =
{ number "number" bibinfo.check output }
- 'skip$
+ { series empty$ type empty$ and
+ { number empty$
+ { format.chapter output }
+ { continue.clause
+ format.series.number.chapter output
+ }
+ if$
+ }
+ { chapter empty$
+ { new.block }
+ { continue.clause }
+ if$
+ format.series.number.chapter output
+ }
+ if$
+ }
if$
- series empty$
- { format.chapter output }
+ note empty$
'skip$
+ { new.block
+ format.note output
+ new.block
+ }
if$
- format.note output
publisher empty$ 'skip$
{ entrysubtype field.or.null "secondary" =
'skip$
@@ -1711,8 +1775,6 @@ FUNCTION {uklegislation}
format.publisher.address output
}
if$
- continue.clause
- format.series.chapter.number output
new.block
format.eprint output
format.url output
@@ -1932,13 +1994,14 @@ FUNCTION {techreport}
}
if$
new.block
+ format.tr.number output
+ new.block
publisher empty$
{ format.institution.address output }
{ institution "institution" bibinfo.check output
format.publisher.address output
}
if$
- format.tr.number output
new.block
format.library output
new.block
@@ -1951,7 +2014,7 @@ FUNCTION {techreport}
FUNCTION {unpublished}
{ output.bibitem
author empty$
- { format.btitle "title" output.check
+ { booktitle empty$ 'format.btitle 'format.title if$ "title" output.check
format.date "year" output.check
year empty$ 'skip$ { date.block } if$
get.title.addenda
@@ -1960,13 +2023,17 @@ FUNCTION {unpublished}
author format.key output
format.date "year" output.check
date.block
- format.btitle "title" output.check
+ booktitle empty$ 'format.btitle 'format.title if$ "title" output.check
get.title.addenda
}
if$
new.block
+ format.in.ed.booktitle output
+ new.block
howpublished "howpublished" bibinfo.check output
new.block
+ bbl.unpublished output
+ new.block
format.note output
new.block
format.eprint output
@@ -1974,8 +2041,8 @@ FUNCTION {unpublished}
fin.entry
}
-FUNCTION {letter} {
- journal empty$
+FUNCTION {letter}
+{ journal empty$
'unpublished
'article
if$
@@ -2020,8 +2087,7 @@ FUNCTION {format.lab.names}
"{vv~}{ll}" format.name$
't :=
nameptr #1 >
- {
- nameptr #2 =
+ { nameptr #2 =
numnames #3 > and
{ "others" 't :=
#1 'namesleft := }
@@ -2029,17 +2095,14 @@ FUNCTION {format.lab.names}
if$
namesleft #1 >
{ ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
- {
- " " * bbl.etal *
+ { " " * bbl.etal *
}
- {
- bbl.and
+ { bbl.and
space.word * t *
}
if$
@@ -2151,8 +2214,7 @@ FUNCTION {sort.format.names}
"{ll{ }}{ f{ }}{ jj{ }}{ vv{}}"
format.name$ 't :=
nameptr #1 >
- {
- " " *
+ { " " *
namesleft #1 =
t "others" =
and
@@ -2358,6 +2420,6 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
%%
-%% Copyright (C) 2018 by University of Bath
+%% Copyright (C) 2019 by University of Bath
%%
%% End of file `bath.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst b/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst
index 3af2a995630..61da24f5ecb 100644
--- a/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst
+++ b/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst
@@ -41,6 +41,7 @@ ENTRY
organization
pages
publisher
+ pubstate
school
series
sortyear
@@ -144,19 +145,16 @@ FUNCTION {continue.clause}
if$
}
FUNCTION {date.block}
-{
- new.block
+{ new.block
}
FUNCTION {bibinfo.check}
{ swap$
duplicate$ missing$
- {
- pop$ pop$
+ { pop$ pop$
""
}
{ duplicate$ empty$
- {
- swap$ pop$
+ { swap$ pop$
}
{ swap$
"\bibinfo{" swap$ * "}{" * swap$ * "}" *
@@ -168,13 +166,11 @@ FUNCTION {bibinfo.check}
FUNCTION {bibinfo.warn}
{ swap$
duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
""
}
{ duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
+ { swap$ "empty " swap$ * " in " * cite$ * warning$
}
{ swap$
"\bibinfo{" swap$ * "}{" * swap$ * "}" *
@@ -262,7 +258,7 @@ FUNCTION {bbl.etal}
{ "et~al." }
FUNCTION {bbl.editors}
-{ "eds." }
+{ "eds" }
FUNCTION {bbl.editor}
{ "ed." }
@@ -345,6 +341,18 @@ FUNCTION {bbl.online}
FUNCTION {bbl.nodate}
{ "n.d." }
+FUNCTION {bbl.inpreparation}
+{ "preprint" }
+
+FUNCTION {bbl.submitted}
+{ "preprint" }
+
+FUNCTION {bbl.inpress}
+{ "in press" }
+
+FUNCTION {bbl.unpublished}
+{ "Unpublished" }
+
MACRO {jan} {"January"}
MACRO {feb} {"February"}
@@ -394,90 +402,85 @@ INTEGERS { nameptr namesleft numnames }
STRINGS { bibinfo }
FUNCTION {format.names}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ll}{, jj}{, f{.}.}{~vv}"
- format.name$
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- t "others" =
- {
- " " * bbl.etal *
- }
- {
- bbl.and
- space.word * t *
+ duplicate$ empty$
+ 'skip$
+ { 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{ll}{, jj}{, f{.}.}{~vv}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ { " " * bbl.etal *
+ }
+ { bbl.and
+ space.word * t *
+ }
+ if$
}
if$
}
+ 't
if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
}
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
+ while$
}
- while$
- } if$
+ if$
}
FUNCTION {format.names.ed}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{f{.}.~}{vv~}{ll}{ jj}"
- format.name$
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- t "others" =
- {
-
- " " * bbl.etal *
- }
- {
- bbl.and
- space.word * t *
+ duplicate$ empty$
+ 'skip$
+ { 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{f{.}.~}{vv~}{ll}{ jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ { " " * bbl.etal *
+ }
+ { bbl.and
+ space.word * t *
+ }
+ if$
}
if$
}
+ 't
if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
}
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
+ while$
}
- while$
- } if$
+ if$
}
FUNCTION {format.authors}
{ author "author" format.names
@@ -486,8 +489,7 @@ 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
*
@@ -496,8 +498,7 @@ FUNCTION {format.editors}
}
FUNCTION {format.translators}
{ translator "translator" format.names.ed duplicate$ empty$ 'skip$
- {
- "." *
+ { "," *
" " *
bbl.translator *
"(" swap$ *
@@ -516,20 +517,16 @@ FUNCTION {format.full.names}
"{vv~}{ll}" format.name$
't :=
nameptr #1 >
- {
- namesleft #1 >
+ { namesleft #1 >
{ ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
- {
- " " * bbl.etal *
+ { " " * bbl.etal *
}
- {
- bbl.and
+ { bbl.and
space.word * t *
}
if$
@@ -638,8 +635,7 @@ FUNCTION {format.btitle}
if$
"title" bibinfo.check
duplicate$ empty$ 'skip$
- {
- emphasize
+ { emphasize
select.language
}
if$
@@ -692,12 +688,10 @@ FUNCTION {format.booktitle}
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
- {
- editor "editor" format.names.ed duplicate$ empty$ 'pop$
- {
- "," *
+ { editor "editor" format.names.ed duplicate$ empty$ 'pop$
+ { "," *
" " *
- get.bbl.editor
+ get.bbl.editor add.period$
" " *
* swap$
*
@@ -857,8 +851,7 @@ FUNCTION {convert.edition}
}
FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
+ { convert.edition
output.state mid.sentence =
{ "l" }
{ "t" }
@@ -883,8 +876,7 @@ FUNCTION {format.booklet.type}
if$
}
FUNCTION {add.cmd.number}
-{
- ". " swap$ "number" bibinfo.check *
+{ ". " swap$ "number" bibinfo.check *
}
FUNCTION {format.legr.number}
{ series field.or.null 's :=
@@ -1019,26 +1011,65 @@ FUNCTION {format.chapter}
}
if$
}
-FUNCTION {format.series.chapter.number}
+FUNCTION {format.series.number.chapter}
{ series duplicate$ empty$
- { pop$ "" }
+ { pop$ "(" }
{ "series" bibinfo.check
"(" swap$ *
+ }
+ if$
+ type duplicate$ empty$
+ { pop$
+ number duplicate$ empty$
+ 'pop$
+ { "number" bibinfo.check
+ swap$ duplicate$ "(" =
+ { swap$ * }
+ { ", " * swap$ * }
+ if$
+ }
+ if$
chapter duplicate$ empty$
'pop$
{ "chapter" bibinfo.check
- ", c." swap$ * *
+ swap$ duplicate$ "(" =
+ { swap$ * }
+ { ", c." * swap$ * }
+ if$
}
if$
+ }
+ { "type" bibinfo.check
+ swap$ duplicate$ "(" =
+ { swap$ * }
+ { ", " * swap$ * }
+ if$
number duplicate$ empty$
- 'pop$
+ { pop$
+ chapter duplicate$ empty$
+ 'pop$
+ { "chapter" bibinfo.check
+ " c." swap$ * *
+ }
+ if$
+ }
{ "number" bibinfo.check
- ", " swap$ * *
+ " " swap$ * *
+ chapter duplicate$ empty$
+ 'pop$
+ { "chapter" bibinfo.check
+ ", c." swap$ * *
+ }
+ if$
}
if$
- ")" *
}
if$
+ ")" *
+ duplicate$ "()" =
+ { pop$ "" }
+ 'skip$
+ if$
}
FUNCTION {format.case.number}
{ casenumber duplicate$ empty$
@@ -1106,8 +1137,7 @@ FUNCTION {format.org.or.pub}
""
address empty$ t empty$ and
'skip$
- {
- address "address" bibinfo.check *
+ { address "address" bibinfo.check *
t empty$
'skip$
{ address empty$
@@ -1126,13 +1156,23 @@ FUNCTION {format.publisher.address}
FUNCTION {format.organization.address}
{ publisher empty$
{ organization "organization" bibinfo.check format.org.or.pub }
- { publisher "publisher" bibinfo.warn format.org.or.pub }
+ { publisher "publisher" bibinfo.warn format.org.or.pub
+ organization duplicate$ empty$
+ 'pop$
+ { "organization" bibinfo.check ". " * swap$ * }
+ if$
+ }
if$
}
FUNCTION {format.institution.address}
{ publisher empty$
{ institution "institution" bibinfo.check format.org.or.pub }
- { publisher "publisher" bibinfo.warn format.org.or.pub }
+ { publisher "publisher" bibinfo.warn format.org.or.pub
+ institution duplicate$ empty$
+ 'pop$
+ { "institution" bibinfo.check ". " * swap$ * }
+ if$
+ }
if$
}
FUNCTION {format.library}
@@ -1229,8 +1269,7 @@ FUNCTION {multi.page.check}
multiresult
}
FUNCTION {n.dashify}
-{
- 't :=
+{ 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
@@ -1256,12 +1295,10 @@ FUNCTION {n.dashify}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
{ duplicate$ multi.page.check
- {
- bbl.pages swap$
+ { bbl.pages swap$
n.dashify
}
- {
- bbl.page swap$
+ { bbl.page swap$
}
if$
"pages" bibinfo.check
@@ -1273,8 +1310,7 @@ FUNCTION {format.journal.pages}
{ pages duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$
{ pop$ pop$ format.pages }
- {
- ", " *
+ { ", " *
swap$
n.dashify
pages multi.page.check
@@ -1293,8 +1329,7 @@ FUNCTION {format.journal.eid}
{ eid "eid" bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$ 'skip$
- {
- ", " *
+ { ", " *
}
if$
swap$ *
@@ -1302,25 +1337,41 @@ FUNCTION {format.journal.eid}
if$
}
FUNCTION {format.vol.num.pages}
-{ volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check
+{ pubstate field.or.null
+ duplicate$ "inpress" =
+ { pop$ bbl.inpress }
+ { duplicate$ "submitted" =
+ { pop$ bbl.submitted }
+ { duplicate$ "inpreparation" =
+ { pop$ bbl.inpreparation }
+ { pop$ "" }
+ if$
+ }
+ if$
}
if$
- number "number" bibinfo.check duplicate$ empty$ 'skip$
- {
- swap$ duplicate$ empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
+ duplicate$ empty$
+ { pop$
+ volume field.or.null
+ duplicate$ empty$ 'skip$
+ { "volume" bibinfo.check
+ }
+ if$
+ number "number" bibinfo.check duplicate$ empty$ 'skip$
+ { swap$ duplicate$ empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ swap$
+ "(" swap$ * ")" *
+ }
+ if$ *
+ eid empty$
+ { format.journal.pages }
+ { format.journal.eid }
if$
- swap$
- "(" swap$ * ")" *
}
- if$ *
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
+ 'skip$
if$
}
FUNCTION {format.chapter.pages}
@@ -1352,16 +1403,19 @@ FUNCTION {format.journal.series.vol.pages}
and
pages empty$
and
- eid empty$
- and
'skip$
{ " " * }
if$
series "series" bibinfo.check
volume "volume" bibinfo.check *
- duplicate$ empty$ pages empty$ and
+ duplicate$ empty$
'skip$
- { "/" * }
+ { pages field.or.null duplicate$ empty$
+ 'skip$
+ { "/" swap$ *
+ }
+ if$ *
+ }
if$ *
}
{ duplicate$ "ECR" =
@@ -1428,13 +1482,11 @@ FUNCTION {format.url}
if$
}
FUNCTION {format.article.crossref}
-{
- word.in
+{ word.in
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
-{
- word.in
+{ word.in
" \cite{" * crossref * "}" *
}
FUNCTION {format.book.crossref}
@@ -1460,8 +1512,7 @@ FUNCTION {article}
get.title.addenda
new.block
crossref missing$
- {
- journal
+ { journal "t" change.case$
"journal" bibinfo.check
emphasize
"journal" output.check
@@ -1521,8 +1572,7 @@ FUNCTION {book}
{ new.sentence
format.publisher.address output
}
- {
- new.block
+ { new.block
format.book.crossref output.nonnull
}
if$
@@ -1582,16 +1632,14 @@ FUNCTION {inbook}
format.btitle "title" output.check
get.title.addenda
crossref missing$
- {
- format.publisher.address output
+ { format.publisher.address output
format.bvolume output
format.chapter.pages "chapter and pages" output.check
new.block
format.number.series output
new.sentence
}
- {
- format.chapter.pages "chapter and pages" output.check
+ { format.chapter.pages "chapter and pages" output.check
new.block
format.book.crossref output.nonnull
}
@@ -1646,7 +1694,6 @@ FUNCTION {inproceedings}
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
eventyear output
- continue.clause
venue output
new.sentence
publisher empty$
@@ -1734,13 +1781,30 @@ FUNCTION {uklegislation}
if$
entrysubtype field.or.null "secondary" =
{ number "number" bibinfo.check output }
- 'skip$
+ { series empty$ type empty$ and
+ { number empty$
+ { format.chapter output }
+ { continue.clause
+ format.series.number.chapter output
+ }
+ if$
+ }
+ { chapter empty$
+ { new.block }
+ { continue.clause }
+ if$
+ format.series.number.chapter output
+ }
+ if$
+ }
if$
- series empty$
- { format.chapter output }
+ note empty$
'skip$
+ { new.block
+ format.note output
+ new.block
+ }
if$
- format.note output
publisher empty$ 'skip$
{ entrysubtype field.or.null "secondary" =
'skip$
@@ -1749,8 +1813,6 @@ FUNCTION {uklegislation}
format.publisher.address output
}
if$
- continue.clause
- format.series.chapter.number output
new.block
format.eprint output
format.url output
@@ -1970,13 +2032,14 @@ FUNCTION {techreport}
}
if$
new.block
+ format.tr.number output
+ new.block
publisher empty$
{ format.institution.address output }
{ institution "institution" bibinfo.check output
format.publisher.address output
}
if$
- format.tr.number output
new.block
format.library output
new.block
@@ -1989,7 +2052,7 @@ FUNCTION {techreport}
FUNCTION {unpublished}
{ output.bibitem
author empty$
- { format.btitle "title" output.check
+ { booktitle empty$ 'format.btitle 'format.title if$ "title" output.check
format.date "year" output.check
year empty$ 'skip$ { date.block } if$
get.title.addenda
@@ -1998,13 +2061,17 @@ FUNCTION {unpublished}
author format.key output
format.date "year" output.check
date.block
- format.btitle "title" output.check
+ booktitle empty$ 'format.btitle 'format.title if$ "title" output.check
get.title.addenda
}
if$
new.block
+ format.in.ed.booktitle output
+ new.block
howpublished "howpublished" bibinfo.check output
new.block
+ bbl.unpublished output
+ new.block
format.note output
new.block
format.eprint output
@@ -2012,8 +2079,8 @@ FUNCTION {unpublished}
fin.entry
}
-FUNCTION {letter} {
- journal empty$
+FUNCTION {letter}
+{ journal empty$
'unpublished
'article
if$
@@ -2058,8 +2125,7 @@ FUNCTION {format.lab.names}
"{vv~}{ll}" format.name$
't :=
nameptr #1 >
- {
- nameptr #2 =
+ { nameptr #2 =
numnames #3 > and
{ "others" 't :=
#1 'namesleft := }
@@ -2067,17 +2133,14 @@ FUNCTION {format.lab.names}
if$
namesleft #1 >
{ ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
- {
- " " * bbl.etal *
+ { " " * bbl.etal *
}
- {
- bbl.and
+ { bbl.and
space.word * t *
}
if$
@@ -2189,8 +2252,7 @@ FUNCTION {sort.format.names}
"{ll{ }}{ f{ }}{ jj{ }}{ vv{}}"
format.name$ 't :=
nameptr #1 >
- {
- " " *
+ { " " *
namesleft #1 =
t "others" =
and
@@ -2396,6 +2458,6 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
%%
-%% Copyright (C) 2018 by University of Bath
+%% Copyright (C) 2019 by University of Bath
%%
%% End of file `bathx.bst'.