diff options
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/camel/law.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/camel/law.bst | 1685 |
1 files changed, 1685 insertions, 0 deletions
diff --git a/Master/texmf-dist/bibtex/bst/camel/law.bst b/Master/texmf-dist/bibtex/bst/camel/law.bst new file mode 100644 index 00000000000..88d808d46f2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/camel/law.bst @@ -0,0 +1,1685 @@ +%% +%% This is file `law.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% camel.dtx (with options: `bstheader,eng') +%% law.dtx (with options: `bstheader,eng') +%% camel.dtx (with options: `bstlibrary,eng') +%% law.dtx (with options: `bstfunctions,eng') +%% camel.dtx (with options: `bsttrailer,eng') +%% This file is part of the Law module of the Camel package. +%% --------------------------------------------------------- +%% This is a generated file. +%% IMPORTANT NOTICE: +%% +%% You are allowed to change this file, subject to the following +%% conditions. Under any circumstances, new macro definitions +%% should not be added to this file. You are welcome to modify +%% the macro definitions contained in this file for your own +%% use. If you pass a copy of the modified version to someone +%% else, you should (a) let me know about the change on +%% fb@soas.ac.uk, and (b) put a note of the changes and of your +%% own contact details in the file. Furthermore, you must +%% acknowledge Camel and its author(s) in the new file (if it +%% is distributed to others), and you must attach these same +%% conditions to the new file. +%% +%% You are not allowed to distribute this file alone. You are not +%% allowed to take money for the distribution or use of this file +%% (or a changed version) except for a nominal charge for copying +%% etc. +%% +%% You are allowed to distribute this file under the condition that +%% it is distributed with all of its contents, intact. +%% +%% For error reports, or offers to help make Camel a more powerful, +%% friendlier, and better package, please contact me on +%% `fb' at soas.ac.uk +%% +FUNCTION { hello } +{ +" ============================================" +" bibliography package, version 1.0k or later" +" Use with LaTeX2e and the Camel prototype " +" --------------------------------------------" +" documentation last updated: 5 December 1994 " +" code last updated: 22 March 1995 " +" version: 1.0i " +" Camel style package. " +" This is the `law' style for BibTeX and the " +" ============================================" +stack$ +} +ENTRY +{ address +annote +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +date +jurisdiction +court +division +divno +casedate +translator +booktranslator +cites +units +} +{} +{ label extra.label sort.label } +STRINGS { s t u v scrubdate + volume.var year.var number.var journal.var pages.var } +INTEGERS { itemcount date.specials charcount a b c + nameptr namesleft numnames a.logical } +FUNCTION {dc..} {"District Court"} +FUNCTION {sc..} {"Supreme Court"} + FUNCTION {not} + { { #0 } + { #1 } + if$ + } + FUNCTION {and} + { 'skip$ + { pop$ #0 } + if$ + } + FUNCTION {or} + { { pop$ #1 } + 'skip$ + if$ + } +FUNCTION {times.ten} + { duplicate$ duplicate$ duplicate$ duplicate$ duplicate$ + duplicate$ duplicate$ duplicate$ duplicate$ + + + + + + + + + + + } +FUNCTION {character.length} + { 'u := + #0 'charcount := + { u empty$ not } + { u + #2 + global.max$ substring$ 'u := + charcount #1 + 'charcount := + }while$ + charcount + } +FUNCTION {first.in.second} + { 's := + duplicate$ empty$ + { pop$ pop$ #0 #0 } + { swap$ duplicate$ character.length 'a := + swap$ duplicate$ character.length 'b := + b a < + { pop$ pop$ #0 #0 } + { s "end" = + { b a - #1 + global.max$ substring$ = + { b a - #1 + #1 } + { #0 #0 + }if$ + } + { s "start" = + { #1 a substring$ = + { #1 #1 } + { #0 + }if$ + } + { s "reverse" = + { b a - #1 + 'b := + { b #0 > } + { duplicate$ + b a substring$ + 's := + swap$ duplicate$ s = + { pop$ pop$ b #0 'b := #1 } + { b #1 = + { pop$ pop$ #0 #0 'b := #0 } + { swap$ b #1 - 'b := + }if$ + }if$ + }while$ + } + { b a - #1 + 'b := #1 'c := + { c b < } + { duplicate$ + c a substring$ + 's := + swap$ duplicate$ s = + { pop$ pop$ c b 'c := #1 } + { b c - #1 = + { pop$ pop$ #0 b 'c := #0 } + { swap$ c #1 + 'c := + }if$ + }if$ + }while$ + }if$ + }if$ + }if$ + }if$ + }if$ + } +FUNCTION { get.character.type } + { duplicate$ "*" = + { pop$ duplicate$ empty$ + { pop$ "other" } + { chr.to.int$ duplicate$ + duplicate$ #47 > swap$ #58 < and + { pop$ "numeral" } + { duplicate$ #64 > swap$ duplicate$ #91 < swap$ + duplicate$ #96 > swap$ #123 < and 'a.logical := + and a.logical or + { "letter" } + { "other" + }if$ + }if$ + }if$ + } + { = + { "other" } + { "letter" + }if$ + }if$ + } +FUNCTION { type.last.char } + { duplicate$ character.length + #1 substring$ + "*" get.character.type + } + FUNCTION {empty.to.null} + { duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + } +FUNCTION { check } +{ 't := + duplicate$ empty$ + { "empty " t * " in " * cite$ * warning$} + 'skip$ + if$ +} +FUNCTION {either.or} + { duplicate$ empty$ + { pop$ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + } + { swap$ duplicate$ empty$ + { pop$ } + { "both items in an either.or pair are non-empty in " cite$ * + warning$ + " I'm using only ONE of these items (the second passed by the function)." + warning$ + pop$ + }if$ + }if$ + } +FUNCTION {either.or.nowarning} + { duplicate$ empty$ + { pop$ duplicate$ empty$ + { empty.to.null } + 'skip$ + if$ + } + { swap$ pop$ } + if$ + } +FUNCTION {must.must.must} + { empty.to.null 't := + empty.to.null swap$ empty.to.null swap$ t + * * + write$ + } +FUNCTION {might.ifone.must} + { empty.to.null 't := + swap$ duplicate$ empty$ + { pop$ pop$ t } + { swap$ empty.to.null t * * } + if$ + write$ + } +FUNCTION {iftwo.might.iftwo} + { 't := + duplicate$ empty$ + { pop$ pop$ } + { empty.to.null swap$ empty.to.null swap$ + t empty.to.null + * * write$ } + if$ + } +FUNCTION {must.ifthree.might} + { duplicate$ empty$ + { pop$ pop$ empty.to.null } + { 't := + swap$ empty.to.null + swap$ empty.to.null + t * * + }if$ + write$ + } +FUNCTION {field.tag.no.combine} + { "endlabel" = + { duplicate$ empty$ + { pop$ pop$ empty.to.null } + { empty.to.null 's := empty.to.null + swap$ empty.to.null swap$ s * * + }if$ + } + { duplicate$ empty$ + { pop$ pop$ empty.to.null } + { empty.to.null 's := empty.to.null + swap$ empty.to.null s swap$ * * + }if$ + }if$ + } +FUNCTION {change.letter.case} + { 't := + duplicate$ empty$ + 'skip$ + { t chr.to.int$ "n" chr.to.int$ = + 'skip$ + { t change.case$ } + if$ + } + if$ + } + FUNCTION {n.dashify} + { 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ + } +FUNCTION { gather.chars } + { + "forward" = + { swap$ duplicate$ character.length 'a := + 't := + duplicate$ + { t #1 #1 substring$ swap$ get.character.type + "other" = + t empty$ not and } + { t #2 global.max$ substring$ 't := duplicate$ + }while$ + duplicate$ t #1 #1 substring$ swap$ get.character.type + t #1 #1 substring$ swap$ + "" swap$ duplicate$ 'u := + t #2 global.max$ substring$ 't := + { u = } + { * swap$ + u * 'u := + u #1 #1 substring$ swap$ + u #1 #1 substring$ + u #2 global.max$ substring$ 'u := + t #1 #1 substring$ swap$ get.character.type + t #1 #1 substring$ swap$ + duplicate$ u = + { t #2 global.max$ substring$ 't := } + { swap$ pop$ + }if$ + }while$ + swap$ pop$ t swap$ u + } + { swap$ duplicate$ character.length 'a := + 't := + duplicate$ + { t a #1 substring$ swap$ get.character.type + "other" = + t empty$ not and } + { a #1 - 'a := + t #1 a substring$ 't := + }while$ + duplicate$ t a #1 substring$ swap$ get.character.type + t a #1 substring$ swap$ + "" swap$ duplicate$ 'u := + a #1 - 'a := + t #1 a substring$ 't := + { u = } + { swap$ * swap$ + u * 'u := + u #1 #1 substring$ swap$ + u #1 #1 substring$ + u #2 global.max$ substring$ 'u := + t a #1 substring$ swap$ get.character.type + t a #1 substring$ swap$ + duplicate$ u = + { a #1 - 'a := t #1 a substring$ 't := } + { swap$ pop$ + }if$ + }while$ + swap$ pop$ t swap$ u + }if$ + } + FUNCTION {tie.or.space.connect} + { duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * + } +FUNCTION {format.pages} + { swap$ duplicate$ empty$ + { pop$ pop$ "" } + { swap$ duplicate$ "short" = + { pop$ + 's := + "" + s #1 #1 substring$ + { "-" = not } + { s #1 #1 substring$ * + s #2 global.max$ substring$ 's := + s #1 #1 substring$ + duplicate$ "" = + { pop$ "-" } + 'skip$ + if$ + } + while$ + } + { "full" = + { pages n.dashify } + { "invalid switch fed to the format.pages function" + warning$ + }if$ + }if$ + }if$ +} +FUNCTION {format.names} + { swap$ duplicate$ empty$ + { swap$ pop$ } + { 's := + 'u := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { u "lastonly" = + { s nameptr "{vv~}{ll}" format.name$ 't := } + { u "firstinitial" = + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } + { u "full" = + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=} + { "style error; invalid or non-existent toggle" warning$ } + if$ + } + if$ + } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ + } + FUNCTION {format.month.year} + { year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ + } +FUNCTION {fillout.a.year} + { duplicate$ character.length #2 = + { "19" swap$ * } + 'skip$ + if$ + } +FUNCTION {parse.month} + { duplicate$ "jan" = + { pop$ "1" } + { duplicate$ "feb" = + { pop$ "2" } + { duplicate$ "mar" = + { pop$ "3" } + { duplicate$ "apr" = + { pop$ "4" } + { duplicate$ "may" = + { pop$ "5" } + { duplicate$ "jun" = + { pop$ "6" } + { duplicate$ "jul" = + { pop$ "7" } + { duplicate$ "aug" = + { pop$ "8" } + { duplicate$ "sep" = + { pop$ "9" } + { duplicate$ "oct" = + { pop$ "10" } + { duplicate$ "nov" = + { pop$ "11" } + { duplicate$ "dec" = + { pop$ "12" } + { "invalid month in " cite$ * warning$ + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + } +FUNCTION { format.month.name } + { swap$ duplicate$ empty$ + { pop$ pop$ "" } + { swap$ "long" = + { duplicate$ "1" = + { "January" } + { duplicate$ "2" = + { "February" } + { duplicate$ "3" = + { "March" } + { duplicate$ "4" = + { "April" } + { duplicate$ "5" = + { "May" } + { duplicate$ "6" = + { "June" } + { duplicate$ "7" = + { "July" } + { duplicate$ "8" = + { "August" } + { duplicate$ "9" = + { "September" } + { duplicate$ "10" = + { "October" } + { duplicate$ "11" = + { "November" } + { duplicate$ "12" = + { "December" } + { "invalid month in " cite$ * warning$ "" + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + } + { duplicate$ "1" = + { "Jan." } + { duplicate$ "2" = + { "Feb." } + { duplicate$ "3" = + { "Mar." } + { duplicate$ "4" = + { "Apr." } + { duplicate$ "5" = + { "May" } + { duplicate$ "6" = + { "Jun." } + { duplicate$ "7" = + { "Jul." } + { duplicate$ "8" = + { "Aug." } + { duplicate$ "9" = + { "Sept." } + { duplicate$ "10" = + { "Oct." } + { duplicate$ "11" = + { "Nov." } + { duplicate$ "12" = + { "Dec." } + { "" + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ +swap$ pop$ + }if$ + } +FUNCTION {extract.date} + { 'v := "" 's := "" 't := "" 'u := + itemcount #0 = + { cites empty$ + { "some date or other is COMPLETELY empty in " cite$ * + warning$ } + 'skip$ + if$ + } + { itemcount #1 = + { pop$ fillout.a.year 's := "" 'u := "" 't := } + { itemcount #2 = + { pop$ swap$ pop$ swap$ duplicate$ character.length #4 = + { swap$ "--" swap$ * * 's := "" 't := } + { swap$ fillout.a.year 's := 't := + }if$ + "" 'u := + } + { itemcount #3 = + { date.specials + { pop$ fillout.a.year 's := + "month" = + { 't := + pop$ 'u := } + { 'u := + pop$ 't := + }if$ + } + { pop$ fillout.a.year 's := + pop$ 'u := + pop$ 't := + }if$ + } + { "too many items for date in " cite$ * warning$ + }if$ + }if$ + }if$ + }if$ + v duplicate$ "month.dd.yy" = + { pop$ s ", " u "\ " t "long" format.month.name } + { duplicate$ "dd.month.yy" = + { pop$ s "\ " t "long" format.month.name "\ " u } + { duplicate$ "mo.dd.yy" = + { pop$ s ", " u "\ " t "short" format.month.name } + { duplicate$ "dd.mo.yy" = + { pop$ s "\ " t "short" format.month.name "\ " u } + { duplicate$ "dd.mm.yy" = + { pop$ s "/" t "/" u } + { duplicate$ "mm.dd.yy" = + { s "/" u "/" t } + { "yy" = + { "" "" "" "" s } + { "invalid date toggle in style file" warning$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + "" 'v := + duplicate$ empty$ + { pop$ pop$ } + { swap$ * 'v := } + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ * v swap$ * 'v := } + if$ + duplicate$ empty$ + { pop$ v } + { v swap$ * } + if$ + } +FUNCTION {topup.date} + { 'a := + duplicate$ character.length #2 = + { duplicate$ #1 #1 substring$ chr.to.int$ #48 - + times.ten swap$ #2 #1 substring$ chr.to.int$ #48 - + + + } + { duplicate$ character.length #1 = + { chr.to.int$ #48 - } + { pop$ #0 "I can't cope with more than two Japanese year digits in " + cite$ * warning$ + }if$ + }if$ + a + int.to.str$ + } +FUNCTION {format.jdate} + { duplicate$ #2 global.max$ substring$ "*" "forward" gather.chars + pop$ 't := swap$ + #1 #1 substring$ duplicate$ "s" = + { pop$ t #1925 topup.date } + { duplicate$ "m" = + { pop$ t #1867 topup.date } + { duplicate$ "t" = + { pop$ t #1911 topup.date } + { "h" = + { t #1988 topup.date } + { "invalid Imperial calendar code in " cite$ * warning$ + }if$ + }if$ + }if$ + }if$ + swap$ + "*" "forward" gather.chars + pop$ swap$ + "*" "forward" gather.chars + pop$ swap$ pop$ 't := swap$ "default" swap$ t swap$ "default" + swap$ "default" + #2 'itemcount := + } +FUNCTION {format.date} + { 'v := + empty.to.null 's := + #0 'charcount := + #0 'itemcount := + #0 'date.specials := + { s empty$ not } + { s "*" "forward" gather.chars + duplicate$ "letter" = + { pop$ duplicate$ character.length #1 = itemcount not and + { pop$ pop$ s format.jdate "" 's := } + { duplicate$ character.length #3 = + { swap$ 's := + parse.month "month" #1 'date.specials := } + { swap$ 's := + pop$ "1" "invalid date in " cite$ * warning$ + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + "default" + }if$ + }if$ + } + { "numeral" = + { duplicate$ character.length #1 = + { swap$ 's := "default" } + { duplicate$ character.length #2 = + { swap$ 's := "default" } + { duplicate$ character.length #4 = + { swap$ 's := "default" } + { swap$ 's := pop$ "1" + "invalid numerical element in date for " cite$ * warning$ + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + "default" + }if$ + }if$ + }if$ + } + { swap$ 's := pop$ "1" + "failed to parse date in " cite$ * warning$ + "default" + }if$ + }if$ + itemcount #1 + 'itemcount := + }while$ + v extract.date + scrubdate "t" = + { pop$ year empty.to.null } + 'skip$ + if$ + } +FUNCTION {parse.one.cite} +{ duplicate$ "=" = not + { "=" "forward" gather.chars pop$ + duplicate$ "[" swap$ "forward" first.in.second + { swap$ duplicate$ "]" swap$ "forward" first.in.second + { "" 'volume.var := + 'b := swap$ 'a := a b < + { duplicate$ a #1 + b a #1 + - substring$ + 'year.var := + b #1 + global.max$ substring$ + " " "forward" gather.chars pop$ + duplicate$ "*" "forward" gather.chars + "numeral" = + { swap$ duplicate$ empty$ + { pop$ pop$ 'number.var := } + { pop$ pop$ swap$ * "" 'number.var := + }if$ + } + { pop$ pop$ " " swap$ * swap$ * "" 'number.var := + }if$ + } + { "Weird syntax error in " cite$ * warning$ + }if$ + } + { "Opening [ without closing ] in " cite$ * warning$ + }if$ + } + { pop$ duplicate$ ")" swap$ "reverse" first.in.second + { swap$ duplicate$ "(" swap$ "reverse" first.in.second + { 'a := swap$ 'b := a b < + { duplicate$ a #1 + b a #1 + - substring$ + 'year.var := + #1 a #1 - substring$ + " " "forward" gather.chars pop$ + duplicate$ "/" swap$ "forward" first.in.second + { pop$ "/" "forward" gather.chars pop$ + swap$ duplicate$ empty$ + { pop$ "" 'number.var := } + { #2 global.max$ substring$ + 'number.var := + }if$ + } + { pop$ "" 'number.var := + }if$ + duplicate$ empty$ + { pop$ "" 'volume.var := } + { duplicate$ "*" "forward" gather.chars + "numeral" = + { swap$ duplicate$ empty$ + { pop$ pop$ 'volume.var := } + { pop$ pop$ swap$ * "" 'volume.var := + }if$ + } + { pop$ pop$ " " swap$ * swap$ * "" 'volume.var := + }if$ + }if$ + } + { "Weird syntax error in " cite$ * warning$ + }if$ + } + { "Closing ) without opening ( in " cite$ * warning$ + }if$ + } + { pop$ "No recognizable date in string in " cite$ * warning$ + }if$ + }if$ + " " swap$ * " " "reverse" gather.chars pop$ + duplicate$ "*" "forward" gather.chars + "numeral" = + { swap$ duplicate$ empty$ + { pop$ pop$ 'pages.var := } + { pop$ pop$ swap$ * "" 'pages.var := + }if$ + } + { pop$ pop$ swap$ * "" 'pages.var := + }if$ + duplicate$ empty$ + { 'journal.var := } + { duplicate$ character.length #2 - + #3 swap$ substring$ 'journal.var := + }if$ + } + 'skip$ + if$ +} +FUNCTION {build.bridges} + { duplicate$ empty$ + { pop$ skip$ } + { duplicate$ "sections" = + { pop$ "\bridges{\ \S~}{}{\ \S\S~}{\ }{\ \S~}{\ \S\S~}" + "" "" must.must.must + } + + { duplicate$ "articles" = + { pop$ + "\bridges{\ art.~}{}{\ arts.~}{\ }{\ art.~}{\ arts.~}" + "" "" must.must.must + } + { "schedules" = + { "\bridges{\ sched.~}{}{\ scheds.~}{\ }{\ sched.~}{\ scheds.~}" + "" "" must.must.must + } + 'skip$ + if$ + }if$ + }if$ + }if$ + } +FUNCTION { get.a.kinda.sort.key } +{ author empty$ + { title empty$ + { "0000" } + { title "*" "forward" gather.chars pop$ + duplicate$ "l" change.letter.case "the" = + { pop$ "*" "forward" gather.chars pop$ swap$ pop$ } + { duplicate$ "l" change.letter.case "a" = + { pop$ "*" "forward" gather.chars pop$ swap$ pop$ } + { swap$ pop$ + }if$ + }if$ + }if$ + } + { author #1 "{ll}" format.name$ + }if$ +} +FUNCTION {j.format.division} + { division empty$ + 'skip$ + { dc.. court "end" first.in.second + { pop$ " No.~" 's := "endlabel" 't := } + { pop$ sc.. court "start" first.in.second + { pop$ "No.\ " 's := "frontlabel" 't := } + { pop$ " " 's := "endlabel" 't := + }if$ + }if$ + }if$ + division s divno t field.tag.no.combine + } +FUNCTION {article} +{ volume empty$ not number empty$ not and + volume empty$ number empty$ year "mo.dd.yy" format.date + pop$ itemcount #1 = not and and or + { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ + } + { title type.last.char "numeral" = + { "\bridges{,\ }{,\ }{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ + } + 'skip$ + if$ + }if$ + "\lexibib{article}{" cite$ "}{" must.must.must + get.a.kinda.sort.key + "}{" "" must.must.must +author "lastonly" format.names +"}{" +"" +must.must.must +title "title" check +"}{" +"" +must.must.must + volume empty$ not number empty$ not and + { journal "journal" check ", v.~" volume must.must.must + ", n.~" number "}{" must.must.must } + { volume empty$ not + { volume "\ " journal "journal" check empty.to.null + might.ifone.must + "}{" "" "" must.must.must} + { year "mo.dd.yy" format.date itemcount #1 = + { "[" swap$ "] " iftwo.might.iftwo + number "\ " journal "journal" check might.ifone.must + "}{" "" "" must.must.must} + { pop$ number empty$ + { "\\" journal "journal" check "\\" must.must.must + "}{" "" "" must.must.must } + { number "\ " journal "journal" check might.ifone.must + "}{" "" "" must.must.must + }if$ + }if$ + }if$ + }if$ +pages "short" format.pages "pages" check +"}{" +"" +must.must.must +volume empty$ not + { "(" "" "" must.must.must + publisher ":\ " "" might.ifone.must + "" year "mo.dd.yy" format.date ")" must.must.must } + { year "mo.dd.yy" format.date itemcount #1 = + 'pop$ + { "" "" must.must.must + }if$ + }if$ +crossref empty$ +{ "}" "" "" must.must.must } +{ booktitle empty$ + { "no booktitle (name of special issue) for " + cite$ "/" crossref ". Why a crossref?" * * * * warning$ + "}" "" "" must.must.must } + { volume empty$ {""} {") ("} if$ booktitle "}" must.must.must} + if$ +}if$ +newline$ +} +FUNCTION {book} +{ title type.last.char "numeral" = + { "\bridges{,\ }{}{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ + } + { units empty.to.null "paras" = + { "\bridges{,\ para.~}{}{,\ paras.~}{\ }{,\ para.~}{,\ paras.}" + "" "" must.must.must + newline$ + } + 'skip$ + if$ + }if$ + "\lexibib{book}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + volume empty$ + { "" } + { "\volno\ " } + if$ + author + "firstinitial" format.names "}{" must.must.must + booktitle empty$ + { title "title" check "" "" must.must.must } + { booktitle ": " title must.ifthree.might + }if$ + type empty.to.null "cmnd" = + type empty.to.null "command" = + type empty.to.null "command papers" = + or or + { ", " year "mo.dd.yy" format.date + ", " "Cmnd. " + * * * + series empty$ + { "no.~" } + { "Ser.~" series ", No.~" * * + }if$ + number "number" check + * * + "" "" must.must.must + } + 'skip$ + if$ + "}{}{}{" "(" "" must.must.must + editor empty$ translator empty$ and + { series empty$ + 'skip$ + { series " No.~" number + "endlabel" field.tag.no.combine ", " "" must.must.must } + if$ + } + { editor translator either.or "firstinitial" format.names + translator empty$ + { editor num.names$ #1 > + { " eds.\ " } + { " ed.\ " } + if$ + } + { " trans.\ " } + if$ + "" must.must.must + }if$ + edition " ed.\ " "" might.ifone.must + type empty.to.null "cmnd" = + type empty.to.null "command" = + type empty.to.null "command papers" = + or or + { "" } + { year "mo.dd.yy" format.date + }if$ + ")}" "" must.must.must + newline$ +} +FUNCTION{incollection} +{ "\lexibib{incollection}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "lastonly" format.names "author" check + "}{" "" must.must.must + title "title" check + "}{" "" must.must.must + chapter empty$ + { "\\in \\" } + { "\\" type empty$ + { "chapter " chapter "chapter" check " of \\" * * * } + { type " " chapter "chapter" check " of \\" * * * * + }if$ + }if$ + booktitle "booktitle" check + "}{" must.must.must + pages "short" format.pages "pages" check + "}{" "(" must.must.must + editor empty$ translator empty$ and + { series empty$ + 'skip$ + { series " No.~" number + "endlabel" field.tag.no.combine ", " "" must.must.must } + if$ + } + { editor booktranslator either.or "firstinitial" format.names + booktranslator empty$ + { editor num.names$ #1 > + { " eds.\ " } + { " ed.\ " } + if$ + } + { " trans.\ " } + if$ + "" must.must.must + }if$ + edition " ed.\ " "" might.ifone.must + year "mo.dd.yy" format.date ")}" "" must.must.must + newline$ +} +FUNCTION{inbook} +{ "\lexibib{inbook}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "firstinitial" format.names "author" check + "}{" "" must.must.must + title booktitle = + { chapter empty$ + { "no chapter or separate title for inbook entry " cite$ * warning$ + } + { "{\rm " "Chapter" type either.or.nowarning + " " chapter " of} " * * * * + }if$ + } + { "" + }if$ + title "title" check + "}{" must.must.must + title booktitle = + { "" } + { chapter empty$ + { "{\rm in} " } + { type empty$ + { "{\rm Chapter " chapter " of} " * * } + { "{\rm " type " " chapter " of} " * * * * + }if$ + }if$ + }if$ + booktitle "booktitle" check + "}{" must.must.must + pages "short" format.pages "pages" check + "}{" "(" must.must.must + translator empty$ + { series empty$ + 'skip$ + { series " No.~" number + "endlabel" field.tag.no.combine ", " "" must.must.must } + if$ + } + { translator "firstinitial" format.names + " trans.\ " + "" must.must.must + }if$ + edition " ed.\ " "" might.ifone.must + year "mo.dd.yy" format.date ")" "}" must.must.must + newline$ +} +FUNCTION{booklet} +{ "\lexibib{booklet}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "full" format.names "}{" "" must.must.must + "\\" title "\\}{}{}{(" must.must.must + howpublished ", " "" might.ifone.must + year "mo.dd.yy" format.date + ")}" "" must.must.must + newline$ +} +FUNCTION {techreport} +{"\lexibib{techreport}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + institution author either.or.nowarning + "full" format.names "author & institution" check + "}{" title "title" check must.must.must + "}{}{}{" "(" "" must.must.must + author empty$ + 'skip$ + {institution "\ " "" might.ifone.must + }if$ + type empty$ + { "Technical report" } + { type + }if$ + type empty.to.null "Cmnd" = + { "\ " } + { " No.~" + }if$ + number "endlabel" field.tag.no.combine + ", " "" must.must.must + year "mo.dd.yy" format.date + "" ")}" must.must.must + newline$ + } +FUNCTION {mastersthesis} +{"\lexibib{mastersthesis}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "}{" "" must.must.must + author + "full" format.names "author" check + "}{" title "title" check must.must.must + "}{}{}{(" + type empty$ + { "Master's Thesis" } + { type + }if$ + ", " must.must.must + institution "institution" check ", " "" might.ifone.must + year "mo.dd.yy" format.date + ")" "}" must.must.must + newline$ + } +FUNCTION {clear.cite.vars} + { +"" 'volume.var := +"" 'number.var := +"" 'journal.var := +"" 'pages.var := +"" 'year.var := + } +FUNCTION {case} +{ cites empty.to.null "=" * + journal empty$ + { parse.one.cite } + { volume empty.to.null 'volume.var := + number empty.to.null 'number.var := + journal 'journal.var := + pages empty.to.null 'pages.var := + year empty.to.null 'year.var := + }if$ + volume.var empty$ not number.var empty$ not and + { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ } + 'skip$ + if$ + "\lexibib{case}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title empty$ + { "Decision of the " court "court" check "" must.must.must + " (" j.format.division ")" iftwo.might.iftwo + ", " "" "" must.must.must + casedate "month.dd.yy" format.date "" "" must.must.must + "}{" "" "" must.must.must + } + { title "}{" "" must.must.must } + if$ + volume.var empty$ not number.var empty$ not and + { journal.var "journal" check ", v.~" volume.var must.must.must + ", n.~" number.var "}{" must.must.must } + { volume.var empty$ + { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo + number.var "\ " journal.var "journal" check might.ifone.must + "}{" "" "" must.must.must } + { volume.var "\ " journal.var "journal" check empty.to.null + might.ifone.must + "}{" "" "" must.must.must + }if$ + }if$ +pages.var "short" format.pages "pages" check +"}{" +"(" +must.must.must +volume.var empty$ + 'skip$ + { year.var "mo.dd.yy" format.date "" "" must.must.must + }if$ +crossref empty$ +{ ")}" "" "" must.must.must } +{ booktitle empty$ + { "no booktitle (name of special issue) for " + cite$ "/" crossref * * * warning$ + ")}" "" "" must.must.must } + { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must} + if$ +}if$ +{ duplicate$ "=" = not } +{ parse.one.cite + "={" "" "" must.must.must + volume.var empty$ not number.var empty$ not and + { journal.var "journal" check ", v.~" volume.var must.must.must + ", n.~" number.var "}{" must.must.must } + { volume.var empty$ + { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo + number.var "\ " journal.var "journal" check might.ifone.must + "}{" "" "" must.must.must } + { volume.var "\ " journal.var "journal" check empty.to.null + might.ifone.must + "}{" "" "" must.must.must + }if$ + }if$ +pages.var "short" format.pages "pages" check +"}{" +"" +must.must.must +volume.var empty$ + 'skip$ + { "(" year.var "mo.dd.yy" format.date ")" must.must.must + }if$ +crossref empty$ +{ "}" "" "" must.must.must } +{ booktitle empty$ + { "no booktitle (name of special issue) for " + cite$ "/" crossref * * * warning$ + "}" "" "" must.must.must } + { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must} + if$ +}if$ +}while$ +pop$ +clear.cite.vars +newline$ +annote empty.to.null write$ newline$ +} +FUNCTION {j.statute} + { "\lexibib{jstatute}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title "title" check empty.to.null "}{}{}{" "" must.must.must + title empty$ {""} {"("} if$ + "" "" must.must.must + number empty$ + 'skip$ + { type empty$ + { "Law" } + { type + }if$ + "\ no.~" * + number "number" check " of " + iftwo.might.iftwo + } + if$ + year "yy" format.date + title empty$ {""} {")"} if$ + "}" must.must.must + newline$ + } +FUNCTION { s.statute } +{ "\lexibib{statute}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title "title" check ", No.~" number + "endlabel" field.tag.no.combine + number empty$ + { "\ " * } + { "\ of " * } + if$ + year "mo.dd.yy" format.date "}{}{}{}" must.must.must + newline$ +} +FUNCTION { e.statute } +{ "\lexibib{statute}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title "title" check "\ " + year "mo.dd.yy" format.date must.must.must + "}{}{}{}" "" "" must.must.must + newline$ +} +FUNCTION { statute } + { type build.bridges + jurisdiction empty.to.null duplicate$ + "japan" = + { pop$ j.statute } + { duplicate$ "singapore" = + { pop$ s.statute } + { duplicate$ "england" = + { pop$ e.statute } + { pop$ "IMPORTANT: unknown jurisdiction for " cite$ * warning$ + }if$ + }if$ + }if$ + } +FUNCTION {unpublished} +{ "\lexibib{book}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "firstinitial" format.names "}{" "" must.must.must + title "title" check "" "" must.must.must + "}{}{}{" "(" "" must.must.must + note + ")}" "" must.must.must + newline$ +} +FUNCTION {default.type} { book } +READ +EXECUTE {hello} +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year "yy" format.date purify$ #-1 #2 substring$ + * + 'label := + year "yy" format.date purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {case.sort} +{ title empty$ + { key empty$ + { "to sort, need title or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + { type$ "case" = + 'case.sort + { type$ "statute" = + 'case.sort + 'author.sort + if$ + } + if$ + } + if$ + } + if$ + } + if$ + " " + * + year "yy" format.date sortify + * + " " + * + title empty.to.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +ITERATE {call.type$} +%% +%% +%% End of file `law.bst'. |