From 622559c7609e012d815c8d53670dc9cc3eea01a3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 4 Mar 2022 21:44:37 +0000 Subject: bath-bst (4mar22) git-svn-id: svn://tug.org/texlive/trunk@62393 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/bath-bst/bath.bst | 163 ++++++++++++++---- Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst | 219 ++++++++++++++++++------ 2 files changed, 299 insertions(+), 83 deletions(-) (limited to 'Master/texmf-dist/bibtex') diff --git a/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst b/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst index 06a0aa908a4..e4fec7b7dcf 100644 --- a/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst +++ b/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst @@ -35,6 +35,7 @@ ENTRY language library month + nameaddon note number options @@ -60,7 +61,10 @@ ENTRY } {} { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.clause mid.sentence after.sentence after.block } +INTEGERS { + output.state before.all mid.clause mid.sentence after.sentence after.block + online.shown +} FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.clause := @@ -238,13 +242,20 @@ FUNCTION {either.or.check} if$ } FUNCTION {is.online} -{ url empty$ doi empty$ and - { type$ "online" = +{ online.shown + { #0 } + { url empty$ + doi empty$ and + urldate empty$ and + urlyear empty$ and + { type$ "online" = + { #1 } + { #0 } + if$ + } { #1 } - { #0 } if$ } - { #1 } if$ } FUNCTION {bbl.and} @@ -606,6 +617,7 @@ FUNCTION {output.bibitem} "}" write$ newline$ "" + #0 'online.shown := before.all 'output.state := } FUNCTION {format.key} @@ -613,6 +625,16 @@ FUNCTION {format.key} { key field.or.null } { "" } if$ + nameaddon duplicate$ empty$ + 'pop$ + { swap$ duplicate$ empty$ + 'skip$ + { " " * } + if$ + swap$ "[" swap$ * * "]" * + continue.clause + } + if$ } FUNCTION {select.language} { duplicate$ empty$ @@ -641,8 +663,27 @@ FUNCTION {format.btitle} { "t" change.case$ } if$ "title" bibinfo.check + duplicate$ empty$ + 'skip$ + { emphasize select.language } + if$ +} +FUNCTION {format.avtitle} +{ title duplicate$ empty$ 'skip$ - { emphasize + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ + 'skip$ + { type duplicate$ empty$ + { pop$ emphasize } + { duplicate$ "TV" = swap$ "Radio" = or + 'skip$ + 'emphasize + if$ + } + if$ select.language } if$ @@ -662,11 +703,19 @@ FUNCTION {format.version} } if$ } +FUNCTION {get.title.online} +{ online.shown + 'skip$ + { continue.clause + format.titleaddon output + #1 'online.shown := + } + if$ +} FUNCTION {get.title.addenda} { continue.clause format.version output - continue.clause - format.titleaddon output + get.title.online continue.clause type$ "reference" = { format.byeditors output } @@ -767,12 +816,19 @@ FUNCTION {format.eu.date} 'format.date if$ } +FUNCTION {format.series} +{ series + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "series" bibinfo.check +} FUNCTION {format.bvolume} { volume empty$ { "" } { bbl.volume volume tie.or.space.prefix "volume" bibinfo.check * * - series "series" bibinfo.check + format.series duplicate$ empty$ 'pop$ { emphasize ", " * swap$ * } if$ @@ -786,7 +842,7 @@ FUNCTION {format.number.series} { series field.or.null } { series empty$ { number "number" bibinfo.check } - { series "series" bibinfo.check + { format.series number tie.or.space.prefix "number" bibinfo.check * * } if$ @@ -796,6 +852,24 @@ FUNCTION {format.number.series} { "" } if$ } +FUNCTION {format.series.episode} +{ series + duplicate$ empty$ + 'skip$ + { "t" change.case$ } + if$ + "series" bibinfo.check emphasize + number "number" bibinfo.check emphasize + duplicate$ empty$ + { * } + { swap$ + duplicate$ empty$ + { * } + { ", " * swap$ * } + if$ + } + if$ +} FUNCTION {is.num} { chr.to.int$ duplicate$ "0" chr.to.int$ < not @@ -866,17 +940,6 @@ FUNCTION {format.thesis.type} } if$ } -FUNCTION {format.booklet.type} -{ type duplicate$ empty$ - { pop$ "" } - { "type" bibinfo.check - is.online author empty$ and editor empty$ and - { " " * bbl.online * } - 'skip$ - if$ - } - if$ -} FUNCTION {add.cmd.number} { ". " swap$ "number" bibinfo.check * } @@ -892,7 +955,7 @@ FUNCTION {format.legr.number} 'add.cmd.number { s "Cm" = 'add.cmd.number - { s #1 #3 substring$ 't := + { s purify$ #1 #3 substring$ 't := t "HL " = { ", (" swap$ "number" bibinfo.check * @@ -941,7 +1004,7 @@ FUNCTION {format.tr.number} } if$ } - { "(" swap$ * + { "t" change.case$ "(" swap$ * type duplicate$ empty$ { pop$ number duplicate$ empty$ @@ -988,8 +1051,10 @@ FUNCTION {format.manual.number} } if$ } - { number duplicate$ empty$ - 'pop$ + { "t" change.case$ + number duplicate$ empty$ + { pop$ + } { tie.or.space.prefix "number" bibinfo.check * * @@ -1360,6 +1425,14 @@ FUNCTION {format.vol.num.pages} "(" swap$ * ")" * } if$ * + month "month" bibinfo.check duplicate$ empty$ + 'pop$ + { swap$ duplicate$ empty$ + 'pop$ + { ", " * swap$ * } + if$ + } + if$ eid empty$ { format.journal.pages } { format.journal.eid } @@ -1400,7 +1473,7 @@ FUNCTION {format.journal.series.vol.pages} 'skip$ { " " * } if$ - series "series" bibinfo.check + format.series volume "volume" bibinfo.check * duplicate$ empty$ 'skip$ @@ -1462,6 +1535,18 @@ FUNCTION {format.url} { pop$ "" } { "\urlprefix\url{" swap$ * "}" * } if$ + duplicate$ empty$ + urlyear empty$ not + urldate empty$ not + or + and + { library duplicate$ empty$ + 'pop$ + { "\urlprefix{}" swap$ * * } + if$ + } + 'skip$ + if$ urlyear empty$ { urldate empty$ 'skip$ @@ -1529,6 +1614,7 @@ FUNCTION {book} { format.title "title" output.check } { format.btitle "title" output.check } if$ + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1574,7 +1660,8 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem author empty$ - { format.btitle "title" output.check + { format.avtitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1583,12 +1670,14 @@ FUNCTION {booklet} author format.key output format.date "year" output.check date.block - format.btitle "title" output.check + format.avtitle "title" output.check get.title.addenda } if$ new.block - format.booklet.type output + format.series.episode output + new.block + type "type" bibinfo.check output new.block howpublished "howpublished" bibinfo.check output new.block @@ -1645,8 +1734,10 @@ FUNCTION {incollection} { output.bibitem author empty$ { type$ "inreference" = - { format.label.booktitle output } - { format.title "title" output.check } + { format.label.booktitle output} + { format.title "title" output.check + get.title.online + } if$ format.date "year" output.check year empty$ 'skip$ { date.block } if$ @@ -1746,6 +1837,7 @@ FUNCTION {jurisdiction} 'new.sentence 'continue.clause if$ + get.title.online format.jur.date "year" output.check year empty$ 'skip$ { eu.case.check } if$ get.title.addenda @@ -1880,6 +1972,7 @@ FUNCTION {manual} { output.bibitem author empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1892,6 +1985,7 @@ FUNCTION {manual} get.title.addenda } if$ + month "month" bibinfo.check output format.edition output new.block format.manual.number output @@ -1910,6 +2004,7 @@ FUNCTION {image} { output.bibitem author empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1958,6 +2053,7 @@ FUNCTION {misc} { output.bibitem author empty$ { format.title "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2003,6 +2099,7 @@ FUNCTION {proceedings} { output.bibitem editor empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2035,6 +2132,7 @@ FUNCTION {techreport} { output.bibitem author empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2069,6 +2167,7 @@ FUNCTION {unpublished} { output.bibitem author empty$ { booktitle empty$ 'format.btitle 'format.title if$ "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2493,6 +2592,6 @@ FUNCTION {end.bib} } EXECUTE {end.bib} %% -%% Copyright (C) 2016-2021 by University of Bath +%% Copyright (C) 2016-2022 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 41ec643e053..c4aa6aef509 100644 --- a/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst +++ b/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst @@ -35,6 +35,7 @@ ENTRY language library month + nameaddon note number options @@ -60,7 +61,10 @@ ENTRY } {} { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.clause mid.sentence after.sentence after.block } +INTEGERS { + output.state before.all mid.clause mid.sentence after.sentence after.block + online.shown +} FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.clause := @@ -238,13 +242,20 @@ FUNCTION {either.or.check} if$ } FUNCTION {is.online} -{ url empty$ doi empty$ and - { type$ "online" = +{ online.shown + { #0 } + { url empty$ + doi empty$ and + urldate empty$ and + urlyear empty$ and + { type$ "online" = + { #1 } + { #0 } + if$ + } { #1 } - { #0 } if$ } - { #1 } if$ } FUNCTION {bbl.and} @@ -606,6 +617,7 @@ FUNCTION {output.bibitem} "}" write$ newline$ "" + #0 'online.shown := before.all 'output.state := } FUNCTION {format.key} @@ -613,6 +625,16 @@ FUNCTION {format.key} { key field.or.null } { "" } if$ + nameaddon duplicate$ empty$ + 'pop$ + { swap$ duplicate$ empty$ + 'skip$ + { " " * } + if$ + swap$ "[" swap$ * * "]" * + continue.clause + } + if$ } FUNCTION {select.language} { duplicate$ empty$ @@ -641,8 +663,27 @@ FUNCTION {format.btitle} { "t" change.case$ } if$ "title" bibinfo.check + duplicate$ empty$ + 'skip$ + { emphasize select.language } + if$ +} +FUNCTION {format.avtitle} +{ title duplicate$ empty$ 'skip$ - { emphasize + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ + 'skip$ + { type duplicate$ empty$ + { pop$ emphasize } + { duplicate$ "TV" = swap$ "Radio" = or + 'skip$ + 'emphasize + if$ + } + if$ select.language } if$ @@ -662,13 +703,8 @@ FUNCTION {format.version} } if$ } -FUNCTION {get.title.addenda} -{ continue.clause - format.version output - continue.clause - format.titleaddon output - continue.clause - is.online +FUNCTION {get.title.online} +{ is.online journal empty$ and booktitle empty$ @@ -678,26 +714,44 @@ FUNCTION {get.title.addenda} or and library empty$ - type$ "image" = + type$ duplicate$ "image" = + swap$ duplicate$ "booklet" = + swap$ duplicate$ "audio" = + swap$ duplicate$ "video" = + swap$ duplicate$ "music" = + swap$ "movie" = + or + or + or + or + or or and type$ "software" = not and - type empty$ - type$ "booklet" = not - type$ "audio" = not - and - type$ "video" = not - and - type$ "music" = not - and - type$ "movie" = not - and + series empty$ + type duplicate$ empty$ + { pop$ #1 } + { duplicate$ "TV" = + swap$ "Radio" = + or not + } + if$ or and - { bbl.online output } + { continue.clause + bbl.online output + #1 'online.shown := + } 'skip$ if$ +} +FUNCTION {get.title.addenda} +{ continue.clause + format.version output + continue.clause + format.titleaddon output + get.title.online continue.clause type$ "reference" = { format.byeditors output } @@ -728,6 +782,7 @@ FUNCTION {format.in.ed.booktitle} is.online { " " * bbl.online * + #1 'online.shown := } 'skip$ if$ @@ -813,12 +868,19 @@ FUNCTION {format.eu.date} 'format.date if$ } +FUNCTION {format.series} +{ series + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "series" bibinfo.check +} FUNCTION {format.bvolume} { volume empty$ { "" } { bbl.volume volume tie.or.space.prefix "volume" bibinfo.check * * - series "series" bibinfo.check + format.series duplicate$ empty$ 'pop$ { emphasize ", " * swap$ * } if$ @@ -832,7 +894,7 @@ FUNCTION {format.number.series} { series field.or.null } { series empty$ { number "number" bibinfo.check } - { series "series" bibinfo.check + { format.series number tie.or.space.prefix "number" bibinfo.check * * } if$ @@ -842,6 +904,24 @@ FUNCTION {format.number.series} { "" } if$ } +FUNCTION {format.series.episode} +{ series + duplicate$ empty$ + 'skip$ + { "t" change.case$ } + if$ + "series" bibinfo.check emphasize + number "number" bibinfo.check emphasize + duplicate$ empty$ + { * } + { swap$ + duplicate$ empty$ + { * } + { ", " * swap$ * } + if$ + } + if$ +} FUNCTION {is.num} { chr.to.int$ duplicate$ "0" chr.to.int$ < not @@ -912,17 +992,6 @@ FUNCTION {format.thesis.type} } if$ } -FUNCTION {format.booklet.type} -{ type duplicate$ empty$ - { pop$ "" } - { "type" bibinfo.check - is.online author empty$ and editor empty$ and - { " " * bbl.online * } - 'skip$ - if$ - } - if$ -} FUNCTION {add.cmd.number} { ". " swap$ "number" bibinfo.check * } @@ -938,7 +1007,7 @@ FUNCTION {format.legr.number} 'add.cmd.number { s "Cm" = 'add.cmd.number - { s #1 #3 substring$ 't := + { s purify$ #1 #3 substring$ 't := t "HL " = { ", (" swap$ "number" bibinfo.check * @@ -987,7 +1056,7 @@ FUNCTION {format.tr.number} } if$ } - { "(" swap$ * + { "t" change.case$ "(" swap$ * type duplicate$ empty$ { pop$ number duplicate$ empty$ @@ -1034,8 +1103,10 @@ FUNCTION {format.manual.number} } if$ } - { number duplicate$ empty$ - 'pop$ + { "t" change.case$ + number duplicate$ empty$ + { pop$ + } { tie.or.space.prefix "number" bibinfo.check * * @@ -1231,7 +1302,9 @@ FUNCTION {format.library} and journal empty$ and - { " " * bbl.online * } + { " " * bbl.online * + #1 'online.shown := + } 'skip$ if$ } @@ -1414,6 +1487,14 @@ FUNCTION {format.vol.num.pages} "(" swap$ * ")" * } if$ * + month "month" bibinfo.check duplicate$ empty$ + 'pop$ + { swap$ duplicate$ empty$ + 'pop$ + { ", " * swap$ * } + if$ + } + if$ eid empty$ { format.journal.pages } { format.journal.eid } @@ -1454,7 +1535,7 @@ FUNCTION {format.journal.series.vol.pages} 'skip$ { " " * } if$ - series "series" bibinfo.check + format.series volume "volume" bibinfo.check * duplicate$ empty$ 'skip$ @@ -1476,7 +1557,9 @@ FUNCTION {format.journal.series.vol.pages} } { "journal" bibinfo.check is.online - { " " * bbl.online * } + { " " * bbl.online * + #1 'online.shown := + } 'skip$ if$ volume "volume" bibinfo.check @@ -1520,6 +1603,18 @@ FUNCTION {format.url} { pop$ "" } { "\urlprefix\url{" swap$ * "}" * } if$ + duplicate$ empty$ + urlyear empty$ not + urldate empty$ not + or + and + { library duplicate$ empty$ + 'pop$ + { "\urlprefix{}" swap$ * * } + if$ + } + 'skip$ + if$ urlyear empty$ { urldate empty$ 'skip$ @@ -1567,6 +1662,7 @@ FUNCTION {article} is.online { continue.clause bbl.online output + #1 'online.shown := } 'skip$ if$ @@ -1593,6 +1689,7 @@ FUNCTION {book} { format.title "title" output.check } { format.btitle "title" output.check } if$ + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1638,7 +1735,8 @@ FUNCTION {book} FUNCTION {booklet} { output.bibitem author empty$ - { format.btitle "title" output.check + { format.avtitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1647,12 +1745,21 @@ FUNCTION {booklet} author format.key output format.date "year" output.check date.block - format.btitle "title" output.check + format.avtitle "title" output.check get.title.addenda } if$ new.block - format.booklet.type output + format.series.episode output + is.online + { continue.clause + bbl.online output + #1 'online.shown := + } + 'skip$ + if$ + new.block + type "type" bibinfo.check output new.block howpublished "howpublished" bibinfo.check output new.block @@ -1709,8 +1816,10 @@ FUNCTION {incollection} { output.bibitem author empty$ { type$ "inreference" = - { format.label.booktitle output } - { format.title "title" output.check } + { format.label.booktitle output} + { format.title "title" output.check + get.title.online + } if$ format.date "year" output.check year empty$ 'skip$ { date.block } if$ @@ -1810,6 +1919,7 @@ FUNCTION {jurisdiction} 'new.sentence 'continue.clause if$ + get.title.online format.jur.date "year" output.check year empty$ 'skip$ { eu.case.check } if$ get.title.addenda @@ -1944,6 +2054,7 @@ FUNCTION {manual} { output.bibitem author empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -1956,6 +2067,7 @@ FUNCTION {manual} get.title.addenda } if$ + month "month" bibinfo.check output format.edition output new.block format.manual.number output @@ -1974,6 +2086,7 @@ FUNCTION {image} { output.bibitem author empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2022,6 +2135,7 @@ FUNCTION {misc} { output.bibitem author empty$ { format.title "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2067,6 +2181,7 @@ FUNCTION {proceedings} { output.bibitem editor empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2099,6 +2214,7 @@ FUNCTION {techreport} { output.bibitem author empty$ { format.btitle "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2133,6 +2249,7 @@ FUNCTION {unpublished} { output.bibitem author empty$ { booktitle empty$ 'format.btitle 'format.title if$ "title" output.check + get.title.online format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda @@ -2557,6 +2674,6 @@ FUNCTION {end.bib} } EXECUTE {end.bib} %% -%% Copyright (C) 2016-2021 by University of Bath +%% Copyright (C) 2016-2022 by University of Bath %% %% End of file `bathx.bst'. -- cgit v1.2.3