diff options
author | Karl Berry <karl@freefriends.org> | 2008-05-04 23:00:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-05-04 23:00:21 +0000 |
commit | e936f03b76d95e6241f79cbd2f2fde7bd425869d (patch) | |
tree | 2438598f499a1a20776dc1bc1686606e7ddeb943 /Master/texmf-dist | |
parent | 704a83857729bdf1546dfc8a61775587105ddaf8 (diff) |
rm camel, nosell
git-svn-id: svn://tug.org/texlive/trunk@7852 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
24 files changed, 0 insertions, 12560 deletions
diff --git a/Master/texmf-dist/bibtex/bib/camel/camel.bib b/Master/texmf-dist/bibtex/bib/camel/camel.bib deleted file mode 100644 index c5321a32863..00000000000 --- a/Master/texmf-dist/bibtex/bib/camel/camel.bib +++ /dev/null @@ -1,154 +0,0 @@ -%% -%% This is file `camel.bib', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% camel.dtx (with options: `bib') -%% -%% This file is part of the Camel package. -%% --------------------------------------- -%% This is a generated file. -%% -%% IMPORTANT NOTICE: -%% -%% You are not allowed to change this file. You may however copy -%% this file to a file with a different name and then change the -%% copy if (a) you do not charge for the modified code, (b) you -%% acknowledge Camel and its author(s) in the new file, if it -%% is distributed to others, and (c) you attach these same -%% conditions to the new file. -%% -%% The above conditions do not apply to the demonstration -%% file test.tex. -%% -%% 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 -%% -@string{asr..="Am.~Soc.\ Rev."} -@book{bluebook, - title = {A Uniform System of Citation}, - edition = {19th}, - year = 1989 -} -@book{knuth, - title = {The {\TeX} book}, - year = 1990, - author = {D.E. Knuth} -} -@book{leunen, - author = {M.-C. van Leunen}, - title = {A Handbook for Scholars}, - year = 1979 -} -@book{latex-book, - title = {\LaTeX: a document preparation system}, - year = 1994, - author = {Leslie Lamport} -} -@inbook{companion-bibs, - title = {Bibliography Generation}, - chapter = 13, - pages = {371}, - crossref = {latex-companion} -} -@book{latex-companion, - author = {M. Goosens and Frank Mittelbach and A. Samarin}, - title = {The \LaTeX\ Companion}, - booktitle = {The \LaTeX\ Companion}, - year = 1994 -} -@techreport{oren-user, - author = {Oren Patashnik}, - title = {\BibTeX ing}, - year = 1988, - type = {CTAN document} -} -@techreport{oren-hackers, - author = {Oren Patashnik}, - title = {Designing \BibTeX\ Styles}, - type = {CTAN document}, - year = 1988 -} -@book{maki-constitution, - author = {Maki, John McGilvrey}, - title = {Court and Constitution in Japan: Selected Supreme Court Decisions, - 1948-1960}, - publisher = {Washington University Press}, - year = 1964 -} -@booklet{sansom-constitution, - author = {Sansom, {Sir} George Bailey}, - title = {The First Japanese Constitution: A Lecture}, - note = {delivered before the - Asiatic Society of Japan}, - year = 1938 -} -@article{macauley, - author = {Stuart Macauley}, - title = {Non-Contractual Relations -in Business: A Preliminary Study}, - volume = {28}, - journal = asr.., - pages = {55}, - year = {1963} -} -@mastersthesis{homma-derivative, - title = {The Derivative Suit under Japanese Law as a Measure of - Corporate Governance}, - author = {Masahiro Homma}, - institution = {School of Oriental and African Studies}, - type = {LL.M. thesis}, - year = {1994} -} -@case{bradshaw-v-us, - title = {Bradshaw v United States}, - cites = {231 Ct.Cl. 144 (1982) = 683 F.2d 365 (1982)} -} -@incollection{haley-land-lease, - title = {Japan's New Land and House Lease Law}, - author = {John Owen Haley}, - crossref = {policy-failure}, - pages = 149, -} -@book{policy-failure, - title = {Land Issues in Japan: A Policy Failure?}, - booktitle = {Land Issues in Japan: A Policy Failure?}, - year = 1992 -} -@article{appleyard-heed, - author = {Bryan Appleyard}, - title = {Why Major should heed the press}, - pages = 21, - journal = {The Independent}, - year = {7 jul 1995}, - place = {London} -} -@statute{sga, - title = {Sale of Goods Act}, - year = {1979}, - jurisdiction = {england} -} -@case{heap, - title = {Heap v Motorists' Advisory Agency Ltd}, - year = 1923, - journal = {KB}, - number = 1, - pages = 577 -} -@case{halsall-v-brizell, - title = {Halsall v Brizell}, - cites = {[1957] Ch 169 = [1957] 1 All ER 371} -} -\endinput -%% -%% End of file `camel.bib'. diff --git a/Master/texmf-dist/bibtex/bst/camel/law.bst b/Master/texmf-dist/bibtex/bst/camel/law.bst deleted file mode 100644 index 88d808d46f2..00000000000 --- a/Master/texmf-dist/bibtex/bst/camel/law.bst +++ /dev/null @@ -1,1685 +0,0 @@ -%% -%% 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'. diff --git a/Master/texmf-dist/doc/latex/camel/camel.dvi b/Master/texmf-dist/doc/latex/camel/camel.dvi Binary files differdeleted file mode 100644 index 43f67212d33..00000000000 --- a/Master/texmf-dist/doc/latex/camel/camel.dvi +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/camel/index.dvi b/Master/texmf-dist/doc/latex/camel/index.dvi Binary files differdeleted file mode 100644 index 3f2968776e5..00000000000 --- a/Master/texmf-dist/doc/latex/camel/index.dvi +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/camel/law.dvi b/Master/texmf-dist/doc/latex/camel/law.dvi Binary files differdeleted file mode 100644 index 03f987bf0b5..00000000000 --- a/Master/texmf-dist/doc/latex/camel/law.dvi +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/camel/sample.dvi b/Master/texmf-dist/doc/latex/camel/sample.dvi Binary files differdeleted file mode 100644 index 020f05e0484..00000000000 --- a/Master/texmf-dist/doc/latex/camel/sample.dvi +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/camel/sample.tex b/Master/texmf-dist/doc/latex/camel/sample.tex deleted file mode 100644 index 80157131e94..00000000000 --- a/Master/texmf-dist/doc/latex/camel/sample.tex +++ /dev/null @@ -1,128 +0,0 @@ -%% -%% This is file `sample.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% index.dtx (with options: `sample') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% You are *not* allowed to modify this file. -%% -%% You are *not* allowed to distribute this file. -%% For distribution of the original source see the terms -%% for copying and modification in the file index.dtx. -%% -%% \CheckSum{755} -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% latex sample.tex -%% makeindex sample -%% makeindex -o sample.and sample.adx -%% makeindex -o sample.nnd sample.ndx -%% makeindex -o sample.lnd sample.ldx -%% latex sample.tex - -\documentclass{book} -\usepackage{index} - -\listfiles - -\makeindex -\newindex{aut}{adx}{and}{Name Index} -\newindex{not}{ndx}{nnd}{List of Notation} - -\newindex[theenumi]{list}{ldx}{lnd}{Items} - -\shortindexingon - -\proofmodetrue - -\def\aindex{\index*[aut]} - -\begin{document} - -\tableofcontents - -\newpage - -\chapter{Here is a ^[aut]{chapter} title} - -\section{Section header\index[aut]{section}} - -Here is some text.\index{subject} - -Here is \index[not]{notation}some more \index[not]{sin@$\sin$} -text. - -\newpage - -Here is some ^{more} _[not]{notation} text. - -Here is yet more \aindex{text}. - -\section{Another Section header _[aut]{section2}} - -And here is some math: $x^1_b$. - -Here is an ^[aut]{index} entry \fbox{inside an -\index[not]{min@$\min$}fbox} - -\fbox{Here is an ^[aut]{entry} in a box.} - -\section{An indexed list environment} - -\begin{enumerate} - -\item -First item - -\item -Second item\index[list]{second item} - -\item -Third item - -\newpage - -\item -Fourth item - -\item -Fifth item\index[list]{fifth item} - -\item -Sixth item - -\end{enumerate} - -\printindex[not] - -\printindex[aut][Here is a prologue for the author index. -Note that it is set in a single column at the top of the -first page of the index.] - -\printindex[list] - -\printindex - -\end{document} -\endinput -%% -%% End of file `sample.tex'. diff --git a/Master/texmf-dist/doc/latex/camel/test.dvi b/Master/texmf-dist/doc/latex/camel/test.dvi Binary files differdeleted file mode 100644 index 21354977456..00000000000 --- a/Master/texmf-dist/doc/latex/camel/test.dvi +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/camel/test.tex b/Master/texmf-dist/doc/latex/camel/test.tex deleted file mode 100644 index a0e99effbed..00000000000 --- a/Master/texmf-dist/doc/latex/camel/test.tex +++ /dev/null @@ -1,144 +0,0 @@ -%% -%% This is file `test.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% camel.dtx (with options: `testtex') -%% -%% This file is part of the Camel package. -%% --------------------------------------- -%% This is a generated file. -%% -%% IMPORTANT NOTICE: -%% -%% You are not allowed to change this file. You may however copy -%% this file to a file with a different name and then change the -%% copy if (a) you do not charge for the modified code, (b) you -%% acknowledge Camel and its author(s) in the new file, if it -%% is distributed to others, and (c) you attach these same -%% conditions to the new file. -%% -%% The above conditions do not apply to the demonstration -%% file test.tex. -%% -%% 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 -%% -\documentclass{article} -\usepackage{camel} - -%\citationsubject[o=sta,i=stb]{statutes}{Statutory Materials} -%\citationsubject[o=sec,i=seb]{second}{Secondary Literature} -%\citationsubject[o=cas,i=cab]{case}{Cases} - -\begin{document} -\citationstyle{law} -\citationdata{camel} - -\section*{{\sc Camel} tests and examples\footnotemark{}{} } -\footnotetext{Note that, in addition to admiring the examples in - this document, you can tinker with it to produce different - kinds of bibliographies. See the comments in the file for - suggestions.} - -We currently have support for articles (including newspaper -articles), items in collections of -essays, books, sections of books, ephemeral booklets, masters theses, -Commonwealth, US and Japanese cases, and statutes from a few -jurisdictions. An example of each is given below, first without, -then with a pinpoint. This does not give a complete picture of -the `formatting tree', it''s just a sample. - -\begin{itemize} -\item Ordinary articles - \begin{itemize} - \item \source[s=second]{macauley} - \item \source[f,s=second]{macauley}[56] - \end{itemize} -\item Newspaper articles - \begin{itemize} - \item \source[s=second]{appleyard-heed} - \item \source[f,s=second]{appleyard-heed}[21] (A silly example, - since there's only one page to the piece!) - \end{itemize} -\item Articles in collections of essays - \begin{itemize} - \item \source[s=second]{haley-land-lease} - \item \source[f,s=second]{haley-land-lease}[152] - \end{itemize} -\item Books - \begin{itemize} - \item \source[f,s=second]{latex-companion} - \item \source[f,s=second]{latex-companion}[371] - \end{itemize} -\item Sections of books - \begin{itemize} - \item \source[f,s=second]{companion-bibs} - \item \source[f,s=second]{companion-bibs}[374-75] (The BibTeX{} - processing flow shown here is simplified for {\sc Camel} users) - \end{itemize} -\item Ephemeral booklets - \begin{itemize} - \item \source[f,s=second]{sansom-constitution} - \item \source[f,s=second]{sansom-constitution}[2] - \end{itemize} -\item Masters theses - \begin{itemize} - \item \source[f,s=second]{homma-derivative} - \item \source[f,s=second]{homma-derivative}[23] - \end{itemize} -\item Commonwealth law cases - \begin{itemize} - \item \source[f,s=case]{heap} - \item \source[f,s=case]{heap}[578]\footnote{Notice how the - pinpointed citation gives only as many parallel as are - specified in the pinpoint. Compare this with the next example.} - \end{itemize} -\item US law cases - \begin{itemize} - \item \source[f,s=case]{bradshaw-v-us} - \item \source[f,s=case]{bradshaw-v-us}[145=366] - \end{itemize} -\end{itemize} -Titles that end in a numeral are a special treat. {\sc Camel} -is not tricked by them. -\begin{itemize} - \item \source[s=statutes]{maki-constitution}[23] - \item \source[f,s=statutes]{maki-constitution} -\end{itemize} -Selective suppression of author, title, or the entire citation is -supported. -\begin{itemize} - \item \source[a,f,s=second]{homma-derivative} - \item \source[t,f,s=second]{homma-derivative} - \item \source[n,s=second]{homma-derivative} (invisible) -\end{itemize} - -% If you uncomment the \citationsubject lines above, -% you can comment out the `all' entry below, run -% makeindex in the appropriate way over the output -% files, uncomment the three special bibliography -% declarations below, and print a whole different sort -% of document. There are a few bugs in the way -% bibliographies are set up. Sorting them out will -% best be done once BibTeX 1.0 is available, since -% integrating with the new BibTeX will affect the same -% portions of the code. -\printbibliography[labels=false]{all} -%\printbibliography{statutes} -%\printbibliography{case} -%\printbibliography{second} -\end{document} -\endinput -%% -%% End of file `test.tex'. diff --git a/Master/texmf-dist/makeindex/camel/camel.ist b/Master/texmf-dist/makeindex/camel/camel.ist deleted file mode 100644 index d5a2b4ac8c4..00000000000 --- a/Master/texmf-dist/makeindex/camel/camel.ist +++ /dev/null @@ -1,65 +0,0 @@ -%% -%% This is file `camel.ist', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% camel.dtx (with options: `camelindex') -%% -%% This file is part of the Camel package. -%% --------------------------------------- -%% This is a generated file. -%% -%% IMPORTANT NOTICE: -%% -%% You are not allowed to change this file. You may however copy -%% this file to a file with a different name and then change the -%% copy if (a) you do not charge for the modified code, (b) you -%% acknowledge Camel and its author(s) in the new file, if it -%% is distributed to others, and (c) you attach these same -%% conditions to the new file. -%% -%% The above conditions do not apply to the demonstration -%% file test.tex. -%% -%% 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 -%% -actual '#' -quote '!' -level '>' -preamble -"\n" -postamble -"\n" -item_0 "\n" -item_x1 "\n \\subitem " -item_x2 "\n \\subsubitem " -delim_n "\$\\rightarrow\$" -delim_0 "\~\\camelfill" -delim_1 "\$\\camelarrow\$" -lethead_prefix "{\\bf\\hfil " -lethead_suffix "\\hfil}\\nopagebreak\n" -lethead_flag 1 -heading_prefix "{\\bf\\hfil " -heading_suffix "\\hfil}\\nopagebreak\n" -headings_flag 0 -\ifx\on@line\undefined - \def\on@line{ on input line \the\inputlineno} - \errhelp{Support for input line numbers has been added - to latex.tex <dec91>.^^J^^J% - Please update to a newer LaTeX release.} - \errmessage{Obsolete LaTeX release (older than Dec.91)} -\fi -\endinput -%% -%% End of file `camel.ist'. diff --git a/Master/texmf-dist/source/latex/camel/CATALOG b/Master/texmf-dist/source/latex/camel/CATALOG deleted file mode 100644 index 0e9bcf57396..00000000000 --- a/Master/texmf-dist/source/latex/camel/CATALOG +++ /dev/null @@ -1,15 +0,0 @@ -Name: camel -Problems-To: fb@soas.ac.uk -Author: Frank G Bennett, Jr -Version: 1.0r 1996/01/09 -Description: Camel is a style package for LaTeX2e that lays the - foundation for greatly improved handling of bibliographic - material. It is the only fully supported bibliography package to - offer support for legal citation styles, and the only system - within reach of handling other styles that require 'ibid.' and - the like. A programmer's library for BibTeX that includes - functions supporting streamlined entry of citation details - and dates is contained in the package. Treat this as ALPHA - software, but alpha software with a future. -Keywords: law, legal, lawyer, bibliography, BibTeX, - cross-referencing, EndNote, ProCite, Reference Manager, citations diff --git a/Master/texmf-dist/source/latex/camel/MANIFEST b/Master/texmf-dist/source/latex/camel/MANIFEST deleted file mode 100644 index b1f17e02279..00000000000 --- a/Master/texmf-dist/source/latex/camel/MANIFEST +++ /dev/null @@ -1,20 +0,0 @@ -9 January 1997 - -The full Camel package consists of the following -files: - - camel.dtx - camel.ins - law.dtx - law.ins - index.dtx (pre-release, by David M. Jones) - index.ins (pre-release, by David M. Jones) - bibtex.ch (sample change file for enlarging JBibTeX. - Use diff to identify changes specific to - normal, Occidental BibTeX.) - MANIFEST - README - CATALOG - -If all of these files are not available to you, contact -me on fb@soas.ac.uk. diff --git a/Master/texmf-dist/source/latex/camel/README b/Master/texmf-dist/source/latex/camel/README deleted file mode 100644 index 7cd1e1f76b2..00000000000 --- a/Master/texmf-dist/source/latex/camel/README +++ /dev/null @@ -1,87 +0,0 @@ -Last updated: 17 Feb 1997 - -Welcome to version 1.0t of camel.sty and its friends. Camel is a -LaTeX2e macro package that will, if all goes according to plan, -one day drastically simplify the typesetting of citations and -bibliographies in (potentially) a wide variety of styles and -formats. This release is a *prototype*, and should be treated -as ALPHA software; I hope that you will experiment with it and -send me your comments, but you should not assume that it is -perfect, and you should not assume that it will not change. - -Using Camel, citations are referred to in a way similar to that -used in `standard BibTeX', but with a number of significant -enhancements; citation tags can be used to generate subdivided -bibliographies, separate bibliographies for each subdivision of a -larger work are supported, as are in-footnote cross-referenced -citations, bibliographies indexed to the pages where citations to -the relevant work occur, and much else. This is also the only -supported LaTeX2e bibliography style that supports legal -citation styles (using the law.dtx module). The package also -provides genuinely helpful error messages and an extremely simple -syntax for adding details like page numbers and the like to -citation tags. - -To use Camel, you will need to fetch camel.dtx and its extractor, -camel.ins, and law.dtx with its extractor law.ins. You will also -need to fetch and extract index.dtx/index.ins, the (pre-release) -index support package for LaTeX2e by David M. Jones, and the -"keyval" package that can be found on CTAN in latex/packages/graphics. -To typeset the documentation (by running camel.dtx and law.dtx -themselves directly through LaTeX), you will need the array.sty -package. Also, and most important, you will need a BibTeX that -has a wizard-defined function space of over 7,000. The standard -BibTeX (with a function space of 3,000) is too small to handle -the .bst files used by the Camel style modules. - -*** Notes on version 1.0s *** - -In the past year there have been a few bug fixes in the 1.0r -code. Since some people are using the package (!), I'm -releasing these fixes as version 1.0s. The new release -includes a sample bibtex.ch file, based on jbibtex.ch (NOT -the usual bibtex.ch --- use only as a reference.) - -*** Notes on version 1.0r *** - -FOR USERS UPDATING THEIR CAMEL: In this version, I have fixed a -small bug in the @ARTICLE entry type in law.dtx, and have -cut out the code used to show case holdings, comments, questions -and fact patterns (a whip-round asking who wanted to preserve -these features received no response, so out they went). -I have also fixed a fatal bug in the code that handles pinpoints -in parallel citations. Please note that this release calls on -the new index.sty for LaTeX2e distributed by David Jones as the -index.dtx package. You will need this new version of index.sty -to run version 1.0q of Camel. The previous prerelease of that -file, 'indexdmj.sty' can be deleted from your system. Note that -you also do need the "keyval" package from CTAN. - -NOTE ON FUTURE CHANGES: This version (v1.0r) will is the last -of its kind --- but this does not mean the end of Camel. -Rather, it marks a new beginning. As many of you will know, -Oren Patashnik is at work on an upgrade of BibTeX to -version 1.0. As things look at present, the new BibTeX will -make a further rationalization of the structure of the Camel -code. Not only will this make the editing of styles easier, -but it will also increase the overall speed of processing -a document, and reduce the amount of memory required in LaTeX. - -On a rough guess, these changes will about double the size of -the (already large) BibTeX style file for legal citations, and -render about half of the existing LaTeX style code in Camel -redundant (sniff, sniff). The inputs --- your documents and -your bibliographies --- should work equally well with the new-style -package, but fairness dictates that I at least let folks know -what's going to happen. - -The most immediate effect of these plans is that I will do -nothing to enhance the existing code until BibTeX 1.0 comes -out. Given that Oren Patashnik has a large amount of work to -do on BibTeX, and given the scale of the changes contemplated -for Camel, this could all take awhile. So there you have it; -a curious form of `stability'. - -Have a nice ride! - -FB@soas.ac.uk diff --git a/Master/texmf-dist/source/latex/camel/bibtex.ch b/Master/texmf-dist/source/latex/camel/bibtex.ch deleted file mode 100644 index df54f2e2d69..00000000000 --- a/Master/texmf-dist/source/latex/camel/bibtex.ch +++ /dev/null @@ -1,768 +0,0 @@ -% Change file for BibTeX in C, originally by Howard Trickey, for -% Berkeley Unix. -% -% History: -% 05/28/84 Initial implementation, version 0.41 of BibTeX -% 07/01/84 Version 0.41a of BibTeX. -% 12/17/84 Version 0.97c of BibTeX. -% 02/12/85 Version 0.98c of BibTeX. -% 02/25/85 Newer version 0.98c of BibTeX. -% 03/25/85 Version 0.98f of BibTeX -% 05/23/85 Version 0.98i of BibTeX -% 02/11/88 Version 0.99b of BibTeX -% 04/04/88 Version 0.99c; converted for use with web2c (ETM). -% 11/30/89 Use FILENAMESIZE instead of 1024 (KB). -% 03/09/90 `int' is a bad variable name. -% (more recent changes in ../ChangeLog.W2C) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [1] banner -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@d banner=='This is BibTeX, Version 0.99c' {printed when the program starts} -@y -@d banner=='This is BibTeX, Version 0.99c' {more is printed later} -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [2] `term_in' and `term_out' are standard input and output. But -% there is a complication: BibTeX passes `term_out' to some routines as -% a var parameter. web2c turns a var parameter f into &f at the calling -% side -- and stdout is sometimes implemented as `&_iob[1]' or some -% such. An address of an address is invalid. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@d term_out == tty -@d term_in == tty -@y -@d term_out == standard_output -@d term_in == standard_input -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [4] Turn debug..gubed et al. into #ifdef's. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@d debug == @{ { remove the `|@{|' when debugging } -@d gubed == @t@>@} { remove the `|@}|' when debugging } -@f debug == begin -@f gubed == end -@# -@d stat == @{ { remove the `|@{|' when keeping statistics } -@d tats == @t@>@} { remove the `|@}|' when keeping statistics } -@f stat == begin -@f tats == end -@# -@d trace == @{ { remove the `|@{|' when in |trace| mode } -@d ecart == @t@>@} { remove the `|@}|' when in |trace| mode } -@f trace == begin -@f ecart == end -@y -@d debug == ifdef('DEBUG') -@d gubed == endif('DEBUG') -@f debug == begin -@f gubed == end -@# -@d stat == ifdef('STAT') -@d tats == endif('STAT') -@f stat==begin -@f tats==end -@# -@d trace == ifdef@&('TRACE') -@d ecart == endif@&('TRACE') -@f trace == begin -@f ecart == end -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [10] Don't print the banner unless verbose. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -print_ln(banner);@/ -@y -if verbose then begin - print (banner); - print_ln (version_string); -end; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [10] Possibly exit with bad status. It doesn't seem worth it to move -% the definitions of the |history| values to above this module; hence -% the 1. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -exit_program: -end. -@y -exit_program: -if (history > 1) then uexit (history); -end. -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [11] Remove compiler directives. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead} -@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging} -@y -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [13] Remove nonlocal goto. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x - goto exit_program; -@y - uexit (1); -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [14] Increase some constants. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@!buf_size=1000; {maximum number of characters in an input line (or string)} -@y -@!buf_size=3000; {maximum number of characters in an input line (or string)} -@z -@x -@!max_bib_files=20; {maximum number of \.{.bib} files allowed} -@y -@!max_bib_files=1000; {maximum number of \.{.bib} files allowed} -@z -@x -@!pool_size=65000; {maximum number of characters in strings} -@y -@!pool_size=512000; {maximum number of characters in strings} -@z -@x -@!max_strings=4000; {maximum number of strings, including pre-defined; - must be |<=hash_size|} -@y -@!max_strings=20000; {maximum number of strings, including pre-defined; - must be |<=hash_size|} -@z -@x -@!max_cites=750; {maximum number of distinct cite keys; must be - |<=max_strings|} -@y -@!max_cites=3000; {maximum number of distinct cite keys; must be - |<=max_strings|} -@z -@x -@!min_crossrefs=2; {minimum number of cross-refs required for automatic - |cite_list| inclusion} -@y -{|min_crossrefs| can be set at runtime now.} -@z -@x -@!wiz_fn_space=3000; {maximum amount of |wiz_defined|-function space} -@y -@!wiz_fn_space=10000; {maximum amount of |wiz_defined|-function space} -@z -@x -@!single_fn_space=100; {maximum amount for a single |wiz_defined|-function} -@y -@!single_fn_space=200; {maximum amount for a single |wiz_defined|-function} -@z -@x -@!max_ent_ints=3000; {maximum number of |int_entry_var|s - (entries $\times$ |int_entry_var|s)} -@y -@!max_ent_ints=25000; {maximum number of |int_entry_var|s - (entries $\times$ |int_entry_var|s)} -@z -@x -@!max_ent_strs=3000; {maximum number of |str_entry_var|s - (entries $\times$ |str_entry_var|s)} -@y -@!max_ent_strs=10000; {maximum number of |str_entry_var|s - (entries $\times$ |str_entry_var|s)} -@z -@x -@!max_fields=17250; {maximum number of fields (entries $\times$ fields, - about |23*max_cites| for consistency)} -@y -@!max_fields=69000; {maximum number of fields (entries $\times$ fields, - about |23*max_cites| for consistency)} -@z -@x -@d hash_size=5000 {must be |>= max_strings| and |>= hash_prime|} -@y -@d hash_size=21000 {must be |>= max_strings| and |>= hash_prime|} -@z -@x -@d hash_prime=4253 {a prime number about 85\% of |hash_size| and |>= 128| - and |< @t$2^{14}-2^6$@>|} -@y -@d hash_prime=16319 {a prime number about 85\% of |hash_size| and |>= 128| - and |< @t$2^{14}-2^6$@>|} -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [15] Use the system constant. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@d file_name_size=40 {file names shouldn't be longer than this} -@y -@d file_name_size == PATH_MAX -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [22, 23, 27, 28] Allow any character as input. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x [22] -@!ASCII_code=0..127; {seven-bit numbers} -@y -@!ASCII_code=0..255; {eight-bit numbers} -@z - -@x [23] -@d text_char == char {the data type of characters in text files} -@d first_text_char=0 {ordinal number of the smallest element of |text_char|} -@d last_text_char=127 {ordinal number of the largest element of |text_char|} - -@<Local variables for initialization@>= -i:0..last_text_char; {this is the first one declared} -@y -@d text_char == ASCII_code {the data type of characters in text files} -@d first_text_char=0 {ordinal number of the smallest element of |text_char|} -@d last_text_char=255 {ordinal number of the largest element of |text_char|} - -@<Local variables for initialization@>= -i:integer; -@z - -@x [27] -for i:=1 to @'37 do xchr[i]:=' '; -xchr[tab]:=chr(tab); -@y -for i:=0 to @'37 do xchr[i]:=chr(i); -for i:=@'177 to @'377 do xchr[i]:=chr(i); -@z - -@x [28] -for i:=first_text_char to last_text_char do xord[chr(i)]:=invalid_code; -for i:=1 to @'176 do xord[xchr[i]]:=i; -@y -for i:=first_text_char to last_text_char do xord[xchr[i]]:=i; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [32] Make RET a `white_space' character, so we won't choke on DOS -% files, which end in a CR/LF pair. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -lex_class[tab] := white_space; -@y -lex_class[tab] := white_space; -lex_class[13] := white_space; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [36] Define `alpha_file' in C. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@!alpha_file=packed file of text_char; {files that contain textual data} -@y -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [37] Can't do arithmetic with |file_name_size| any longer, sigh. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@!name_ptr:0..file_name_size+1; {index variable into |name_of_file|} -@y -@!name_ptr:integer; {index variable into |name_of_file|} -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [38] File opening. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -The \ph\ compiler with which the present version of \TeX\ was prepared has -extended the rules of \PASCAL\ in a very convenient way. To open file~|f|, -we can write -$$\vbox{\halign{#\hfil\qquad&#\hfil\cr -|reset(f,@t\\{name}@>,'/O')|&for input;\cr -|rewrite(f,@t\\{name}@>,'/O')|&for output.\cr}}$$ -The `\\{name}' parameter, which is of type `\ignorespaces|packed -array[@t\<\\{any}>@>] of text_char|', stands for the name of -the external file that is being opened for input or output. -Blank spaces that might appear in \\{name} are ignored. - -The `\.{/O}' parameter tells the operating system not to issue its own -error messages if something goes wrong. If a file of the specified name -cannot be found, or if such a file cannot be opened for some other reason -(e.g., someone may already be trying to write the same file), we will have -|@!erstat(f)<>0| after an unsuccessful |reset| or |rewrite|. This allows -\TeX\ to undertake appropriate corrective action. - -\TeX's file-opening procedures return |false| if no file identified by -|name_of_file| could be opened. - -@d reset_OK(#)==erstat(#)=0 -@d rewrite_OK(#)==erstat(#)=0 - -@<Procedures and functions for file-system interacting@>= -function erstat(var f:file):integer; extern; {in the runtime library} -@#@t\2@> -function a_open_in(var f:alpha_file):boolean; {open a text file for input} -begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f); -end; -@# -function a_open_out(var f:alpha_file):boolean; {open a text file for output} -begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f); -end; -@y -@ File opening will be done in C. -@d no_file_path = -1 -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [39] Do file closing in C. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@<Procedures and functions for file-system interacting@>= -procedure a_close(var f:alpha_file); {close a text file} -begin close(f); -end; -@y -File closing will be done in C, too. -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [47] web2c doesn't understand f^. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x - buffer[last]:=xord[f^]; - get(f); incr(last); - end; - get(f); -@y - buffer[last] := xord[getc (f)]; - incr (last); - end; - vgetc (f); {skip the eol} -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [77] The predefined string array starts at zero instead of one. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -for i:=1 to len do - buffer[i] := xord[pds[i]]; -@y -for i:=1 to len do - buffer[i] := xord[pds[i-1]]; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [97] Can't do this tangle-time arithmetic. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@!aux_name_length : 0..file_name_size+1; {\.{.aux} name sans extension} -@y -@!aux_name_length : integer; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [100] Reading the aux file name and command-line processing. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -This procedure consists of a loop that reads and processes a (nonnull) -\.{.aux} file name. It's this module and the next two that must be -changed on those systems using command-line arguments. Note: The -|term_out| and |term_in| files are system dependent. - -@<Procedures and functions for the reading and processing of input files@>= -procedure get_the_top_level_aux_file_name; -label aux_found,@!aux_not_found; -var @<Variables for possible command-line processing@>@/ -begin -check_cmnd_line := false; {many systems will change this} -loop - begin - if (check_cmnd_line) then - @<Process a possible command line@> - else - begin - write (term_out,'Please type input file name (no extension)--'); - if (eoln(term_in)) then {so the first |read| works} - read_ln (term_in); - aux_name_length := 0; - while (not eoln(term_in)) do - begin - if (aux_name_length = file_name_size) then - begin - while (not eoln(term_in)) do {discard the rest of the line} - get(term_in); - sam_you_made_the_file_name_too_long; - end; - incr(aux_name_length); - name_of_file[aux_name_length] := term_in^; - get(term_in); - end; - end; - @<Handle this \.{.aux} name@>; -aux_not_found: - check_cmnd_line := false; - end; -aux_found: {now we're ready to read the \.{.aux} file} -end; -@y -@<Procedures and functions for the reading and processing of input files@>= -procedure get_the_top_level_aux_file_name; -label aux_found,@!aux_not_found; -var @<Variables for possible command-line processing@>@/ -begin -loop - begin - {initialize the path variables} - set_paths (BIB_INPUT_PATH_BIT + BST_INPUT_PATH_BIT); - if (argc > 1) then - @<Process a possible command line@> - else begin - write (term_out,'Please type input file name (no extension)--'); - aux_name_length := 0; - while (not eoln(term_in)) do begin - if (aux_name_length = file_name_size) then begin - readln(term_in); - sam_you_made_the_file_name_too_long; - end; - name_of_file[aux_name_length+1] := getc(term_in); - incr(aux_name_length); - end; - if (eof(term_in)) then begin - writeln(term_out); - writeln(term_out, - 'Unexpected end of file on terminal---giving up!'); - uexit(1); - end; - readln(term_in); - end; - @<Handle this \.{.aux} name@>; -aux_not_found: - argc := 0; - end; -aux_found: {now we're ready to read the \.{.aux} file} -end; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [101] Don't need this variable; we use argc to check if we have a -% command line. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@<Variables for possible command-line processing@>= -@!check_cmnd_line : boolean; {|true| if we're to check the command line} -@y -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [102] Get the aux file name from the command line. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@<Process a possible command line@>= -begin -do_nothing; {the ``default system'' doesn't use the command line} -end -@y -@<Process a possible command line@>= -begin - if argc > n_options + arg_options + 3 - then begin - print ('Usage: bibtex '); - print ('[-verbose] '); - print ('[-min-crossrefs=<number>] '); - print_ln ('[<aux file>].'); -@.Usage: ...@> - uexit (1); - end; - - @<Initialize the option variables@>; - @<Parse arguments@>; - - argv (optind, name_of_file); - aux_name_length := 1; - while name_of_file[aux_name_length] <> ' ' - do incr (aux_name_length); - decr (aux_name_length); -end -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [106] Don't use a path to find the aux file. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -if (not a_open_in(cur_aux_file)) then - sam_you_made_the_file_name_wrong; -@y -if (not a_open_in(cur_aux_file,no_file_path)) then - sam_you_made_the_file_name_wrong; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [110] Be silent unless verbose. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -print ('The top-level auxiliary file: '); -print_aux_name; -@y -if verbose then begin - print ('The top-level auxiliary file: '); - print_aux_name; -end; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [123] Use BIBINPUTS to search for the .bib file. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -if (not a_open_in(cur_bib_file)) then - begin - add_area (s_bib_area); - if (not a_open_in(cur_bib_file)) then - open_bibdata_aux_err ('I couldn''t open database file '); - end; -@y -if (not a_open_in(cur_bib_file,BIB_INPUT_PATH)) then - open_bibdata_aux_err ('I couldn''t open database file '); -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [127] Use BSTINPUTS/TEXINPUTS to search for .bst files. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -add_extension (s_bst_extension); -if (not a_open_in(bst_file)) then - begin - add_area (s_bst_area); - if (not a_open_in(bst_file)) then - begin - print ('I couldn''t open style file '); - print_bst_name;@/ - bst_str := 0; {mark as unused again} - aux_err_return; - end; - end; -@y -add_extension (s_bst_extension); -if (not a_open_in(bst_file,BST_INPUT_PATH)) then - begin - print ('I couldn''t open style file '); - print_bst_name;@/ - bst_str := 0; {mark as unused again} - aux_err_return; - end; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [127] Be silent unless verbose. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -print ('The style file: '); -print_bst_name; -@y -if verbose then begin - print ('The style file: '); - print_bst_name; -end; -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [141] Don't use a path to search for subsidiary aux files, either. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -if (not a_open_in(cur_aux_file)) then -@y -if (not a_open_in(cur_aux_file, no_file_path)) then -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [151] This goto gets turned into a setjmp/longjmp by ./convert -- -% unfortunately, it is a nonlocal goto. ekrell@ulysses@att.com -% implemented the conversion. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -buf_ptr2 := last; {to get the first input line} -loop - begin - if (not eat_bst_white_space) then {the end of the \.{.bst} file} - goto bst_done; - get_bst_command_and_process; - end; -bst_done: a_close (bst_file); -@y -buf_ptr2 := last; {to get the first input line} -hack1; - begin - if (not eat_bst_white_space) then {the end of the \.{.bst} file} - hack2; - get_bst_command_and_process; - end; -bst_done: a_close (bst_file); -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [198] A variable named `int' is no good in C. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@<Procedures and functions for handling numbers, characters, and strings@>= -@y -@d int == the_int - -@<Procedures and functions for handling numbers, characters, and strings@>= -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [223] Be silent unless verbose. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x - print ('Database file #',bib_ptr+1:0,': '); - print_bib_name;@/ -@y - if verbose then begin - print ('Database file #',bib_ptr+1:0,': '); - print_bib_name; - end; -@z - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [388] bibtex.web has mutually exclusive tests here; Oren said he -% doesn't want to fix it until 1.0, since it's obviously of no practical -% import (or someone would have found it before GCC 2 did). Changing -% the second `and' to an `or' makes all but the last of multiple authors -% be omitted in the bbl file, so I simply removed the statement. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -while ((ex_buf_xptr < ex_buf_ptr) and - (lex_class[ex_buf[ex_buf_ptr]] = white_space) and - (lex_class[ex_buf[ex_buf_ptr]] = sep_char)) do - incr(ex_buf_xptr); {this removes leading stuff} -@y -@z - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% [467] System-dependent changes: option handling. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@x -@* System-dependent changes. -@^system dependencies@> -This section should be replaced, if necessary, by changes to the program -that are necessary to make \BibTeX\ work at a particular installation. -It is usually best to design your change file so that all changes to -previous sections preserve the section numbering; then everybody's version -will be consistent with the printed program. More extensive changes, -which introduce new sections, can be inserted here; then only the index -itself will get a new section number. -@y -@* System-dependent changes. We want to parse a Unix-style command line. -@^system dependencies@> - -This macro tests if its argument is the current option, as represented -by the index variable |option_index|. - -@d argument_is (#) == (strcmp (long_options[option_index].name, #) = 0) - -@<Parse arguments@> = -begin - @<Define the option table@>; - repeat - getopt_return_val := getopt_long_only (argc, gargv, '', long_options, - address_of_int (option_index)); - if getopt_return_val <> -1 - then begin - if getopt_return_val = "?" - then uexit (1); {|getopt| has already given an error message.} - - if argument_is ('min-crossrefs') - then begin - min_crossrefs := atoi (optarg); - end - - else - {It was just a flag; |getopt| has already done the assignment.} - do_nothing; - - end; - until getopt_return_val = -1; - - {Now |optind| is the index of first non-option on the command line.} -end - - -@ The array of information we pass in. The type |getopt_struct| is -defined in C, to avoid type clashes. We also need to know the return -value from getopt, and the index of the current option. - -@<Variables for possible command-line...@> = -@!long_options: array[0..n_options] of getopt_struct; -@!getopt_return_val: integer; -@!option_index: c_int_type; -@!current_option: 0..n_options; - -@ Here is the first of the options we allow. -@.-verbose@> - -@<Define the option...@> = -current_option := 0; -long_options[0].name := 'verbose'; -long_options[0].has_arg := 0; -long_options[0].flag := address_of_int (verbose); -long_options[0].val := 1; -incr (current_option); - -@ The global variable |verbose| determines whether or not we print -progress information. - -@<Glob...@> = -@!verbose: c_int_type; - -@ It starts off |false|. - -@<Initialize the option...@> = -verbose := false; - - -@ Here is an option to change the minimum number of cross-refs required -for automatic |cite_list| inclusion. -@.-min-crossrefs@> - -@<Define the option...@> = -long_options[current_option].name := 'min-crossrefs'; -long_options[current_option].has_arg := 1; -long_options[current_option].flag := 0; -long_options[current_option].val := 0; -incr (current_option); - -@ -@<Glob...@> = -@!min_crossrefs: integer; - -@ Set |min_crossrefs| to two by default, so we match the -documentation (\.{btxdoc.tex}). - -@<Initialize the option...@> = -min_crossrefs := 2; - - -@ An element with all zeros always ends the list. - -@<Define the option...@> = -long_options[current_option].name := 0; -long_options[current_option].has_arg := 0; -long_options[current_option].flag := 0; -long_options[current_option].val := 0; - - -@ Pascal compilers won't count the number of elements in an array -constant for us. This doesn't include the zero-element at the end, -because this array starts at index zero. - -@<Constants...@> = -@!n_options = 2; -@!arg_options = 1; -@z diff --git a/Master/texmf-dist/source/latex/camel/camel.dtx b/Master/texmf-dist/source/latex/camel/camel.dtx deleted file mode 100644 index a780437cb70..00000000000 --- a/Master/texmf-dist/source/latex/camel/camel.dtx +++ /dev/null @@ -1,5872 +0,0 @@ -% \iffalse -%<*driver> -\documentclass{ltxdoc} -\usepackage{camel} -\usepackage{array} -\pagenumbering{roman} - -\def\fileversion{1.0t} -\def\filedate{97/02/17} - -%\EnableCrossrefs -\DisableCrossrefs % Say \DisableCrossrefs if index is ready -\RecordChanges % Gather update information -\CodelineIndex % Index code by line number -%\OnlyDescription % comment out for implementation details -\begin{document} -\citationstyle{law} -\citationdata{camel} -\title{User's Guide to the {\sc Camel} Citator\thanks{% - This file is version number \fileversion{}. The - documentation was last revised on \filedate.}} -\author{Frank G. Bennett, Jr.\thanks{The text and source code - contained in this file are \copyright~1992--1995 by Frank G. - Bennett, Jr. This file can be freely distributed; the sole - condition of use is that acknowledgement to the author be - made in any published work produced using {\sc Camel}. The - author wishes to thank Pedro Aphalo, Steve Bellovin, George - Greenwade and Boris Pevzner and David Rhead for their helpful - comments on versions of \LexiTeX, the predecessor to {\sc - Camel}. In addition, David Rhead provided a mass of - information on bibliographic conventions, which was used in - shaping the options supported by this package. Gratitude is - also owed to Marcia Elliot and Yoshiko Makino, LL.B. - finalists in the Law Department of the School of Oriental and - African Studies in 1993 and 1994 respectively, who prepared - extended essays using early releases of \LexiTeX.}} - \maketitle - \DocInput{camel.dtx} -\end{document} -%</driver> -% \fi -% \CheckSum{3488} -% -%\iffalse -% -% Copyright (C) 1992-1995 by Frank Bennett. All rights reserved. -% -% IMPORTANT NOTICE: -% -% You are not allowed to change this file. You may however copy -% this file to a file with a different name and then change the -% copy if (a) you do not charge for the modified code, (b) you -% acknowledge Camel and its author(s) in the new file, if it -% is distributed to others, and (c) you 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 altogether more thrilling package, please contact me on -% fb@soas.ac.uk -% -%\fi -% -% -% \DoNotIndex{\@,\@@par,\@beginparpenalty,\@empty} -% \DoNotIndex{\@flushglue,\@gobble,\@input} -% \DoNotIndex{\@makefnmark,\@makeother,\@maketitle} -% \DoNotIndex{\@namedef,\@ne,\@spaces,\@tempa} -% \DoNotIndex{\@tempb,\@tempswafalse,\@tempswatrue} -% \DoNotIndex{\@thanks,\@thefnmark,\@topnum} -% \DoNotIndex{\@@,\@elt,\@forloop,\@fortmp,\@gtempa,\@totalleftmargin} -% \DoNotIndex{\",\/,\@ifundefined,\@nil,\@verbatim,\@vobeyspaces} -% \DoNotIndex{\|,\~,\ ,\active,\advance,\aftergroup,\begingroup,\bgroup} -% \DoNotIndex{\cal,\csname,\def,\documentstyle,\dospecials,\edef} -% \DoNotIndex{\egroup} -% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\endtrivlist} -% \DoNotIndex{\expandafter,\fi,\fnsymbol,\futurelet,\gdef,\global} -% \DoNotIndex{\hbox,\hss,\if,\if@inlabel,\if@tempswa,\if@twocolumn} -% \DoNotIndex{\ifcase} -% \DoNotIndex{\ifcat,\iffalse,\ifx,\ignorespaces,\index,\input,\item} -% \DoNotIndex{\jobname,\kern,\leavevmode,\leftskip,\let,\llap,\lower} -% \DoNotIndex{\m@ne,\next,\newpage,\nobreak,\noexpand,\nonfrenchspacing} -% \DoNotIndex{\obeylines,\or,\protect,\raggedleft,\rightskip,\rm,\sc} -% \DoNotIndex{\setbox,\setcounter,\small,\space,\string,\strut} -% \DoNotIndex{\strutbox} -% \DoNotIndex{\thefootnote,\thispagestyle,\topmargin,\trivlist,\tt} -% \DoNotIndex{\twocolumn,\typeout,\vss,\vtop,\xdef,\z@} -% \DoNotIndex{\,,\@bsphack,\@esphack,\@noligs,\@vobeyspaces,\@xverbatim} -% \DoNotIndex{\`,\catcode,\end,\escapechar,\frenchspacing,\glossary} -% \DoNotIndex{\hangindent,\hfil,\hfill,\hskip,\hspace,\ht,\it,\langle} -% \DoNotIndex{\leaders,\long,\makelabel,\marginpar,\markboth,\mathcode} -% \DoNotIndex{\mathsurround,\mbox,\newcount,\newdimen,\newskip} -% \DoNotIndex{\nopagebreak} -% \DoNotIndex{\parfillskip,\parindent,\parskip,\penalty,\raise,\rangle} -% \DoNotIndex{\section,\setlength,\TeX,\topsep,\underline,\unskip,\verb} -% \DoNotIndex{\vskip,\vspace,\widetilde,\\,\%,\@date,\@defpar} -% \DoNotIndex{\[,\{,\},\]} -% \DoNotIndex{\count@,\ifnum,\loop,\today,\uppercase,\uccode} -% \DoNotIndex{\baselineskip,\begin,\tw@} -% \DoNotIndex{\a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,\n,\o,\p,\q} -% \DoNotIndex{\r,\s,\t,\u,\v,\w,\x,\y,\z,\A,\B,\C,\D,\E,\F,\G,\H} -% \DoNotIndex{\I,\J,\K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z} -% \DoNotIndex{\1,\2,\3,\4,\5,\6,\7,\8,\9,\0} -% \DoNotIndex{\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_} -% \DoNotIndex{\discretionary,\immediate,\makeatletter,\makeatother} -% \DoNotIndex{\meaning,\newenvironment,\par,\relax,\renewenvironment} -% \DoNotIndex{\repeat,\scriptsize,\selectfont,\the,\undefined} -% \DoNotIndex{\arabic,\do,\makeindex,\null,\number,\show,\write,\@ehc} -% \DoNotIndex{\@author,\@ehc,\@ifstar,\@sanitize,\@title,\everypar} -% \DoNotIndex{\if@minipage,\if@restonecol,\ifeof,\ifmmode} -% \DoNotIndex{\lccode,\newtoks,\onecolumn,\openin,\p@,\SelfDocumenting} -% \DoNotIndex{\settowidth,\@resetonecoltrue,\@resetonecolfalse,\bf} -% \DoNotIndex{\clearpage,\closein,\lowercase,\@inlabelfalse} -% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault} -% \DoNotIndex{\bfdefault} -% \setcounter{StandardModuleDepth}{1} -% \MakeShortVerb{\"} -% -% -% \def\bs{\char`\\} -% \begin{abstract} -% \noindent This is the core -% documentation for {\sc Camel}, a \LaTeX{} macro package -% that drastically simplifies the typesetting of -% citations and bibliographies in a wide variety of styles and formats. -% {\sc Camel} is similar in look and feel to standard \BibTeX{}, -% but introduces a number of long-desired enhancements. -% When the document is printed, -% {\sc Camel} allows the generation of -% subdivided bibliographies, -% separate bibliographies for each subdivision -% of a larger work, in-footnote cross-referenced -% citations, bibliographies indexed to the pages where -% citations to the relevant work occur, and much else. This is -% the only fully supported bibliography package for \LaTeX{} that -% provides full support for legal citations. -% The package also provides genuinely helpful error messages -% and an extremely simple syntax for adding details like page -% numbers and the like to citation tags. -% {\sc Camel} provides the logical engine and -% skeleton macros that make these things possible; -% a separate style package is required to actually typeset documents. -% For an example of a working style -% package, see {\tt law.dtx} in the {\tt camel} -% subdirectory on CTAN. -% \end{abstract} -% -% -% \tableofcontents -% \newpage -% -% -% -% \bigskip -% \forcefootnotes -% \hfill {``Now comes the fun part.''}\par -% \smallskip -% {\hfill ---Donald Knuth}\source{knuth}[176].% -% -% \bigskip -% -% \section*{Preface to release 1.0} -% Welcome to {\sc Camel}, a comprehensive bibliography -% manager developed as a prototype citation engine -% for the \LaTeX3 project. -% The {\sc Camel} engine offers a highly flexible -% yet straightforward syntax for entering citation -% keys into a \LaTeX{} document. The {\sc Camel} engine -% is designed to support a wide range of -% citation styles. Documents prepared -% for {\sc Camel} can be converted into virtually any -% supported bibliography or citation style, usually by editing only -% a few toggles at the top of the document.\footnote{This is -% potentially exciting (he said), but as of this writing only one -% module --- {\tt law.dtx}, the legal citation module used for -% beta-testing the {\sc Camel} engine --- exists. Some followers -% of {\sc Camel} development have expressed serious interest in -% developing other modules, but I cannot make any promises -% about when additional styles will appear. I've done my work, -% it is now up to the wider world.} -% -% Within the \LaTeX3 project, an extensive -% survey of bibliographic styles was carried out by -% David Rhead. Pedro Aphalo, Task Coordinator -% for bibliographic support on the \LaTeX3 Project, -% first proposed adopting -% a unified syntax for all bibliographic -% styles. {\sc Camel} itself -% is the brainchild of Frank Bennett, and is -% based upon his earlier work on the \LexiTeX{} style -% engine for legal materials. -% This package completely supercedes \LexiTeX{}, and that -% earlier style package will no longer be supported. -% The new package should be referred to as -% ``the {\sc Camel} citator''.\footnote{% -% Why {\sc Camel}? -% The first point to make, I suppose, is that the {\sc Camel} -% citator has absolutely \textit{nothing} to do with -% \texttt{Perl}. I had never heard of \texttt{Perl} when {\sc -% Camel} development began, and scarcely knew anything about it -% by the time most of {\sc Camel} had been finished. I didn't -% even realize I was in Larry Wall's space when I used the -% \texttt{Perl} camel logo for the {\sc Camel} home page! -% -% That aside, I can offer several reasons for the name, -% and users may take their pick. -% The style operates by gathering citation details -% that it carries with it through the desert of plain -% text, until the bibliography engine reaches its oasis -% at document's end. Alternatively, in his daily work -% the author uses -% the multi-lingual enchancement of Emacs, -% which is called ``Mule''. It's nice for one critter to -% have the company of another in the stable. A third -% arbitrary explanation is that the Japanese word for -% ``camel'' is {\em rakuda}. These syllables, with a -% different intonation, mean ``dead easy''. Since the -% design goal of {\sc Camel} is to make bibliography -% management as easy, as fool-proof and as robust -% as possible, this cross-lingual pun seems fitting.} -% -% The core {\sc Camel} package provides hooks for the development of -% style options that satisfy all bibliographic requirements -% that have come to the attention of the \LaTeX3 bibliography -% team. -% The foundation -% has been laid, but much work remains to -% be done in drafting {\sc Camel} modules to meet -% all known bibliographic requirements in all fields -% (and in all languages) for which \LaTeX{} is used. -% This work will involve the drafting or modification -% of {\tt .bst} files in the reverse polish notation -% used by \BibTeX{}, and of {\sc Camel} style -% modules written in \TeX{}. If you want to contribute to -% a project that will dramatically enhance the -% utility of \LaTeX{} as an author's productivity tool, -% get involved! The -% developers' email addresses are as follows: -% -% \begin{itemize} -% \item Frank -% Bennett: {\tt fb@soas.ac.uk}. -% \item Pedro Aphalo: {\tt aphalo@cc.joensuu.fi}. -% \item David Rhead: {\tt David\_Rhead@vme.ccc.nottingham.ac.uk}. -% \end{itemize} -% -% A programmer's reference -% guide for drafting {\sc Camel} styles is included in this -% manual. -% Don't delay---start coding today. -% -% \newpage -% \pagenumbering{arabic} -% -% \section{Introduction} -% This guide explains the use of the {\sc Camel} Citator. -% It covers all commands available in the style. This should be -% the only user manual that you need to prepare a document for -% use with any {\sc Camel} bibliography style. -% The package provides eight commands, listed in the table at the -% bottom of this page. The opening commands may be combined in a -% variety of ways, but a typical document heading might look like -% this: -% -% \begin{quote} -% \begin{verbatim} -% \documentclass{article} -% \usepackage{camel} -% \citationsubject{english}{Materials in English} -% \citationsubject{german}{Materials in German} -% \begin{document} -% \citationstyle{law} -% \citationdata{gorp,slush,fodder} -% \forcefootnotes -% \end{verbatim} -% \end{quote} -% -% You should be careful to decide on the subject classification, -% if any, -% that you wish to apply to your citations, before you begin -% your writing. With that in hand, you can begin entering -% "\source" commands into the document, adjusting the style -% parameters at print time. A detailed description of command -% usage follows. Throughout this guide, it is assumed that -% the -% reader has a general familiarity with \BibTeX{} -% and its use in preparing bibliographies with -% standard-issue \LaTeX{}. If you need to learn more about -% \BibTeX, a number of excellent sources of information are -% available.\source{latex-book}, -% \source{latex-companion}, \source{oren-user} and -% \source{oren-hackers} The treatment given to the -% programming language tends to be quite brief, but you should -% not be put off by this; the language is, in fact, quite simple -% to use, and the {\sc Camel} programming library makes things -% even easier. -% -% \begin{table}[b] -% {\small -% \setlength{\extrarowheight}{3pt} -% \begin{tabular}{|lll|} -% \hline -% \multicolumn{3}{|c|}{\large\bf {\sc Camel} commands}\\\hline\hline -% "\citationsubject["\meta{options}"]{"\meta{nickname}"}{"\meta{heading text}"}" & optional & preamble \\ -% "\citationstyle{"\meta{style package name}"}" & required & -% doc top\\\hline -% "\citationdata{"\meta{bib1,bib2\ldots}"}" & alternative & -% doc top\\ -% "\bibliographymanager{"\meta{product name}"}" & alternative & -% doc top\\\hline -% "\forcefootnotes" & optional & doc top\\ -% "\newinterword{"\meta{nickname}"}{"\meta{text}"}" & optional & -% doc top\\ -% "\printbibliography{"\meta{nickname}"}" & optional & anywhere\\ -% "\source["\meta{options}"]{"\meta{nickname}"}["\meta{page numbers}"]" -% & n/a & anywhere\\\hline -% \end{tabular} -% } -% \end{table} -% -% \subsection{Commands} -% \DescribeMacro{\citationstyle} -% The "\citationstyle" command is used to tell both -% \BibTeX{} and the {\sc Camel} engine how your citations -% should be formatted; its argument is the name of a {\sc Camel} -% module (contained in a {\tt .cst}, a {\tt .cit} and a {\tt -% .bst} file) such as `{\tt law}'. -% In this respect, it is similar to -% a ``document class'', but for citations instead of whole -% documents. -% This declaration may be make more than once.\footnote{This -% feature (support for multiple citation styles in a single -% document) will be added after the release of \BibTeX~1.0.} -% -% \DescribeMacro{\citationdata} -% This command is used to indicate the ".bib" files -% from which citation entries should be drawn. -% As in the "\bibliography" command of standard -% \LaTeX{}, the "\citationdata" command -% takes one option, which is a comma-separated list -% of bibliographies for use in the documents. Each -% refers to a {\tt .bib} file, each of which should -% be in the path of your local \BibTeX{}. -% -% \DescribeMacro{\bibliographymanager} -% While we hope that you find \BibTeX{} the most satisfactory -% means of formatting your citations, you might prefer to use -% some other software product -% for the separate task of -% managing a large citation database. -% {\sc Camel} has been designed so that it can be used -% with a number of such utilities. If you are using an -% external bibiliography manager, you should declare -% the name of the package at the top of the document -% using the "\bibliographymanager" command. Supported -% managers, and their corresponding nicknames for this -% command, are: -% -% \begin{itemize} -% \item Reference Manager ({\tt referencemanager}) -% \item Papyrus ({\tt papyrus}) -% \item ProCite ({\tt procite}) -% \item EndNote ({\tt endnote}) -% \end{itemize} -% -% The details on how -% to join external bibliography managers with -% {\sc Camel} are -% below at page \pageref{processing:documents}. -% -% If you use the "\bibliographymanager" command, -% you should not use the "\citationdata" command. -% This is not felt to be a serious limitation; if you use a -% bibliography manager, you might as well put -% {\em all\/} of your citations into it anyway, and use -% it as the sole source of citations in your -% documents. -% -% \DescribeMacro{\citationsubject} -% You may wish to produce a bibliography classified -% into subheadings by subject or by type of -% material. To do this, place a set of "\citationsubject" -% commands at the top of your document, or after a -% "\printbibliography" command. Each command takes -% two mandatory arguments and one optional argument. The first -% mandatory argument indicates the nickname that you -% will use in your document to attach a citation to -% the category. The second is the section heading -% that you wish to see displayed for that section -% of the bibliography. -% -% The optional argument may be used for two purposes. First, you -% may want to further divide your bibliography into -% sub-subheadings. You can specify a such a subcategory by -% putting a "2" as the optional argument to the -% "\citationsubject" command. Otherwise, a first-level header is used. -% Where the "\printbibliography" command is issued, -% the parts and sub-parts of the bibiliography will be produced in the -% order in which they were declared. -% -% For some types of citation, you may wish to produce -% a table that shows more detail about citations made. -% With {\sc -% Camel}, simply add an optional argument to -% the "\citationsubject" command applicable to your desired table -% which includes an {\tt o=} argument of three letters (giving -% the extension of the raw data output file), and an {\tt i=} -% argument of three letters (giving the extension of the {\tt -% makeindex}-processed input file). Optionally, you may also -% include arguments of {\tt p} or {\tt P}. -% With {\tt p}, the output -% file will be passed the page or section numbers given in -% pinpoint arguments to the "\source" command. -% With {\tt P}, index-style page references to the main text are turned -% on. -% With or without the {\tt P} or {\tt p},\footnote{The syntax of these options is the same as for -% options to the {\tt\bs source} command, discussed above.} the -% export file should be processed with {\tt makeindex} using -% {\sc Camel}'s own "camel.ist" file to produce the -% import file. -% This table-creation feature exists principally for typesetting -% tables of statutes. -% -% \DescribeMacro{\forcefootnotes} -% If you are preparing a document that is to be, or may -% be, prepared with citations in footnotes at the bottom -% of the page, you can save yourself some typing (and -% make it easier to produce the same document in other -% formats) by using the "\forcefootnotes" command at -% the top of the document. In some styles this command -% has no effect since, for example, -% a footnote containing only -% ``[2]'' would look rather peculiar. -% -% \DescribeMacro{\newinterword} -% In a string citation, you may want to use a connecting -% word that is not already in {\sc Camel}'s internal list. -% You can add a word to this list with the "\newinterword" -% command. This command takes two mandatory arguments. -% The first is the nickname you wish to give to the -% word and its associated punctuation. The second is -% the text to be inserted when you use the new -% connecting word between two "\source" commands. -% -% The connecting word may appear either at the beginning -% of a citation string (as the argument to a -% {\tt !=} option in the first "\source" command of a -% string), or in the middle, between -% two citations. Two special characters are used to -% control the appearance of the word in these two -% positions. A leading punctuation mark should be -% preceded by a {\tt\string_} character. This will -% suppress such a punctuation mark, and the space -% following it, if the connecting word is used -% as a prefix to an initial citation in a string. -% The {\tt\string^} character should precede the -% first word of the phrase associated with the -% connecting word, and that character should be -% capitalized. The first character of the phrase will -% then be forced to lower case if the connecting word -% is used between two "\source" commands. -% -% The following examples may be useful for guidance: -% -% \begin{itemize} -% \item "\newinterword{cf}{_; ^C.f.~}" -% -% \item "\newinterword{see-generally}{_. ^See generally\ }" -% \end{itemize} -% -% \DescribeMacro{\printbibliography} -% Place a "\printbibliography" command in your document -% wherever you would like the bibliography to appear. -% The "\printbibliography" command takes one optional argument, -% "labels". In the "keyval=" syntax, this may be set to either -% {\tt labels=false} or {\tt labels=true}. This toggles the -% appearance of bracketed numerical or shorthand labels in front -% of each bibliography item. -% -% If no "\citationsubject" commands are used at the top of -% the document, "\printbibliography{all}" will produce -% a full bibliography of all references made in the -% document up to that point. If "\citationsubject" has been -% used, then "\printbibliography{all}" will produce the -% same bibliography, but classified by subject, with the headers -% specified in the "\citationsubject" commands at the top of the -% document. -% -% You may also specify a subject to the "\printbibliography" -% command, instead of "all". This will produce a bibliography -% formatted as requested in the "\citationsubject" command. Note -% that, if the "i=" and "o=" options are used with -% "\citationsubject", "makeindex" must be used to generate the -% input file that will be expected for that subject. Note also -% that such external tables will be ignored by -% "\printbibliography{all}" where citation subjects are used. -% -% -% \DescribeMacro{\source} -% The most common command for {\sc Camel} users is the "\source" -% command, which replaces the "\cite" command of standard \LaTeX. -% It is used to identify the citation in the {\tt .bib} data -% files, and to provide a logical description of any -% `fine-tuning' of the citation form that the user might desire. -% Because it is frequently used, and must be accessible to -% authors with more interest in the content of what they are -% writing than the inner workings of \LaTeX, much -% effort has gone into making the command as simple to use as -% possible. -% -% \subsubsection*{Options} -% The valid options that may be placed inside the -% first set of square braces are shown below. -% -% \medskip -% \label{sourceoptions} -% \newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp} -% {\hyphenpenalty=200\setlength{\extrarowheight}{3pt} -% \noindent\begin{tabular} -% {|>{\tt }r@{ --- } -% >{\small}p{4.4in}|}\hline -% \multicolumn{2}{|c|}{\large\bf Single character options}\\ -% \hline\hline -% a & Supress printing of author's name in the document.\\ -% t & Suppress printing of the title in the document.\\ -% l & Force automatically generated abbreviations to -% lower case.\\ -% n & Suppress printing of the citation in the document -% (equivalent to {\tt \char`\\nocite} in standard -% \LaTeX{}).\\ -% f & Force the full form of the citation to be printed -% in the document.\\ -% h & Suppress automated footnote generation and the use of -% interwords for the current and following citations. This -% option should not be used in the middle of a string of -% citations linked with interwords.\\\hline -% \multicolumn{2}{l}{}\\\hline -% \multicolumn{2}{|c|}{\large\bf String options}\\ -% \hline\hline -% s= & Associate the citation with the specified subject. -% This option can be freely specified, but only has -% significance when a classified bibliography is -% being produced. When these subject tags are being -% used for that purpose, they must be declared at -% the top of the document, and a given source must -% be associated with the same subject throughout -% the document; specifying a different subject -% from that used in the first use of the citation will -% produce an error message from \LaTeX{}.\\ -% v= & Give a volume number for use in the citation. -% {\tt BOOK} entries in a \BibTeX{} database -% may be given a volume number. Such citations are -% assumed to be multi-volume works, and a volume -% number should be supplied when citing them; the volume -% number given in a {\tt BOOK} entry itself ignored, and an -% error message will be produced if an explicit volume -% number is not given using this option.\\ -% != & Precede the citation with the interword given in -% the argument.\\\hline -% \end{tabular}} -% -% \medskip -% These options may be entered in the option braces -% in any order, -% with the single requirement that -% a comma must separate all options.\footnote{Separating -% commas are required from version 1.0r, because this -% is the syntax of the \texttt{keyval} package.} -% -% The number of possible citation forms that can -% be generated using these command options is -% very large, and varies from one style to another. -% The best way of familiarizing yourself with them -% is to finish reading the next section of this guide, -% and then do a little experimentation with the -% various options. This will serve you much better -% than a verbose set of illustrations here, which would -% not stick in the memory, would be difficult to use -% as a reference, and could not -% in any case cover all of the possibilities. -% -% The following -% citations are all valid: -% -% \begin{itemize} -% \item "\source[ats=school]{ucla}" -% \item "\source[av=8,t]{harvard}" -% \item "\source[s=town,nat]{oxford}" -% \end{itemize} -% -% A string of citations applying to a particular statement -% may be entered as follows: -% -% \begin{itemize} -% \item "\source["\meta{options}"]{"\meta{nickname}"}["\meta{page numbers}"]"\\ -% \meta{interword}\\ -% "\source["\meta{options}"]{"\meta{nickname}"}["\meta{page numbers}"]" -% \end{itemize} -% -% \subsubsection*{Keys} -% The key given in the squiggly braces should correspond -% to the key that identifies the entry in the \BibTeX{} -% or other database that you are using. If you have -% a series of citations to make, and do not need to -% give separate options to any of them, you can enter -% them as a comma-delimited string, in the following -% manner: -% -% \begin{quote} -% "\source[s=stooges]{joe,curly,moe}" -% \end{quote} -% -% -% \subsubsection*{Pinpoints} -% -% For most citations, pinpoint references are simply typed -% between the second pair of square braces, using -% normal punctuation marks ({\tt\ ,\ \& -\ }). Spacing -% is irrelevant, so long as the punctuation marks -% are entered. A valid simple -% pinpoint citation might look as follows: -% -% \begin{quote} -% "\source{major}[2, 7, 9 & 23]" -% \end{quote} -% -% In some -% very special situations, {\sc Camel} needs more information -% to handle pinpoint references correctly. -% Suppose -% you are entering a citation for a statute, and you intend -% to produce a table showing where references to each cited -% section of the statute are made in the text. If your -% citation includes references to more than one section of -% the statute, {\sc Camel} will produce a table entry -% for each cited section automatically. But what if you -% are citing a {\em range\/} of sections? {\sc Camel} -% cannot know whether the range is continuous, or has -% gaps in it where provisions have been repealed. -% You therefore need to tell {\sc Camel} explicitly about -% each section number---but you don't want the numbers -% to be printed in the text. To feed citation numbers -% to the table, but suppress printing in the document, -% separate the numbers to ``hidden'' from the rest -% with a ``fence'' in the form of the "|" character. -% A typical citation of this -% kind might look like this: -% -% \begin{quote} -% "\source{SaleofGoodsAct}[19-25 | 20, 21, 22, 23, 24]" -% \end{quote} -% -% There are two other situations, also related only to -% the production of tables, where special markings may -% need to be included in the pinpointing string. These -% are (a) where you want material to appear only in -% the text, and (b) where you want material to appear -% only in the table. The first case may arise where -% you are citing subsections of a statute. In this -% situation, you can enclose in {\tt \string^} characters -% any text that you want to withhold from the table. -% A simple citation of this kind might look as -% follows: -% -% \begin{quote} -% "\source{VehicleCode}[23(A)^(3)(a)(i)^]" -% \end{quote} -% -% Where material should appear only in the table, -% enclose that pinpoint material in {\tt\string_} -% characters. This might be necessary where, for -% example, you are citing two subsections of the same -% statute. An example might look as follows: -% -% \begin{quote} -% "\source{LawofPropertyAct}[70(1)(f) & _70(1)_(g)]" -%\end{quote} -% -% Finally, there is one more feature that applies only to -% `parallel citations' to law cases. If a law case to which you are -% referring is reported in more than one location (see below), -% and you want to give a pinpoint to -% each location, you can do so by using the the {\tt =} sign -% between the pinpoint strings. For example: -% -% \begin{quote} -% "\source{bloggvkermit}[20-25 = 125-26 ]" -% \end{quote} -% -% If more parallel pinpoints are given than exist in the -% \BibTeX{} entry for the case nicknames {\tt bloggvkermit}, the -% extra pinpoints will be ignored. Similarly, if you give fewer -% pinpoints than there are parallels in the \BibTeX{} entry, the -% portions of the entry with no matching pinpoints will be -% omitted. No warnings are issued, although they could be -% if there is a demand for it. -% -% \subsection{\BibTeX{} features} -% -% A number of enhancements for processing \BibTeX{} -% entries have been incorporated into the {\sc Camel} \BibTeX{} -% programmer's library. These enhancements are drawn upon by the -% {\tt law.bst} style, and should also be used by subsequent {\sc -% Camel} style modules. These features are described briefly -% here. Please see the \BibTeX{} documentation for more -% information on the format of \BibTeX{} entries et cetera. -% -% \subsubsection*{Cases} -% -% A new entry type, {\tt @CASE}, has been added. This entry type -% should be used for reported law cases. Although citation forms -% vary widely between jurisdictions, {\sc Camel} bases the -% formatting of the citation on the information contained in the -% citation, rather than a tag indicating the jurisdiction. -% -% A result of this approach is that there are no `required' -% fields in the usual sense that \BibTeX{} will complain if -% something is missing. Instead, is a set of -% `core' fields for each of three different formatting styles. -% For someone familiar with legal resources, this is actually -% quite intuitively straightforward. -% -% For reported U.S. law cases, the core fields are {\tt title}, {\tt volume}, -% {\tt journal}, {\tt pages} and {\tt year}. In addition, you -% may wish to specify {\tt court}.\footnote{This is not yet -% implemented, but can be and should be.} Procedural histories may not -% be represented in the \BibTeX{} entry. -% -% For reported Commonwealth cases, use {\tt number} instead of -% {\tt volume}. The effect of this will be to place the year at -% the front of the citation in square braces, with the {\tt -% number} and {\tt journal} following it. Again, you may specify -% {\tt court} optionally. -% -% For cases reported in ephemeral media such as newspapers, leave -% out {\tt volume} and {\tt number}, and give the full date in -% the {\tt year} field instead (see below for the formatting of -% dates). The formatting of the citation will adjust -% accordingly.\footnote{I'm not sure whether this works with -% parallels yet. If it doesn't but you need it to, let me know -% and I'll fix it.} -% -% For cases reported in jurisdictions such as Japan that refer to -% cases by date rather than title, use {\tt casedate}, {\tt -% court}, {\tt journal}, {\tt volume}, {\tt pages} and {\tt -% year}. Optionally, you may also wish to include {\tt divno} -% and {\tt division}, to specify the exact identity of the -% deciding court. -% -% \subsubsection*{Statutes} -% -% Support for statutes is still in its infancy. You need, at -% minimum, to enter {\tt title}, {\tt year} and {\tt -% jurisdiction}. Supported jurisdictions are {\tt japan}, {\tt -% singapore} and {\tt england}. -% -% \subsubsection*{Dates} -% -% The entry of dates has been considerably simplified in {\sc -% Camel} \BibTeX{} entries. Always use the {\tt year} field (or, -% if appropriate, the {\tt casedate} field). Months may be -% entered as numbers or as a three-character string. The following date -% forms are all valid: -% -% \begin{quote} -% \begin{verbatim} -% year = {10 jun 1995}, -% year = {jun 10 1995}, -% year = {jun 1995}, -% year = {1995}, -% year = {10/06/95}, -% \end{verbatim} -% \end{quote} -% -% \subsubsection*{Parallel citations} -% -% For {\tt @CASE} entries, it is possible to enter multiple citations in a -% single \BibTeX{} entry using a short form of citation in a -% field called {\tt cites}, separating entries with a {\tt =} -% character.\footnote{It actually does work. \source{halsall-v-brizell}.} -% There are several valid syntaxes for -% this field, which closely follow the citation format used in -% the Blue Book for the relevant sources. They are: -% -% \begin{quote} -% \begin{verbatim} -% cites = {[1995] 1 All ER 25 = [1995] 2 WLR 125}, -% cites = {123 Cal.3d 237 (1995) = 124 S.W.2d 235 (1995)}, -% \end{verbatim} -% \end{quote} -% -% You can string together an arbitrary number of parallel citations in -% this way.\footnote{Cross-references are complex to format, but -% they work correctly. \source{halsall-v-brizell}. In a competition for -% speed and accuracy between typists equipped with \LaTeX/{\sc -% Camel} and with WordPerfect, who do you reckon would win?} -% Be sure to read the notes on pinpointing, above, -% for details on how to specify pinpoint references to parallel -% citations. -% -% \subsection{Processing documents} -% -% \subsubsection*{Ordinary processing} -% -% For a simple document containing no cross-references -% other than those produced by {\sc Camel}, -% printing requires one run of \LaTeX{}, one run of -% \BibTeX{}, and a second run of \LaTeX{}. Because -% {\sc Camel} absorbs all citation information -% at the start of the document (at the point of the "\citationdata" -% or "\bibliographymanager" commands), there is no need for -% the third \LaTeX{} run required in the standard -% \LaTeX{} setup. You may, however, need additional -% runs of \LaTeX{} to resolve other cross-references -% in the document, or to work out misspellings and other -% errors. -% -% \subsubsection*{Producing tables} -% \label{processing:documents} -% When the "o=" and "i=" options are used for -% one or more declared citation subjects, those subjects -% will be excluded from the bibliography. Instead, -% {\sc Camel} will write an external table file according -% to the specifications given in the "\citationsubject" -% command. Any such files -% must then be processed into properly formatted -% lists using {\tt makeindex} before they will appear -% in the printed document.\footnote{The documentation for -% {\tt makeindex} will explain how it should be set -% up for your system. On a UNIX or DOS installation, -% the basic requirements are that the {\tt makeindex} -% program be in your search path, and that the appropriate -% environment variable (usually {\tt indexstyle}) be -% set---this tells {\tt makeindex} where to find the style -% files that tell it exactly how to format the finished -% table lists.} On a UNIX or DOS system you would type the -% following for a table declared with the export -% extension ".atb" and the input extension ".art": -% \begin{quote} -% \small -% {\tt makeindex -s camel.ist -o} \meta{file name}".art" \meta{file name}".atb" -% \end{quote} -% If the subject associated with this table is "article", -% the table can then be placed in the document -% for the next \LaTeX{} run using the -% command: -% -% \begin{itemize} -% \item "\printcitationtable{article}". -% \end{itemize} -% -% When the option "p" is used with the -% "\citationsubject" command and the "i=" and "o=" options, -% the table will include any section or other numbers -% given as optional arguments to "\source" commands in the -% document. Because "makeindex" sorts alphabetically, -% not numerically, the section numbers may be out of -% their proper order in the "makeindex"-processed file. -% This must be corrected by hand. -% -%\newpage -% \section{Notes for Implementors} -% -% \subsection{Getting started} -% -% The purpose of this section is to provide style designers -% with all of the information required to write a new -% bibliography style from scratch, drawing on the powerful -% facilities available in \BibTeX{} and the {\sc Camel} -% style engine.\footnote{As of this writing, however, I've not received -% any feedback on the whether this documentation is any -% use. If you are attempting to draft a style and feel -% at sea, \textit{complain to me}! It's the only way -% we can make things easier for the others.} Before you start, -% you should have a -% sound knowledge of \BibTeX{} primitives, and of the -% programmer's function library contained in the -% file {\tt camel.dtx}. A bibliography style consists of a -% {\tt .bst} file, a ".cst" file and a ".cit" file. -% The ".bst" file should produce entries suitable -% for digestion by {\sc Camel} for all of the \BibTeX{} -% entry types supported by the style. -% -% The modules of the {\sc Camel} system work -% together in an integrated fashion to format citations. -% Raw citation details are kept in {\tt .bib} databases. The -% function of the {\em Camel} system is to massage those details -% into formatted citations, and include them in appropriate -% locations in typeset pages. When a document invoking the {\sc -% Camel} package encounters a "\citationstyle" command, the -% relevant ".cst" and ".cit" files are loaded. A corresponding "\bibstyle" -% entry is also written on the {\tt .aux} file. A -% "\citationdata" command causes a relevant "\bibdata" command to -% be written there as well. If a "\bibliographymanager" -% declaration is used instead, a "\bibdata" entry calling on the -% file "camel.bib" is written to {\tt .aux}. -% When a "\source" command is -% encountered during processing, code contained in -% {\tt camel.sty} writes a "\citation" entry for that citation on -% the {\tt .aux} file. In this way, an orthodox set of entries -% and files for use with \BibTeX{} is generated. -% -% If an external bibliography manager is used, the file -% "camel.bib" must be converted into a valid {\tt .bib} file, -% using whatever tools for finding and replacing key entries the -% database manager has to offer. -% -% \BibTeX{} must then be run on the document. This reads the -% entries on the {\tt .aux} file, opens the {\tt .bib} databases, -% reads them, and writes the result of its ruminations on a {\tt -% .bbl} file. At this point, the operation of {\sc Camel} -% diverges sharply from that of conventional \LaTeX{} -% bibliography tools. With {\sc Camel}, \BibTeX{} is used to -% generate "\lexibib" entries on the {\tt .bbl} file. Such -% entries parse the citation into logical typesetting units, but -% the typefaces used within the units, and the punctuation that -% appears between them, is not determined by \BibTeX. The tasks -% of punctuation and typeface selection are carried out on the -% second run of \LaTeX{} on the document, using the details -% specified in the {\tt .cit} file for the {\sc Camel} citation style -% being used. -% -% It is worth spending some time pondering this programming flow; -% there are good reasons for spreading the formatting work -% over -% a number of different modules in this way, and it is important -% to understand the design before embarking on the drafting of a style. -% -% \subsection{The {\tt .cst} file} -% -% The ".cst" -% file should contain, at least, the following -% macros: -% -% \begin{description} -% \item[{\tt\bs @law@print}:] This is the macro that -% actually prints the citations in the document and in -% the bibliography. Its structure is discussed below -% in the commented code listing of the default -% "\@law@print" command, which draws on most of the -% conditional handles provided by {\sc Camel}. -% \item[{\tt\bs @law@wordlist}:] This is a list macro consisting -% of paired interword nicknames and corresponding punctuation/text -% sets. Possible changes you may wish to make to this -% file are discussed in the commented code description of -% this macro. -% \end{description} -% Additional macros (including re-definitions of -% the macros contained in the {\sc Camel} engine) -% may be included in the ".cst" file. Be sure to -% document your work, however; {\sc Camel} is among the -% more complex packages written for use with \TeX{}, -% and documentation is essential if problems that arise -% are to be sorted out quickly and efficiently. -% -% Concerning the "\@law@wordlist" macro, it is best to examine -% the existing macro in "law.dtx", and read the -% user documentation on the "\newinterword" command. -% With this information, you should be able to make -% any changes you require in the behaviour of the list -% to suit your new style. You should not omit items from -% the list---this is important to maintain compatibility -% between styles. You may want to add to the list, -% and this is welcomed---drop a note to Frank Bennett -% on "fb@soas.ac.uk" to assure that your new addition is -% incorporated into the "law.dtx" list, which is used as -% a model, so others will -% include it in their styles too. -% -% Drafting the "\@law@print" macro may be difficult to -% approach at first. If you examine the example in the -% "law.dtx" file, you may be somewhat intimidated by the -% size and complexity of the macro listed there. But in -% fact for most styles this macro should be reasonably simple -% to write; the "law.dtx" example is complex because it -% automates a very complex set of style rules applying to -% legal materials. -% -% Essentially, what "\@law@print" does is print a citation -% in a particular form according to a set of conditions -% that can be recognized from toggles in effect when -% the macro is run by the {\sc Camel} engine. The toggles -% that may be drawn upon are described here. For further -% information, study the example in "law.dtx"---bearing in -% mind that your own macro will probably be simpler to -% draft. -% -% \subsection{Toggles and hooks for the {\tt .cit} file} -% \def\lawtrue{{\tt true}\ } -% -%\subsubsection{Citation history} -%{\def\PrintDescribeMacro#1{\strut\MacroFont\bs #1\ } -%\DescribeMacro{if@law@firstuseofcite} -% This is \lawtrue during the first expansion of a citation -% nickname in the text. -% -%\DescribeMacro{if@justabove} -% This is set to \lawtrue where (a) the author, title, source, page -% and citation trailer are identical in the last citation used -% in a footnote and in the current citation, (b) the last -% citation used in a footnote was the only citation in that -% footnote, and (c) a pinpoint was not used in the previous citation -% or, if there was such a pinpoint, a pinpoint is also used in -% the current citation. -% -%\DescribeMacro{if@l@quiteexact} -% This is set to \lawtrue where (a) "\@law@justabove" is set \lawtrue -% and (b) a pinpoint was used in both citations, and (c) the -% pinpoints match exactly. -% -%\subsubsection{Formatting toggles} -% -%\DescribeMacro{if@law@printcite} -% If this is \lawtrue the citation should print. Otherwise it -% should not. It should also trigger suppression of footnote forcing. -% -%\DescribeMacro{if@law@printauthor} -% If this is \lawtrue the name of the author prints. -% -%\DescribeMacro{if@law@printtitle} -% If this is \lawtrue the title of the work prints. -% -%\DescribeMacro{if@law@longcite} -% If this is \lawtrue the citation should be printed in its full -% form. This is set \lawtrue by the "f" option to the "\source" command. -% } -%\subsubsection{typefaces} -% -%\DescribeMacro{\@ltok@authormainface} -% This is the typeface set in the {\tt .cit} file for author -% names. It, and all other "\@ltok@" control strings are token -% registers that must be expanded using "\the". -% -%\DescribeMacro{\@ltok@authoroptionface} -% This is the typeface selected by enclosing text in the author -% portion of the citation within "\\" commands in the current -% citation's type (i.e.~as defined in its "\newcitestyle" entry). -% -%\DescribeMacro{\@ltok@titlemainface} -% The typeface used for the title portion of the citation. -% -%\DescribeMacro{\@ltok@titleoptionface} -% The alternative "\\" typeface within the title argument to "\lexibib". -% -%\DescribeMacro{\@ltok@citefirstmainface} -% The typeface used for the source portion of the citation. -% -%\DescribeMacro{\@ltok@citefirstoptionface} -% The alternative for the source portion of the citation. -% -%\DescribeMacro{\@law@firstslash} -%\DescribeMacro{\@law@secondslash} -% These two commands should be defined as follows in your -% "\@law@print" command -% before citation elements are expanded. This could be done -% within {\sc Camel} itself, but this gives you a little more -% hands-on control in style design maybe. -% \begin{quote} -% "\def\@law@firstslash{\begingroup\def\\{\@law@secondslash}%"\\ -% "\the\ltokspecialface}%"\\ -% "\def\@law@secondslash{\endgroup\def\\{\@law@firstslash}}%"\\ -% "\def\\{\@law@firstslash}%" -% \end{quote} -% -%\subsubsection{Citation details} -% -%\DescribeMacro{\@ltok@whereitsat} -% This actually contains the text that is used to flag either a -% note or a page number (i.e.~"{\ note\ }" or "{\ page\ }"). -% This is used only where citation cross-referencing is required. -% -%\DescribeMacro{\@ltok@stylename} -% This stores the citation type used to declare the citation -% with "\lexibib". This is mainly used for internal purposes by -% {\sc Camel}, but if you're printing a style or proof sheet, or -% are just trying to debug a style, you -% may have a use for it. -% -%\DescribeMacro{\@ltok@nickname} -% This stores the nickname of the citation. -% -%\DescribeMacro{\@ltok@author} -% This stores the author portion of the citation. -% -%\DescribeMacro{\@ltok@name} -% This stores the title portion of the citation. -% -%\DescribeMacro{\@ltok@citefirst} -% This stores the source portion of the citation. -% -%\DescribeMacro{\@ltok@citepage} -% This stores the page number ({\em not\/} the pinpoint!) of the citation. -% -%\DescribeMacro{\@ltok@citelast} -% This stores the citation trailer. -% -%\DescribeMacro{\@ltok@pageorfootno} -% This stores either the page or the footnote number at which the -% citation first occurred. -% -%\subsubsection{Bridges} -% -%\DescribeMacro{\@ltok@atot} -% This contains the punctuation bridge, declared in the {\tt -% .cit} file for the current citation type, that is to be placed between the author and the -% title elements of the citation. -% -%\DescribeMacro{\@ltok@ttocone} -% This contains the bridge that is to be placed between the title -% and the source. -% -%\DescribeMacro{\@ltok@conetop} -% This contains the (singular) bridge that goes between the -% source and the page number. -% -%\DescribeMacro{\@ltok@conetopplural} -% This contains the alternative plural bridge that goes between -% the source and the page number. -% -%\DescribeMacro{\@ltok@ptop} -% This contains the bridge that goes between a page reference -% giving the location of an article, for example, and the -% pinpoint reference. -% -%\DescribeMacro{\@ltok@ptoctwo} -% This contains the bridge that goes between any page numbers and -% the citation trailer. -% -%\DescribeMacro{\@ltok@atbridge} -% This contains the bridge that goes between an abbreviated -% citation (i.e.~{\em Id.}\ or somesuch) and a pinpoint. -% -%\DescribeMacro{\@ltok@atbridgeplural} -% This contains the plural bridge for abbreviated citations. -% -%\subsubsection{Pinpoint printing} -% -%\DescribeMacro{\@law@barkill} -% The pinpoint information is contained in the token register -% "\@ltok@argtwo". To print the pinpoint, you should always use -% the following form, which will induce the correct behaviour of -% the string expansion engine within {\sc Camel}. -% -% \begin{quote} -% "\@law@barkill\the\@ltok@argtwo\relax" -% \end{quote} -% -% \subsection{The {\tt .cit} file} -% -% The ".cit" file should -% contain instances of the "\newcitestyle" command -% and associated arguments. This defines a {\sc Camel} -% style instance for each of the entry types supported -% by the style's ".bst" file. If you find it necessary to add -% a new entry type to the style defined in the {\tt .bst} -% file for your style, you must also define a {\sc Camel} -% style instance in the ".cit" file applying to -% this new entry type. -% -% \newpage -% The arguments to the "\newcitestyle" command -% have the functions described in the following footnoted -% illustration: -% -% \medskip -% {\small -% \newlength{\cardwidth} -% \setlength{\cardwidth}{\textwidth} -% \addtolength{\cardwidth}{-4\columnsep} -% \begin{tabular}{|c|} \hline -% \begin{minipage}{\cardwidth} -% \renewcommand{\thefootnote}{\alph{footnote}} -% {\tolerance=1500\raggedright -% "\newcitestyle{article"\footnotemark[1]"}%"\\ -% " {rsirsr"\footnotemark[2]"A"\footnotemark[3]"}%"\\ -% " {[a],\ "\footnotemark[4]"[t],\ "\footnotemark[4] -% "[c]\ "\footnotemark[4] -% "[p],\ "\footnotemark[4] -% "(pl),\ "\footnotemark[4] -% "[rp]\ "\footnotemark[4] -% "[e]:[id]\ at~"\footnotemark[4] -% "(pl)\ at~"\footnotemark[4] -% "[xrf]}%"\\ -% " {6}"\footnotemark[5]"%"\\ -% "{{#1}"\footnotemark[6]"{#2}"\footnotemark[6]% -% "{#3}"\footnotemark[6]"{#4}"\footnotemark[6]% -% "{#5}"\footnotemark[6]"{(#6)}"\footnotemark[6]"}%"}\\ -% \footnotetext[1]{This gives the name of the citation template to be generated.} -% \footnotetext[2]{The first part of this list of arguments consists always of exactly six -% letters: the first three pairs set the main and alternative typefaces for -% the author, title -% and first-cite-part portions of the citation. {\tt r}, {\tt s}, {\tt b} and -% {\tt i} select roman, small caps, boldface and italic type. -% These letter flags are not case sensitive. -% The alternative typefaces may then be specially selected in the text -% arguments to a citation using -% {\tt\string\\...\string\\}.} -% \footnotetext[3]{The last letter in this list sets the classification -% of citations declared with the resulting style macro. {\tt a}, {\tt b}, {\tt -% c} and {\tt s} will classify all citations generated by this -% citation template as being to articles, books, cases or statutes, -% respectively. This letter flag is not case sensitive.} -% \footnotetext[4]{These are the citation bridges that -% will be placed between the portions of the citation indicated. Two -% bridges, singular and plural, are given between {\tt [p]} -% (page) and -% {\tt [rp]} (reference page), and between {\tt [id]} ({\em id.} -% or {\em supra\/}) and {\tt [xrf]} (cross-reference).} -% \footnotetext[5]{This argument states how many arguments the finished citation -% template will accept. It must be a number between {\tt 1} and {\tt -% 6}.} -% \footnotetext[6]{Six pairs of matched braces must appear inside this -% argument. Any other than the first (which represents the citation -% nickname) may be left empty, but the bridges must of course take this -% into account. The number of arguments inserted here must correspond -% with the number stated on the line above.} -% \vspace{3pt} -% \end{minipage}\\ \hline -% \end{tabular}} -% -% \subsection{The {\tt .bst} file} -% \subsubsection{Entry types} -% Most of the work in drafting a new style is in writing entry -% type functions for inclusions in the {\tt .bst} file. This is, -% inevitably, an arduous task, because of the number of -% possibilities that must be covered. The task is made easier, -% however, by the {\tt .bst} file programming library contained in -% the file {\tt camel.dtx}. This library provides a set of -% functions for the manipulation of fields pushed onto the stack -% in the entry type functions themselves. This approach -% increases the transparency of your code, because you can see in -% the entry type function itself exactly what fields are being -% used, and what logical and formatting operations are being -% carried out on them. -% -% Using the library is highly recommended. If you find that -% you require functions that are not presently available in the -% library, you can make your solutions available to others by -% adhering to a few design guidelines, and passing the function -% on to {\tt fb@soas.ac.uk} for inclusion in the {\sc Camel} -% distribution. The guidelines are actually quite simple. No -% library function should directly manipulate a field, but should -% instead expect to find the field on the stack when it is -% invoked. No library function should make assumptions about the -% setting of variables; any parameters should also be passed to -% the stack before the library function is invoked. When -% finished, a library function should always leave a fixed number -% of items on the stack, in a fixed order. And a library -% function should not pass data to subsequent functions in the -% form of variables. Finally, a function -% should be documented concerning (a) the number of items it -% expects to find on the stack, and in what order, (b) the number -% of items it leaves on the stack, and in what order, and (c) the -% effect of any toggle strings that may be fed to the function. -% -% You may find it necessary, in drafting a function, to divide -% its operation into sub-functions. As between sub-functions, -% the ban on passing data through variables need not be followed, -% so long as the set of functions adheres to the rule. -% -% \subsubsection{About cross-referencing} -% About cross-referencing, Oren Patashnik wrote: -% \begin{quote} -% Now come the cross-referencing functions (these are invoked -% because one entry in the database file(s) cross-references -% another, by giving the other entry's database key in a -% "crossref" -% field). This feature allows one or more titled things that are -% part of a larger titled thing to cross-reference the larger -% thing. These styles allow for five posibilities: -% -% \begin{enumerate} -% \item an {\bf article} may cross-reference an {\bf article}; -% -% \item a cross-reference to a {\bf book} may be made in an -% entry for: -% -% \begin{enumerate} -% \item a {\bf book}; -% \item an {\bf inbook}; or -% \item an {\bf incollection}; and -% \end{enumerate} -% -% \item -% an {\bf inproceedings} may cross-reference a {\bf proceedings}. -% \end{enumerate} -% Each of -% these is explained in more detail later. -% \end{quote} -% -% This is the authoritative statement on the proper use of -% cross-referencing within a ".bib" file. The further comments I -% have to offer -% here are a non-authoritative gloss, but do accurately reflect -% the assumptions I made in writing the ".bst" code for the -% "law.dtx" file. -% -% \begin{description} -% \item[{\tt article}:] A cross-reference from one "article" -% entry to another may be used for special issues of a journal, -% such as those dedicated to a single topic. The referenced -% entry should include all details relevant to the issue as a -% whole, including "volume", "journal" and "booktitle" (this last -% for the name or topic description of a special issue), and -% "type" (this defaults to ``"Special issue"''). -% \item [{\tt book}:] This cross-reference is not recognized by -% the "law.dtx" style. It could logically be used for a series, -% but this is little trouble to type into the original "@book" -% entry itself, and a series is not something that should -% appear separately on the reference list. -%\item[{\tt inbook}:] This is used for cross-referencing a -% chapter or other subdivision within a work by a single author -% to that work. -%\item[{\tt incollection}:] This is used for cross-referencing a -% work by multiple authors. The typeface conventions used in the -% Blue Book style differ for "inbook" and "incollection" -% citations, as defined here, so this distinction should be -% honored in building a database. -%\item[{\tt inproceedings}:] This is used only cross-referencing -% articles appearing to a proceedings volume to that volume. -% \end{description} -% -% -%\StopEventually{\setcounter{IndexColumns}{2}\PrintIndex} -% -% \section{The Citation Engine: {\tt camel.sty}} -% -% \subsection{Initialization} -% \subsubsection{Hello!} -% To start things off on the right foot, we tell the world -% who we are. -% \begin{macrocode} -%<*lexitex> -\NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{camel} -[1997/02/17 v1.0t General bibliography engine (Frank Bennett)] -\@ifclassloaded{ltxdoc}{}{\RequirePackage{index}[1995/09/28]} -\RequirePackage{keyval}[1995/09/21] -\RequirePackage{overword} -% \end{macrocode} -% \subsubsection{Customizable text elements} -% \begin{macro}{\supra} -% The following definition specifies the string used to refer to -% a cite that occurs in a previous footnote, or in a preceding -% citation to the same source within the same footnote. It is -% not used in cross-referencing cases and statutes. The extra -% internal braces only serve to limit the scope of -% {\tt\string\em}. An italic space ("\/") is not added, since -% this might be followed by a period. -% \begin{macrocode} -\def\supra{, {\em supra}}% -% \end{macrocode} -% \end{macro} -% The {\tt\string\Id} macro defined here is used in referring to -% immediately preceding works, in the same or in a preceding -% footnote. If the context demands that {\em Id.} be lower case -% when it occurs, the user can switch it to lower case by entering -% {\tt\string\lowcase} immediately before an in-text citation -% declaration or citation nickname. The lower case macro thus -% invoked turns itself off after {\em id.} has printed, so no -% grouping is required. -% \begin{macrocode} -\def\Id{{\em\@law@lettercase Id.}}% -% \end{macrocode} -% These two tokens hold the text used to indicate the note or -% page number where a previous reference occurs. These are only -% used in short-form citations. -% \begin{macrocode} -\newtoks\@ltok@userconetop% -\newtoks\@ltok@userconetopplural% -\newtoks\@ltok@userptop% -\newtoks\@ltok@userptoctwo% -\newtoks\@ltok@useratbridge% -\newtoks\@ltok@useratbridgeplural% -\newtoks\@ltok@usercitefirst -\newtoks\@ltok@usercitepage -\newtoks\@ltok@usercitelast -\newtoks\@ltok@infoot \@ltok@infoot={\ note\ } -\newtoks\@ltok@onpage \@ltok@onpage={\ page\ } -% \end{macrocode} -% The following tokens are used in making proof sheets. -% Change the content of these to taste. -% \begin{macrocode} -\newtoks\@ltok@proofcitelast - \@ltok@proofcitelast{{Editor, publisher and stuff, 1994}} -\newtoks\@ltok@proofpage - \@ltok@proofpage{{12345}} -\newtoks\@ltok@proofciteone - \@ltok@proofciteone{{Source}} -\newtoks\@ltok@prooftitle - \@ltok@prooftitle{{Title of work}} -\newtoks\@ltok@proofauthor - \@ltok@proofauthor{{Author's name}} -% \end{macrocode} -% \subsubsection{User selectable switches} -% The Blue Book\source{bluebook}{} allows us to refer -% to statutes in a long form or a short form in subsequent -% references. The long form consists of the name of the Act (if -% any) plus its source details and the section number. The short -% form consists of the source details alone.\footnote{{\em See} -% \source{bluebook}[25].} -% I'm all in favour -% of saving ink; the default is for short form statute citations. -% You can have long form subsequent cites by setting -% "\statuteverboseon" at the top of your document. If you need -% some other form, let me know; statutes are complex, and rather -% than trying to do everything from the get-go, this really has -% to be demand led. -% \begin{macrocode} -\global\let\@law@delim\relax -\global\let\@law@pingroup\relax -\global\let\@law@pinstart\relax -\global\let\@law@pinend\relax -\newif\if@law@statuteverbose -\def\statuteverboseon{\@law@statuteverbosetrue} -\def\statuteverboseoff{\@law@statuteverbosefalse} -\statuteverboseoff -% \end{macrocode} -% \begin{macro}{\forcefootnotes} -% This fun little item is used to toggle the "\source" -% macros to create a footnote if none was typed literally -% into the text. Great finger-saver for shortie footnotes. -% Conceived on a whim, implementing this turned out to be -% non-trivial. I hope you find it useful! -% \begin{macrocode} -\newif\if@law@forcefootnotes -\def\forcefootnotes{\global\@law@forcefootnotestrue} -\def\noforcefootnotes{\global\@law@forcefootnotesfalse} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Shorthanding essentials} -% The following definitions are established as a means -% of cutting text using the "_", "^" and "|" characters. -% Although we make them active here, they are {\em not\/} -% read as active characters. {\sc Camel} should in no way -% interfere with styles that require these characters -% to be set active. The active characters created here -% are used only for ``internal purposes''. -% \begin{macrocode} -{ - \catcode`\_=13 - \catcode`\^=13 - \catcode`\|=13 - \gdef\@law@barkill{\def\@law@comma{, }% - \def\@law@ampersand{\ \& }% - \def\@law@dash{--}% - \def\@law@delim{}\def_##1_{}\def|##1\relax{}\def^{}}% - \gdef\@law@barnil{\def_{}\def^##1^{}\def|{}} - \gdef\@law@barinfull{\def^{}} - \gdef\@law@barinshort{\def^##1^{}} -} -% \end{macrocode} -% \begin{macrocode} -\def\bridges#1#2#3#4#5#6{% - \@ltok@userconetop{#1}% - \@ltok@userconetopplural{#2}% - \@ltok@userptop{#3}% - \@ltok@userptoctwo{#4}% - \@ltok@useratbridge{#5}% - \@ltok@useratbridgeplural{#6}% -} -% \end{macrocode} -% \subsubsection{Miscellaneous other macros} -% Sometimes it might be nice to avoid using {\tt--} for some -% reason, so a macro is defined here. Same thing for exclamation -% points. One possible use for the latter is to avoid errors -% when an exported table is sorted by {\tt makeindex}. -% \begin{macrocode} -\def\dash{--} -\def\exclaim{!}% -% \end{macrocode} -% The {\tt\string\Id} macro contains its own period. Therefore a -% period supplied by the user becomes redundant. This macro is -% redefined to gobble this extra period when necessary. -% \begin{macrocode} -\def\@law@gobble{} -\def\@law@argtwolist{} -% \end{macrocode} -% If you are into software history, you might -% have cause to refer to \LexiTeX, so -% its logo and the \LexiBib logo (also R.I.P.) are -% defined here. They are -% {\tt\string\protect}ed just like the \LaTeX\ logo. -% \begin{macrocode} -\def\p@LexiTeX{{\reset@font\rm\ \unskip\hbox{L% - \kern-.06em\hbox{\sc e}% - \kern-.05em\hbox{\sc x}% - \kern-.05em\lower.65ex\hbox{I}% - \kern-.18emT% - \kern-.1667em\lower.65ex\hbox{E}% - \kern-.125emX}}}% -\def\LexiTeX{\protect\p@LexiTeX}% -\def\p@LexiBib{{\reset@font\rm\ \unskip\hbox{L% - \kern-.06em\hbox{\sc e}% - \kern-.05em\hbox{\sc x}% - \kern-.05em\hbox{\sc i}% - \kern-.06em{\sc B}% - \kern-.05em\hbox{\sc i}% - \kern-.05em{\sc b}}}}% -\def\LexiBib{\protect\p@LexiBib}% -% \end{macrocode} -% \subsubsection{New environment} -% There is just one new environment in {\sc Camel}, and all it does -% is set the list-input toggle to true, so that input citations -% will feed into memory but not print. -% \begin{macrocode} -\newenvironment{lexilist}% -{\message{Loading citation data}\@law@listinputtingtrue}% - {\@law@listinputtingfalse} -% \end{macrocode} -% \subsubsection{Token registers} -% The following are used as temporary token registers in various -% places. -% \begin{macrocode} -\newtoks\@ltok@a -\newtoks\@ltok@b -\newtoks\@ltok@argtwo -\newtoks\@ltok@pagesstring -% \end{macrocode} -% The following token registers are used for temporary storage of -% typeface information. -% \begin{macrocode} -\newtoks\@ltok@authormainface -\newtoks\@ltok@authoroptionface -\newtoks\@ltok@titlemainface -\newtoks\@ltok@titleoptionface -\newtoks\@ltok@citefirstmainface -\newtoks\@ltok@citefirstoptionface -\newtoks\ltokspecialface -% \end{macrocode} -% One token register is needed to store the name of the current cite type -% (as declared using {\tt\string\newcitestyle} in the {\tt -% .cit} file). With this string in hand, all of the -% typeface and punctuation bridge information can be recovered -% for that type of citation. -% \begin{macrocode} -\newtoks\@ltok@citetype% -% \end{macrocode} -% Tokens to store info on whether a cite is in a footnote or in -% the main text, and the name of the cite style, in case we -% need it. -% \begin{macrocode} -\newtoks\@ltok@whereitsat -\newtoks\@ltok@stylename -% \end{macrocode} -% Ho-hum. Now we're going to need a bunch of token registers to -% stash the information for a cite. Token registers have to be -% used in processing, in order to provide expansion control. -% \begin{macrocode} -\newtoks\@ltok@nickname -\newtoks\@ltok@author -\newtoks\@ltok@name -\newtoks\@ltok@citefirst -\newtoks\@ltok@citepage -\newtoks\@ltok@citelast -\newtoks\@ltok@pageorfootno -\newtoks\@ltok@hereinafter -\newtoks\@ltok@bigsourcecite -\newtoks\@ltok@bigsourcepage -% \end{macrocode} -% We also need token registers for citation bridge information. -% \begin{macrocode} -\newtoks\@ltok@atot -\newtoks\@ltok@ttocone -\newtoks\@ltok@conetop -\newtoks\@ltok@conetopplural -\newtoks\@ltok@ptop -\newtoks\@ltok@ptoctwo -\newtoks\@ltok@atbridge -\newtoks\@ltok@atbridgeplural -% \end{macrocode} -% -% \begin{macrocode} -\newtoks\@ltok@plistmacro -% \end{macrocode} -% A counter is required to keep track of the number of cites in a -% footnote, and to store the number that occurred in the previous -% footnote. -% \begin{macrocode} -\newcounter{citesinfoot} -\newcounter{citeslastfoot} -\newcounter{law@paranormal} -\newcounter{law@parapin} -\newcounter{law@paracounter} -% \end{macrocode} -% \subsubsection{Peek-word-ahead macro} -% This macro will not work if it is placed after the -% string of "\newif"s below. I haven't a clue as to -% why. I'm leery of whether this will cause problems -% with other styles. If you have problems, contact -% me on "fb@soas.ac.uk". -% \subsubsection{If initializations} -% We need a toggle so we can turn the print routine on and off; -% this is necessary for list inputting, and for making phantom -% references to sources in order to handle weird citation forms. -% \begin{macrocode} -\newif\if@law@biblabels -\newif\if@law@usepages -\newif\if@law@table -\newif\if@law@usepinpoints -\newif\if@law@maketable -\newif\if@law@printcite -% \end{macrocode} -% The next one is used by the list-input environment. -% \begin{macrocode} -\newif\if@law@listinputting -\newif\if@law@bibentry -% \end{macrocode} -% We also need to know whether a citation is being used for -% the first time. In some styles, the first citation is treated -% specially. -% \begin{macrocode} -\newif\if@law@firstuseofcite -% \end{macrocode} -% The next if will be used to toggle the print routine between -% long and short citation forms. -% \begin{macrocode} -\newif\if@law@longcite -% \end{macrocode} -% This will tell us whether we are in a footnote or not. -% \begin{macrocode} -\newif\if@law@infoot -% \end{macrocode} -% The next "\if" will let us know if the same work was cited -% immediately before the current cite, and if so, whether -% we should pay any attention to a page reference, if given. -% These are adjusted by -% {\tt\string\law@justabovecheck}. -% \begin{macrocode} -\newif\if@justabove -\newif\if@l@quiteexact -% \end{macrocode} -% The next condition will control the way print output is done -% in short citation forms; it should set to false for articles -% and books, and to true for cases and statutes. -% \begin{macrocode} -\newif\if@nosupra -% \end{macrocode} -% The next is used to signal the presence of {\tt ++} -% as the argument linking a reference to a page/section number argument. -% This toggles plural bridges on, and -% tells the file output routine that, for statutes, each section number -% should be attached to a complete copy of the citation -% information. These copies are later reassembled in a set of -% table entries by {\tt makeindex}. -% \begin{macrocode} -\newif\if@law@printauthor% -\newif\if@law@printtitle% -\newif\if@law@requiresubjects% -\newif\if@law@subjectfound% -% \end{macrocode} -% \subsubsection{Macro initializations} -% The following is a grab-bag of small macros with -% simple functions. There is more to say about what -% other macros use them for than about they themselves, -% so I've put them in the front matter of the code. -% -% First is a little something to force a lowercase {\em id.} if -% necessary. The operation of {\tt\string\normcase} is -% obvious enough; it defines the case-switching macro -% to a no-op. \verb+\lowcase+ works by setting -% the case toggle to force a lowercase letter. The -% use of \verb+\aftergroup+ allows everything to be turned back -% on without losing the lowercase letter. This was -% designed by trial and error; there may be a better way. -% \begin{macrocode} -\def\normcase{\def\@law@lettercase{}} -\def\lowcase{\def\@law@lettercase##1{% - {\aftergroup\normcase\lowercase{##1}}}} -\normcase -% \end{macrocode} -% The following three definitions are used in preparing to -% print a citation using "\@law@print" and in printing -% pinpoint references, respectively. The first extracts -% a demand for plural bridges, if present. The second -% is a no-op. The third is the plural bridges flag itself. -% \begin{macrocode} -\def\@law@multicheck#1\@law@multiflag#2\query#3\end{#2}% -\def\@law@multiflag#1\query{}% -\def\@law@multiset{\global\@ltok@conetop\@ltok@conetopplural% - \global\@ltok@atbridge\@ltok@atbridgeplural} -% \end{macrocode} -% The "\newinterword" macro simple adds its arguments to the -% "\@law@wordlist" macro created by the {\sc Camel} style module -% (i.e.~the "*.cit" file). -% \begin{macrocode} -\def\newinterword{\begingroup\catcode`\_=13\catcode`\^=13% - \@law@newinterword} -\def\newinterword#1#2{\global\@ltok@a=\expandafter{\@law@wordlist}% - \global\@ltok@b={#1}\global\@ltok@c={#2}% - \xdef\@law@temp{\noexpand\\\noexpand{\the\@ltok@b\noexpand}% - \noexpand{\the\@ltok@c\noexpand}\the\@ltok@a}% - \global\let\@law@wordlist\@law@temp\endgroup} -% \end{macrocode} -% The {\sc Camel}{} nickname macros are now kept out of the name -% space by executing them via \verb+\csname\endcsname+, -% and adding a prefix that makes the macro inaccessible -% by direct reference within the document. This change -% was recommended by a user---sorry out there, I can't -% remember who! Note that any nickname can now contain -% numbers and other stuff, which is handy for cases, which -% should be organized according to deciding court and date. -% If in-text references are being "forced" into footnotes, -% the footnote toggles are set to true here; the footnote -% itself is created later, after any optional arguments have -% been gobbled. Note that footnote forcing will -% only take effect for "\source" citations, not for -% in-text declarations. We need a new counter for footnotes, -% so that we can keep track of footnote numbers while processing -% forced footnotes outside of the footnote environment. -% \begin{macrocode} -\newcount\c@law@footnote% -\def\volno{\message{(No volume for \the\@ltok@nickname)}}% -% \end{macrocode} -% -% \begin{macro}{\@law@getsubjectheader} -% This macro is used to grab the header appropriate to a given -% declared subject. The subjects, headers and other related -% information are kept in a single list macro for quick access. -% \begin{macrocode} -\def\@law@headersearchend{\camelrefname} -\def\@law@abandonheadersearch#1\@law@headersearchend{} -\def\@law@headersearch#1#2#3#4{% - \def\@law@temptwo{#1}% - \ifx\@law@temp\@law@temptwo% - \let\@law@headersearchend\relax% - \let\\=\@law@abandonheadersearch% - {}#3% - \fi} -\def\@law@getsubjectheader#1{% - {\def\@law@temp{#1}% - \let\\=\@law@headersearch\@law@subjectlist\@law@headersearchend}} -\let\@law@bibformatsearchend\relax -\def\@law@abandonbibformatsearch#1\@law@bibformatsearchend{} -\def\@law@bibformatsearch#1#2#3#4{% - \def\@law@temptwo{#1}% - \ifx\@law@temp\@law@temptwo% - \let\\=\@law@abandonbibformatsearch% - {}#4% - \fi} -\def\@law@getbibformat#1{% - {\def\@law@temp{#1}% - \let\\=\@law@bibformatsearch\@law@subjectlist\@law@bibformatsearchend}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@confirmsubject} -% This parser checks whether a given subject exists in -% the list of declared subjects. It takes no action, -% only issues a warning. -% \begin{macrocode} -\def\@law@subjectsearchend{% - \ifx\@law@citesubject\empty% - \@camel@error{No subject declared.^^J - After declaring a subject or subjects using - \string\citationsubject,^^J - you have neglected to give a subject (using the s= option)^^J - for one of your \string\source\space commands}\@ehc% - \else% - \@camel@error{Undeclared subject `\@law@citesubject'.^^J - An undeclared subject has been given as an argument to - a \string\source\space command.^^J You must first % - declare subjects using \string\citationsubject}\@ehc% - \fi} -\def\@law@abandonsubjectsearch#1\@law@subjectsearchend{} -\def\@law@subjectsearch#1#2#3#4{% - \def\@law@temptwo{#1}% - \ifx\@law@citesubject\@law@temptwo% - \let\@law@subjectsearchend\relax% - \let\\=\@law@abandonsubjectsearch% - \fi} -\def\@law@confirmsubject{% - {\let\\=\@law@subjectsearch\@law@subjectlist\@law@subjectsearchend}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@maybeaddcitesubject} -% This macro adds the nickname of the current citation to -% the list of nicknames under the current citation subject. -% It will only do this if the nickname does not already -% exist in the list. The effect is to keep the lists -% in citation order. Note that a citation may be -% listed under more than one citation subject. This may -% be useful, so it is not prevented. -% \begin{macrocode} -\def\@law@citesubjectcheckend{% - \expandafter\let\expandafter\@law@temptwo% - \csname @law@\@law@citesubject @citelist\endcsname% - \@ltok@a=\expandafter{\@law@temptwo}% - \expandafter\xdef% - \csname @law@\@law@citesubject @citelist\endcsname{% - \the\@ltok@a\noexpand\\% - \noexpand{\the\@ltok@nickname\noexpand}}} -\def\@law@abandoncitesubjectcheck#1\@law@citesubjectcheckend{} -\def\@law@citesubjectcheck#1{% - \def\@law@temptwo{#1}% - \ifx\@law@nickname\@law@temptwo% - \let\@law@citesubjectcheckend\relax% - \let\\=\@law@abandoncitesubjectcheck% - \fi} -\def\@law@maybeaddcitesubject{% - {\let\\=\@law@citesubjectcheck% - \csname @law@\@law@citesubject @citelist\endcsname% - \@law@citesubjectcheckend}} -% \end{macrocode} -% \end{macro} -% There are to be three sets of specialized parsing macros in LexiTeX, all -% three of which are used on the options to the "\source" -% command. One parser reads a -% list of options. The second reads a comma, {\tt\&}, and {\tt-} -% delimited list and writes the contents as a macro argument. The -% third reads the same comma, {\tt\&} and {\tt-} delimited list and -% prints it directly on the output after a slight amount of -% formatting work. -% \begin{macro}{\@law@plone} -% Does a comparison, executes the -% associated option if there is a match. -% \begin{macrocode} -%<+oldparse>\def\@law@plone#1#2{\def\@law@listitem{#1}% -%<+oldparse> \ifx\@law@optionitem\@law@listitem #2% -%<+oldparse> \let\\=\@law@finish\fi} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@end} -% The internal ending character is also common to all parsers. -% \begin{macrocode} -\def\@law@end{,} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@finish} -% If there is a match, we want to ignore the rest of the list. -% This is macro is defined and ``kept on the shelf'' until such -% time as we need to cut off the rest of the executable list -% macro below. -% \begin{macrocode} -%<+oldparse>\def\@law@finish#1\@law@nomatch{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@sourceoptionlist} -% At the cost (in the short term) of abandoning helpful error -% messages, from version 1.0r, we use the "keyval" package -% by David Carlisle for all parsing except page numbers. -% \begin{macrocode} -\define@key{cameloptions}{a}[F]{\global\@law@printauthorfalse}% -\define@key{cameloptions}{t}[F]{\global\@law@printtitlefalse}% -\define@key{cameloptions}{n}[F]{\global\@law@printcitefalse}% -\define@key{cameloptions}{l}[F]{\message{\lowcase}}% -\define@key{cameloptions}{f}[T]{\global\@law@longcitetrue}% -\define@key{cameloptions}{b}[T]{\global\@law@bibentrytrue\global\@law@longcitetrue}% -\define@key{cameloptions}{Z}{}% -\define@key{cameloptions}{s}{\if@law@requiresubjects% - \gdef\@law@citesubject{#1}% - \fi}% -\define@key{cameloptions}{v}{\gdef\volno{#1}}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@@parse} -% \begin{macro}{\@law@parse} -% Now comes the fun bit. Control is passed back and forth -% between "\@law@parse" and "\@@parse", with the behaviour of those -% functions altering depending on what is chewed up into them. -% Amazingly enough, it works. Whatta concept. -% \begin{macrocode} -\def\@@parse{\@law@parse} -\let\@law@parse\@law@parseplain -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\@law@alone} -% A copy of "\@law@plone". Serves same function. -% \begin{macrocode} -\def\@law@alone#1#2{\def\@law@allistitem{#1}% - \ifx\@law@alitem\@law@allistitem #2% - \let\\=\@law@alfinish\fi} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@alnomatch} -% We don't care what goes into this field, so there is no error -% message from the parser. -% \begin{macrocode} -\def\@law@alfinish#1\@law@alnomatch{\@law@alnomatch} -\def\@law@alnomatch{% - \global\@ltok@a=\expandafter{\@law@alitem}% - \xdef\@law@temp{\the\@ltok@argtwo\the\@ltok@a}% - \global\@ltok@argtwo=\expandafter{\@law@temp}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@allist} -% The list of options is simple and expansible. The syntax of -% the last two -% lines is required if everything is to work as expected. -% The items in the help message should probably be -% drawn from here, to provide a hook for expansion -% if other styles want to tinker with the options to -% "\source". -% \begin{macrocode} -\gdef\@law@allist{% - \\{&}{\gdef\@law@alitem{\@law@delim% - \@law@multiflag\@law@multiset\query% - \@law@ampersand}}% - \\{=}{\gdef\@law@alitem{\@law@delim% - \@law@pinend% - \@law@pingroup% - \@law@pinstart}% - \addtocounter{law@parapin}{1}}% - \\{-}{\gdef\@law@alitem{\@law@delim - \@law@multiflag\@law@multiset\query% - \@law@dash}}% - \\{,}{\gdef\@law@alitem{}% - \let\@law@parse\@law@alparsesavecomma}% - \\{_}{\@law@get@ul}% - \\{^}{\@law@get@carat}% - \\{|}{\@law@get@bar}% - \@law@alnomatch} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@get@ul} -% \begin{macro}{\@law@getcarat} -% \begin{macro}{\@law@getbar} -% The purpose of the following is to place {\em active\/} -% versions of the special marking characters on the stack. -% Note that the characters need not be active when read; -% they are replaced with active versions of the characters -% by this routine. Active characters are sent to the stack -% rather than control strings because they do not swallow -% following space (possibly not important), and because -% this made the whole thing easier to follow in the -% debugging process. -% \begin{macrocode} -{\catcode`\_=13\catcode`\^=13\catcode`\|=13% - \gdef\@law@get@ul{\gdef\@law@alitem{_}}% - \gdef\@law@get@carat{\gdef\@law@alitem{^}}% - \gdef\@law@get@bar{\gdef\@law@alitem{\@law@delim|}}% -} -\gdef\@law@finishargtwo{% - \global\@ltok@a={\@law@pingroup\@law@pinstart}% - \xdef\@law@temp{\the\@ltok@a\the\@ltok@argtwo}% - \global\@ltok@argtwo=\expandafter{\@law@temp}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\@law@alparsesavecomma} -% \begin{macro}{\@law@alparseplain} -% These parsers are switched in as appropriate. The first -% checks to see if the end of the string for parsing has -% been reached. The second cycles a comparison. -% \begin{macrocode} -\gdef\@law@alparsesavecomma{\@ifnextchar,% - {\gdef\@law@alitem{\@law@delim\@law@pinend}\@law@alnomatch% - \expandafter\@law@finishargtwo% - \@gobble}% - {\gdef\@law@alitem{\@law@delim% - \@law@multiflag\@law@multiset\query% - \@law@comma}% - \@law@alnomatch% - \let\@law@parse=\@law@alparseplain\@@parse}} -\def\@law@alparseplain#1{% - \let\@law@nomatch=\@law@alnomatch% - \gdef\@law@alitem{#1}\let\\=\@law@alone\@law@allist\@@parse} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\@law@scanlist} -% This macro is defined and kept on the shelf as a -% definition of "\\" that checks through the list -% of paired aliases and associated text. If it finds -% a match, it gives the text one level of expansion, -% to fix the current definition of "_" and "^". -% This allows one entry to serve both between citations, -% and at the start of a citation string. In addition -% to these macros, a "\@law@wordlist" macro must be -% defined in the ".cst" file used with {\sc Camel}. -% \begin{macrocode} -\def\@law@scanlist#1#2{\long\def\@law@temp{#1}% - \@ltok@a={#2}% - \ifx\@law@temp\@overword\xdef\@SBSword{{\noexpand\em \the\@ltok@a}}% - \let\\=\@law@finish\fi} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\def\@law@wlnomatch{\message{^^J^^J% - There is an unregistered inter-citation word (\@overword) on - line no \the\inputlineno. See the LexiTeX documentation - for more information. Please email fb@soas.ac.uk if - you want a word added to the inter-citation list.}} -% \end{macrocode} -% \begin{macro}{\@law@checkins} -% This macro works with the "\@ifoverword" macro; it checks -% the contents of the "\@overword" macro defined during -% the leap, to see if it corresponds to anything in a list -% of aliases. The alias list could be defined as a set -% of prefixed macros (to speed things up), or as a -% single list macro (to conserve string space). I have -% adopted the latter strategy. If anyone feels strongly -% that speed is more important, or that somehow the -% integrity of \TeX{} demands that macros be used, -% it's not much of a job to change things; be my -% guest. -% \begin{macrocode} -{\catcode`\_=\active% - \catcode`\^=\active% -\gdef\@law@checkins{% - \def^##1{\lowercase{##1}}\def_##1{{\em{##1}}}% - \let\@law@tempthree=\\% - \let\@law@nomatch=\@law@wlnomatch% - \let\\=\@law@scanlist\@law@wordlist% - \let\\=\@law@tempthree} -\gdef\@law@checkpre{% - \let\@law@tempthree=\\% - \let^\relax\let_\@gobble% - \let\@law@nomatch=\@law@wlnomatch% - \let\\=\@law@scanlist\@law@wordlist% - \let\\=\@law@tempthree} -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\source} -% The front end of the "\source" command is very much -% {\em \`a la} typical LaTeX optional command definition stuff. -% We just carry things a little further because there are -% two possible options to the "\source" command. -% \begin{macrocode} -\gdef\source{% - \if@law@requiresubjects% - \gdef\@law@citesubject{}% - \fi% - \@law@printcitetrue% - \@law@printauthortrue% - \@law@printtitletrue% - \setcounter{law@parapin}{0}% - \setcounter{law@paracounter}{0}% - \@ifnextchar[{\@lexicite}{\@lexicite[]}} -\def\@lexicite[#1]#2{\@ifnextcharcareful[{% - \addtocounter{law@parapin}{1}\@@lexicite{#1}{#2}}% - {\@@lexicitenobrace{#1}{#2}}} -% \end{macrocode} -% Once we've gathered up any optional arguments, it's time -% to use the "\@ifoverword" command. If we find a "\source" -% command after the next word, we stash the current cite, -% we check the word separating the two "\source" commands -% against an internal list, return the result to -% "\@SBSword", and push the raw citation details and -% the "@SBSword" bridge onto a temporary stack. -% Otherwise, we clear the "\@SBSword", push the -% current cite details, dump the stack, and -% put the word we found, together with any separating -% space, back on the output stream. -% \begin{macrocode} -\def\@ifnextcharcareful#1#2#3{% - \gdef\@prenextcharspace{}% - \let\reserved@e=#1\def\reserved@a{#2}\def\reserved@b{#3}\futurelet - \reserved@c\@ifnchcareful} -\def\@ifnchcareful{\ifx \reserved@c \@sptoken \let\reserved@d\@xifnchcareful - \else \ifx \reserved@c \reserved@e\let\reserved@d\reserved@a\else - \let\reserved@d\reserved@b\fi - \fi \reserved@d} -\def\:{\@xifnchcareful} -\expandafter\def\: {% - \gdef\@prenextcharspace{ }\futurelet\reserved@c\@ifnch} -\def\@@lexicite#1#2[#3]{% - \@ifoverword\source% - {\@law@checkins\@@@lexicite{#1}{#2}{#3}}% - {\gdef\@SBSword{}\@@@lexicite{#1}{#2}{#3}% - \@law@citedump{}% - \@preoverwordspace% - \expandafter\@law@gobble% - \@overword{} }% - {\gdef\@SBSword{}\@@@lexicite{#1}{#2}{#3}% - \@law@citedump{}% - \@preoverwordspace% - \expandafter\@law@gobble% - \@overword{} }} -\def\@@lexicitenobrace#1#2{% - \@ifoverword\source{\@law@checkins\@@@lexicite% - {#1}{#2}{}}% - {\gdef\@SBSword{}\@@@lexicite% - {#1}{#2}{}% - \@law@citedump{}% - \@prenextcharspace% - \expandafter\@law@gobble% - \@overword{} } - {\gdef\@SBSword{}\@@@lexicite% - {#1}{#2}{}% - \@law@citedump{}% - \@prenextcharspace% - \expandafter\@law@gobble% - \@overword{} }} -% \end{macrocode} -% To push citation details, we use a token assignment with -% "\expandafter", then an "\edef" of the register contents -% to get one level of expansion into a macro. -% \begin{macrocode} -\def\@law@citestack{}% -\gdef\@SBSword{}% -\def\@@@lexicite#1#2#3{% - \@ltok@a=\expandafter{\@law@citestack}% - \@ltok@b={\@realcite{#1}{#2}{#3}}% - \@ltok@c=\expandafter{\@SBSword}% - \edef\@law@citestack{\the\@ltok@a\the\@ltok@b\the\@ltok@c}} -% \end{macrocode} -% \begin{macro}{\footnote} -% We need a flag to tell us whether we are in a footnote. -% This allows us to prevent footnote forcing if we're -% {\em already} in a footnote. \LaTeX{} itself should -% probably take care of this, but for now we need to -% give it -% a helping hand by reinvoking the critical command with -% Apologies to the \LaTeX3 team and everything, but I -% really truly do need these hooks. -% -% Some thoughts on the tracking of previous citations. This -% is hardly transparent, and even I the author have trouble -% following it. Something for tidying up someday. -% Currentcite is set only at the top of a footnote. The idea -% apparently is that we need to remember the last cite in the -% last footnote always. Problems to watch here are (a) what -% happens for the very first footnote, and (b) what happens in -% the main text. There should probably be complete isolation of -% these context records for main text references and footnote -% references. -% \begin{macrocode} -\long\def\@footnotetext#1{\insert\footins{% - \@law@infoottrue% % Hooks for citation manager - \ifnum\the\c@citesinfoot=1\relax% % - \global\let\@law@lastcite\@law@currentcite% % - \else% % - \gdef\@law@lastcite{\@dummy}% % - \fi% % - \global\setcounter{citesinfoot}{0}% End of hooks - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth \@parboxrestore - \let\@tempa\protect - \def\protect{\noexpand\protect\noexpand}% - \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% - \let\protect\@tempa - \color@begingroup - \normalcolor - \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1% - \@finalstrut\strutbox} - \color@endgroup}} -% \end{macrocode} -% \end{macro} -% We require a simple parser to allow multiple citation -% keys in the scope of a single "\source" command. We -% ignore any pinpoint given after the "\source" command; -% if you're using pinpoints, write individual "\source" -% commands into your text. This keeps things relatively -% clean and simple, for future linking to intelligent -% editors. The voiding of "\@ltok@argtwo" is going -% to be redundant if there are more than two keys -% in the scope, but what the heck, it's simple this way. -% Intervening punctuation is assumed to be the ``default'', -% which is signified by the ";" character. -% Note that any leading options will carry through to -% {\em all\/} of the citations in the key string! -% If you want to suppress the author, say, for only one -% citation, you'd better use a separate "\source" command -% for that citation, and link it to the string with -% an inter-word. -% \begin{macrocode} -\def\@law@clparseplain#1,{% - \@ifnextchar,% - {\def\@law@temp{\@law@onerealcite{#1}}% - \expandafter\@law@temp\@gobble}% - {\@law@onerealcite{#1}% - {\long\def\@overword{;}\@law@checkins% - \@SBSword\gdef\@SBSword{}}% - \@@parse}} -% \end{macrocode} -% -% When citations are dumped, we need to decide what sort -% of delimiters they receive. If footnote forcing is in -% effect, we need to protect against the possibility -% that we're already in a footnote. The "\@citedump" -% command should be redefined for styles that bracket -% citation strings in, say, square brackets. -% The following code, the "\@law@printcite" command and the -% contents of the "lexicite.tex" file are the -% only chunks of the style that need modification -% to generate different---perhaps radically different---styles. -% The strategy used here to force footnotes could equally -% well be used to place the citation string -% in a "\marginpar", -% in a floating box, on a facing page or what have you. -% So many possibilities, so little time \ldots -% \begin{macrocode} -\def\@law@citedump{% - \if@law@infoot% - \begingroup\@law@citestack\endgroup% - \else% - \if@law@forcefootnotes% - \footnote{\begingroup\@law@citestack\@law@gobble.\endgroup}% - \else% - \begingroup\@law@citestack\endgroup% - \fi% - \fi% -\def\@law@citestack{}} -% \end{macrocode} -% The actual cites -% should be expanded only after it has been determined that -% the end of a citation string has been reached. -% The expansion sequence for individual citations begins -% here. -% \begin{macrocode} -\def\@realcite#1#2#3{% - \ifcat$#1$\else% - \setkeys{cameloptions}{#1} - \fi% - \if@law@requiresubjects% - \@law@confirmsubject% - \fi% - \global\@ltok@argtwo{}% - \ifcat$#3$\else% - {\let\@law@parse=\@law@alparseplain\@law@parse #3,,}% - \fi% - {\let\@law@parse=\@law@clparseplain\@law@parse #2,,}% - } -% \end{macrocode} -% \end{macro} -% The "\@law@onerealcite" macro -% writes the citation key on the ".aux" file for -% onward use by \BibTeX{}, and initiates citation -% expansion. -% \begin{macrocode} -\def\@law@onerealcite#1{% - \@ifundefined{@lnick@#1}% - {\expandafter\def\csname @lnick@#1\endcsname{% - {\small\bf\tt <undefined: #1>} - \@latex@warning - {Citation `#1' on page \thepage \space undefined}}}% - {\relax}% - \if@filesw% - \immediate\write\@auxout{\string\citation{#1}}% - \@ifundefined{@law@managerouthook}% - \relax% - {\immediate\write\@bibout{\@law@managerouthook{#1}}}% - \fi% -\global\@law@firstuseofcitefalse% -\csname @lnick@#1\endcsname} -% \end{macrocode} -% \begin{macro}{\bibitem} -% The bibitem subcommands are redefined, since we don't -% need to export the nickname a second time when using {\sc Camel}. -% \begin{macrocode} -\def\@lbibitem[#1]{\item[\@biblabel{#1}\hfill]\ignorespaces} -\def\@bibitem{\item\ignorespaces} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\bibliographymanager} -% This macro provides support for external bibliography -% managers. If a known manager is declared, the key -% is written on an ephemeral file with the name "camel.bib". -% If the manager is then set up to replace -% keys with valid \BibTeX{} ".bib" entries, and is -% run over this file, the resulting file can be used as an -% input file for \BibTeX{}. Simple. Clean. \LaTeX. -% \begin{macrocode} -\def\@law@subjectlist{} -\def\citationstyle#1{% - \ifx\@law@subjectlist\empty% - \def\@law@citesubject{all} - \expandafter\gdef\csname @law@all@citelist\endcsname{}% - \def\@law@subjectlist{\\{all}{}{\camelrefname}{}}% - \fi% - \if@filesw% - \immediate\write\@auxout{\string\bibstyle{#1}}% - \fi% - \def\@law@savecat{\catcode`@}% - \makeatletter% - \input{#1.cst}% - \input{#1.cit}% - \catcode`\@=\@law@savecat% - \@ifundefined{@law@bblfile}% - {\relax}% - {\begin{lexilist} - \@input{\@law@bblfile} - \end{lexilist}}} -\def\citationdata#1{% - \def\bibliographymanager{\@camel@error{\string\bibliographymanager\space - following \string\citationdata.^^J - You can use only one of \string\citationdata\space and - \string\bibliographymanager\space^^J at the start of a document - or after a - \string\printthebibliography\space command}\@ehc}% - \if@filesw% - \immediate\write\@auxout{\string\bibdata{#1}}% - \fi% - \@ifundefined{@law@wordlist}% - {\gdef\@law@bblfile{\jobname.bbl}}% - {\begin{lexilist} - \@input {\jobname.bbl} - \end{lexilist}}} -\def\@camel@error#1#2{% - \GenericError{% - \space\space\space\@spaces\@spaces\@spaces - }{% - Camel Error: #1% - }{% - See the Camel manual for explanation.% - }{#2}% -} -{\catcode`\%=12 \gdef\@law@percent{%}} -\def\bibliographymanager#1{% - \def\citationdata{\@camel@error{\string\citationdata\space - following \string\bibliographymanager.^^J - You can use only one of \string\citationdata\space and - \string\bibliographymanager\space^^J at the start of a - document or after a - \string\printthebibliography\space command.}\@ehc}% - \if@filesw% - \immediate\write\@auxout{\string\bibdata{camel}}% - \fi% - \@ifundefined{@law@wordlist}% - {\gdef\@law@bibfile{\jobname.bbl}}% - {\begin{lexilist}% - \@input {\jobname.bbl} - \end{lexilist}}% - \newwrite\@bibout% - \immediate\openout\@bibout camel.bib% - \gdef\@law@temp{#1}% - \gdef\@law@temptwo{procite}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{(##1)}% - \fi% - \gdef\@law@temptwo{endnote}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{[##1]}% - \fi% - \gdef\@law@temptwo{papyrus}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{\@law@percent\@law@percent##1\@law@percent\@law@percent}% - \fi% - \gdef\@law@temptwo{referencemanager}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{\{##1\}}% - \fi% - \gdef\@law@temptwo{tib}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{[.##1.]}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\lexibib} -% This is used by \LexiBib{} to declare citations in a {\tt lexilist} -% environment. Use of a single macro permits -% {\tt\string\theholding} and its friends to work more simply. -% \begin{macrocode} -\def\lexibib#1{\csname new#1\endcsname}% -% \end{macrocode} -% \end{macro} -% -% We need to initialize the list macro used as a workspace -% by the list macro handlers. -% \begin{macrocode} -\def\@law@templistmacro{} -\def\@law@tempplistmacro{} -% \end{macrocode} -% These macros are used for \verb+\if+-branching in various -% formatting routines. -% \begin{macrocode} -\def\@law@case{case} -\def\@law@statute{statute} -\def\@law@article{article} -\def\@law@book{book} -% \end{macrocode} -% \subsection{Main macros} -% \subsubsection{Utility macros} -% This section contains larger macros that perform major -% tasks and smaller bits of code that are complex in their operation. -% \begin{macro}{\@law@unstashparas} -% When this is implemented, the above chain of "futurelet" macros -% will be linked to this "\@law@unstashparas" routine, which fetches -% any parallel items, and then (in "\@law@setup") performs the restash -% of the citation if necessary. -% \end{macro} -% \begin{macro}{\@law@clean} -% \begin{macro}{\@law@cleanup} -% This is a rough set of routines; if anyone has a -% suggestion on how to more elegantly clean -% most of \LaTeX's control sequences for export, -% I would be most grateful to hear from them. -% The effect of these routines is to convert -% control sequences -% that might be sent to the output files into -% harmless strings. This is necessary because -% the file cannot be written at the time \verb+\@law@cleanup+ -% is called; the page references would be incorrect. -% The definitions are local; bracketing the clean command and -% its arguments will leave the cleaned text in the macro, -% but restore command strings to operation when \LaTeX\ -% passes out of the current group. -% The "\ifcat" condition at the start (this method of token -% register checking was suggested by Bernd Raichle---who -% scolded me for bothering the \LaTeX3 list with this question!) -% is meant to catch empty -% strings fed to the routine in the fastest possible way. -% Without any checking, things can blow up. -% The use of "\@law@barnil" (somewhere in the middle) makes the vertical-bar -% character turn wimpish and disappear, which is what we want. -% Otherwise it prints weird stuff when it is fed back in through -% the external table. -% \begin{macrocode} -{\catcode`\_=13\catcode`\^=13\catcode`\|=13% -\gdef\@law@clean#1#2{% - \def\protect##1{\string##1\space}% - \ifcat$\the#1$% - \edef#2{}% - \else% - \def^{\string^}% - \def_{\string_}% - \@law@barnil% - \def\volno{\string\volno}% - \def\exclaim{\string\exclaim}% - \def\hbox{\string\hbox}% - \def\&{\string\&}\def\%{\string\%}% - \def\hskip{\string\hskip}% - \def\jintercharskip{\string\jintercharskip}% - \def\char{\string\char}% - \def~{\string~}\def\/{\string\/}% - \def\\{\string\\}\def\ {\string\ }\def\sc{\string\sc\space}% - \def\rm{\string\rm\space}\def\bf{\string\bf\space}% - \def\em{\string\em\space}% - \def\={\string\=}% - \def\`{\string\`}\def\'{\string\'}% - \def\^{\string\^}\def\"{\string\"}\def\~{\string\~}% - \def\.{\string\.}\def\u{\string\u}\def\v{\string\v}% - \def\H{\string\H\space}\def\t{\string\t\space}% - \def\c{\string\c\space}% - \def\d{\string\d\space}\def\b{\string\b\space}% - \def\oe{\string\oe\space}% - \def\ae{\string\ae\space}\def\aa{\string\aa\space}% - \def\o{\string\o\space}% - \def\l{\string\l\space}\def\ss{\string\ss\space}% - \def\OE{\string\OE\space}\def\AE{\string\AE\space}% - \def\AA{\string\AA\space}% - \def\O{\string\O\space}\def\L{\string\L\space}% - \def\dag{\string\dag\space}\def\ddag{\string\ddag\space}% - \def\S{\string\S\space}% - \def\P{\string\P\space}% - \def\TeX{\string\TeX\space}\def\LaTeX{\string\LaTeX\space}% - \def\LexiTeX{\string\LexiTeX\space}% - \def\BibTeX{\string\BibTeX\space}\def\-{\string\-}% -\xdef\@law@temp{\the#1}% -\xdef#2{\expandafter\expandafter\expandafter\@gobble% -\expandafter\string\csname\@law@temp\endcsname}% -\fi} -} -% \end{macrocode} -% This routine runs the cleaning routine on every -% token register that we want to send to the external -% files. The result is stored in a macro, since we -% need the registers for the next citation, and because it -% will be safe to fully expand the contents after cleaning. -% \begin{macrocode} -\def\@law@cleanup{% -\@law@clean\@ltok@authormainface\@law@authormainfacetemp% -\@law@clean\@ltok@authoroptionface\@law@authoroptionfacetemp% -\@law@clean\@ltok@author\@law@authortemp% -\@law@clean\@ltok@titlemainface\@law@titlemainfacetemp% -\@law@clean\@ltok@titleoptionface\@law@titleoptionfacetemp% -\@law@clean\@ltok@argtwo\@law@argtwotemp% -\@law@clean\@ltok@name\@law@nametemp% -\@law@clean\@ltok@citepage\@law@citepagetemp% -\@law@clean\@ltok@citefirstmainface\@law@citefirstmainfacetemp% -\@law@clean\@ltok@citefirstoptionface\@law@citefirstoptionfacetemp% -\@law@clean\@ltok@citefirst\@law@citefirsttemp% -\@law@clean\@ltok@conetop\@law@conetoptemp% -\@law@clean\@ltok@citelast\@law@citelasttemp% -\@law@clean\@ltok@ptop\@law@ptoptemp} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \subsubsection{Declaration of citation types} -% This section contains macros used in creating the citation -% declaration macros actually entered in the document by the user. -% \paragraph{{\tt @newcite} and its friends} -% The following macros are used to define the macro -% suites that relate to particular citation types. -% These are normally invoked by entries in the {\tt lexicite.tex} -% file, but the \verb+\newcitestyle+ macro is accessible -% within the document as well. -% The \verb+\newcitestyle+ macro expects the following arguments: -% \begin{enumerate} -% \item the nickname of the citation style to be created; -% \item a list of typeface and cite type options, in the -% syntax required by \verb+\@newciteoptions+; -% \item a list of cite bridges, in the syntax required -% by \verb+\@newcitebridges+; -% \item an integer giving the number of arguments the -% finished cite-generation macro will accept; and -% \item an argument consisting of a balanced list of six arguments -% indicating which of the six possible {\sc Camel}\ arguments -% will be used. -% \end{enumerate} -% The last two of these are fed to \verb+\newcommand+ as formatting -% arguments in the creation of citation style macros. -% In operation, the token register assignments -% performed by \verb+\@newcitebridges+ and\verb+\@law@parsefaces+ -% are memorized by freezing them in macros whose names are -% derived from the name of the citation style. The freezing -% operation is carried out by a list of token assignments -% within the storage macros. The macros are \verb+\xdef+ed, -% but the expansion of everything -% except the existing contents of the registers (inserted -% at one level of expansion using \verb+\the+) is prevented -% with \verb+\noexpand+s. The -% macro containing the faces is created inside \verb+\newcitestyle+ -% itself to save an argument position in the definition of -% \verb+\@law@parsefaces+; we've used up seven, and there are -% only two to go. This could be done with list -% macros as well, but this method probably runs a little -% faster because it does the job directly. The trade-off -% is that the \meta{cite type name}{\tt faces} macros -% contain a lot of non-informative text -% (the names of the token registers); but there are not -% many citation types, so it is probably worth the cost. -% in memory. -% -% Note that as of this release, citation declarations -% defined with \verb+\newcitestyle+ {\em always\/} begin -% with \verb+\new+. This will help simplify the integration -% of \BibTeX\ and {\sc Camel}. -% \begin{macrocode} -\def\newcitestyle#1#2#3{% -\@ifundefined{@law@citeload}% - {\def\@law@citeload{Loading citation classes: #1 ... }}% - {\message{\@law@citeload#1}\def\@law@citeload{...\space}}% - \@newcitebridges#1#3% - \expandafter\@law@parsefaces#2% - \expandafter\xdef\csname#1faces\endcsname{% - \noexpand\global\noexpand\@ltok@authormainface\noexpand{% - \the\@ltok@authormainface\noexpand}% - \noexpand\global\noexpand\@ltok@authoroptionface\noexpand{% - \the\@ltok@authoroptionface\noexpand}% - \noexpand\global\noexpand\@ltok@titlemainface\noexpand{% - \the\@ltok@titlemainface\noexpand}% - \noexpand\global\noexpand\@ltok@titleoptionface\noexpand{% - \the\@ltok@titleoptionface\noexpand}% - \noexpand\global\noexpand\@ltok@citefirstmainface\noexpand{% - \the\@ltok@citefirstmainface\noexpand}% - \noexpand\global\noexpand\@ltok@citefirstoptionface\noexpand{% - \the\@ltok@citefirstoptionface\noexpand}% - \noexpand\global\noexpand\@ltok@citetype\noexpand{% - \the\@ltok@citetype\noexpand}}% - \expandafter\gdef\csname new#1\endcsname##1##2##3##4##5##6##7% - {\@newcite{#1}{##1}{##2}{##3}{##4}{##5}{##6}{##7}}} -% \end{macrocode} -% The following are parsing routines that are called by \verb+\newcitestyle+. -% In \verb+\@law@parsefaces+, the seven arguments are the string of letters -% in the second argument of \verb+\newcitestyle+. -% This function has been drastically simplified over -% the first release. I should have done -% it this way in the first place and saved myself a lot of -% aggravation. The code should run a lot faster to boot. -% \begin{macrocode} -\def\@law@parsefaces#1#2#3#4#5#6#7{% - \@law@parseoneoption\@ltok@authormainface#1% - \@law@parseoneoption\@ltok@authoroptionface#2% - \@law@parseoneoption\@ltok@titlemainface#3% - \@law@parseoneoption\@ltok@titleoptionface#4% - \@law@parseoneoption\@ltok@citefirstmainface#5% - \@law@parseoneoption\@ltok@citefirstoptionface#6% - \@law@parselastoption\@ltok@citetype#7} -% -\def\@law@parseoneoption#1#2{% - \if#2s\global#1{\sc}\fi% - \if#2i\global#1{\em}\fi% - \if#2b\global#1{\bf}\fi% - \if#2r\global#1{\rm}\fi% - \if#2S\global#1{\sc}\fi% - \if#2I\global#1{\em}\fi% - \if#2B\global#1{\bf}\fi% - \if#2R\global#1{\rm}\fi} -% -\def\@law@parselastoption#1#2{% - \if#2a\global#1{article}\fi% - \if#2b\global#1{book}\fi% - \if#2c\global#1{case}\fi% - \if#2s\global#1{statute}\fi% - \if#2A\global#1{article}\fi% - \if#2B\global#1{book}\fi% - \if#2C\global#1{case}\fi% - \if#2S\global#1{statute}\fi} -% \end{macrocode} -% Bridges are stored literally, without parsing, so it's -% easy to stash them directly in a single macro that -% is fed the arguments. The assignments here are stored -% by the same method outlined in the description of -% \verb+\newcitestyle+, above. -% \begin{macrocode} -\newtoks\@ltok@c% -\newtoks\@ltok@d% -\newtoks\@ltok@e% -\newtoks\@ltok@f% -\newtoks\@ltok@g% -\newtoks\@ltok@h% -\newtoks\@ltok@i% -\newtoks\@ltok@j% -\def\@newcitebridges#1[a]#2[t]#3[c]#4[p]#5(pl)#6[rp]#7[e]:[id]#8(pl)#9[xrf]{% -\@ltok@c{#2}% -\@ltok@d{#3}% -\@ltok@e{#4}% -\@ltok@f{#5}% -\@ltok@g{#6}% -\@ltok@h{#7}% -\@ltok@i{#8}% -\@ltok@j{#9}% - \expandafter\xdef\csname#1bridges\endcsname{% - \noexpand\global\noexpand\@ltok@atot\noexpand{\the\@ltok@c\noexpand}% - \noexpand\global\noexpand\@ltok@ttocone\noexpand{\the\@ltok@d\noexpand}% - \noexpand\global\noexpand\@ltok@conetop\noexpand{\the\@ltok@e\noexpand}% - \noexpand\global\noexpand\@ltok@conetopplural\noexpand{\the\@ltok@g\noexpand}% - \noexpand\global\noexpand\@ltok@ptop\noexpand{\the\@ltok@f\noexpand}% - \noexpand\global\noexpand\@ltok@ptoctwo\noexpand{\the\@ltok@h\noexpand}% - \noexpand\global\noexpand\@ltok@atbridge\noexpand{\the\@ltok@i\noexpand}% - \global\@ltok@atbridgeplural\noexpand{\the\@ltok@j\noexpand}}}% -% \end{macrocode} -% \subsubsection{Declaration of citation nicknames} -% The following macros are called by the macros generated -% by the \verb+\newcitestyle+ macro and its arguments. -% Their effect is to create nickname macros which can then -% be called by the user with the \verb+\source+ -% command, with the nickname as -% a single argument in braces. -% This macro is called by -% \verb+\new+\meta{citation type name}. While this macro always takes -% seven arguments, some of these may be masked off -% from the user, if fewer than the full possible six -% arguments were called for in the final argument fed -% to \verb+\newcitestyle+ in creating the particular -% \verb+\new+\meta{citation type name} macro that is -% doing the calling. The arguments are there, the user just -% can't put anything into them.\\ -% The \verb+\@law@authortracing+ -% macro is actually just a temporary macro; I gave it a -% descriptive name because it was a struggle to keep my -% head around what it does as I was programming this. -% What happens is that a token assignment of the -% author's name followed by a trip to the cleaning routine -% is used to store a harmless string consisting of the -% entire contents of the author's name field in the -% \verb+\@law@authortracing+ macro. Then this {\em name\/} -% is defined as a macro, expanding to {\tt 1} or {\tt 2}, -% depending on whether it has been defined once already. -% The macro may look something -% like \verb+\Jayeff Huggins~Jr.+. Drastic, but effective. -% Try doing that with a WordPerfect macro \ldots -% \begin{macrocode} -\newif\if@law@specialbridges% -\def\@newcite#1#2#3#4#5#6#7#8{% -\message{=}% - {\@ltok@a={#4}\@law@clean\@ltok@a\@law@temp% -\expandafter\ifx\csname\@law@temp\endcsname\relax% -\expandafter\expandafter\expandafter\xdef\expandafter% - \csname\@law@temp\endcsname{1}% -\else% - \expandafter\expandafter\expandafter\xdef\expandafter% - \csname\@law@temp\endcsname{2}% -\fi}% -% \end{macrocode} -% The \verb+\@law@stasheverything+ macro creates the -% list macro that can be used to retrieve all citation -% details at a later point in the document. \verb+\@law@makecitenick+ -% creates the short macro that knows how to unstash the stored -% information. Note that this is where things end -% if we are inside the \verb+lexilist+ environment.\footnote{% -% The previous release used a {\tt\string\@law@stashinfo} macro -% that -% took nine arguments. The last two were just -% toggles, in effect, for the creation of a long- and a -% short-form nickname macro. Passing the information in -% this way required the definition of two separate invocation -% macros, one for full-form citing and one for short-form -% citing. -% This was messy. We now do all of this with -% true toggles that change the behaviour of a single -% set of routines. This means: -% \begin{itemize} -% \item We don't need two macros; and -% \item The stash routines can be included in {\tt\string\@newcite} -% itself---information needn't be passed through macro arguments -% at all, which helps speed things up. -% \end{itemize} -% We have to start by emptying the contents of the temporary -% list macro; a beta version didn't do this, and loading cites -% took an amazingly long time. I had problems with ``{\tt TeX capacity -% exceeded}'' messages, and {\tt\string\tracingmacros=2} showed that every -% cite was a stack containing the desired cite---and every preceding -% citation as well!} -% \begin{macrocode} -\def\@law@templistmacro{}% -\def\@law@tempplistmacro{}% -\setcounter{law@paranormal}{0} - \ifcat$\the\@ltok@useratbridgeplural$% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \else% - \@law@addtoken\@ltok@userconetop\tocitelist% - \@law@addtoken\@ltok@userconetopplural\tocitelist% - \@law@addtoken\@ltok@userptop\tocitelist% - \@law@addtoken\@ltok@userptoctwo\tocitelist% - \@law@addtoken\@ltok@useratbridge\tocitelist% - \@law@addtoken\@ltok@useratbridgeplural\tocitelist% - \fi% -\@law@addargument{#1}\tocitelist% -\@law@addtoken\@ltok@bigsourcepage\tocitelist% (not yet implemented) -\@law@addtoken\@ltok@bigsourcecite\tocitelist% (not yet implemented) -\@law@addtoken\@ltok@hereinafter\tocitelist% (not yet implemented) -% \end{macrocode} -% Two fields are made nil during stash; they will be filled -% when the macro is first unpacked. -% \begin{macrocode} - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% -\@law@addtoken\@ltok@citetype\tocitelist% cite type -\@law@addargument{#8}\tocitelist% cite last part -\@law@addargument{#7}\tocitelist% cite page -\@law@addargument{#6}\tocitelist% cite first part -\@law@addargument{#5}\tocitelist% name of work -\@law@addargument{#4}\tocitelist% author -\expandafter\gdef\csname @law@#2@lab\endcsname{#3}% label -\@law@addargument{#2}\tocitelist% nickname -\def\@law@tempplistmacro{}% -\@law@paracheckone{#2}}% -% \end{macrocode} -% -% \begin{macro}{\@law@paracheckone} -% \begin{macro}{\@law@parachecktwo} -% \begin{macro}{\@law@getpara} -% The following three macros look ahead (after the initial -% arguments to a cite declaration have been digested but {\em -% before\/} the cite information has been stored to the list -% macro) for a {\tt =} sign, which signals parallel citation -% details. If a {\tt =} sign is found, a further check is made -% for a {\tt [}, which signals a set of special bridges for the -% upcoming parallel citation. Note the use of two {\tt =} signs -% in braces as the first argument to {\tt\string\@ifnextchar}. -% This is required because of the internal syntax of the -% {\tt\string\@ifnextchar} macro. -% \begin{macrocode} -\def\@law@paracheckone#1{% - \def\@law@temp{{#1}}% - \@ifnextchar{=}% - {\expandafter\expandafter\expandafter\@law@parachecktwo% - \expandafter\@law@temp\@gobble}% - {\@@newcite{#1}}}% -% \end{macrocode} -% -% \begin{macrocode} -\def\@law@parachecktwo#1{\@ifnextchar[% - {\@law@getpara{#1}}% - {\@law@getpara{#1}[{}{}{}{}{}]}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% The following add a single set of parallel citation details -% into a list macro used as a holding area for this purpose. -% \begin{macrocode} -\def\@law@getpara#1[#2#3#4#5#6]#7#8#9{% - \addtocounter{law@parapin}{1} - \def\@law@temp{{#1}}% - \@law@addpargument{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}\tolist% - \@ifnextchar{=}% - {\expandafter\expandafter\expandafter% - \@law@parachecktwo\expandafter\@law@temp\@gobble}% - {\@@newcite{#1}}} -% \end{macrocode} -% -% \begin{macrocode} -\def\@@newcite#1{% -% \end{macrocode} -% A counter indicating how many parallel citations are stored for -% the current citation, and the -% list macro of parallel citation details built by the -% routines above is stored as a single item in the general list macro of -% citation details. -% \begin{macrocode} -\@law@addtoken\c@law@paranormal\tocitelist -\@ltok@a\expandafter{\@law@tempplistmacro}% -\@law@addtoken\@ltok@a\tocitelist% -\expandafter\global\expandafter\let\csname @ldata@#1\endcsname=\@law@templistmacro% -\@ltok@userconetop{}% -\@ltok@userconetopplural{}% -\@ltok@userptop{}% -\@ltok@userptoctwo{}% -\@ltok@useratbridge{}% -\@ltok@useratbridgeplural{}% -% \end{macrocode} -% Having stashed everything, we're ready to make the nickname -% macro itself, and print the long form of the cite. We set -% "\@law@temp" equal to the nickname macro, and expand after -% the condition so that arguments can be examined---otherwise -% the first thing the nickname sees will be the "\fi". -% \begin{macrocode} -\@law@makecitenick{#1}% -% \end{macrocode} -% -% \begin{macrocode} - \if@law@listinputting\def\@law@nick{}\else% - \def\@law@nick{\source[f]{#1}}\fi\@law@nick}% -% \end{macrocode} -% This macro adds one argument item "#1" to the end -% of list macro "\@law@templistmacro". This and the -% other list handlers are modelled on the examples in -% Knuth's \TeX book.\source{knuth}+{378}{} -% This and the other macros in this set do their work on -% one list macro, \verb+\@law@templistmacro+, in order -% to avoid the need for lots of \verb+\expandafter+s. -% \begin{macrocode} -\def\@law@addargument#1\tocitelist{% - \@law@leftappendargument#1\to\@law@templistmacro} -\long\def\@law@leftappendargument#1\to#2{\@ltok@a={\\{#1}}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@a\the\@ltok@b}} -% \end{macrocode} -% This macro adds the contents of one token register to -% the temporary list macro. -% \begin{macrocode} -\def\@law@addtoken#1\tocitelist{\@law@leftappendtoken#1\to\@law@templistmacro} -\long\def\@law@leftappendtoken#1\to#2{% - \xdef\@law@temp{\noexpand\\\noexpand{\the#1\noexpand}}% - \@ltok@a=\expandafter{\@law@temp}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@a\the\@ltok@b}} -% \end{macrocode} -% This macro cuts one token-register item \verb+#1+ from the -% end of list macro "\@law@templistmacro". The lopoff -% portion is almost straight out of the TeXbook, except -% that it stores the lopped element in a token register -% instead of a macro. -% \begin{macrocode} -\def\@law@cut#1\fromcitelist{\@law@lop\@law@templistmacro\to#1} -\def\@law@lop#1\to#2{\expandafter\@law@lopoff#1\@law@lopoff#1#2}% -\long\def\@law@lopoff\\#1#2\@law@lopoff#3#4{\global#4={#1}\gdef#3{#2}} -\def\@law@pincut#1\frompinlist{\@law@pinlop\@law@argtwolist\to#1} -\def\@law@pinlop#1\to#2{\expandafter\@law@pinlopoff#1\@law@pinlopoff#1#2}% -\long\def\@law@pinlopoff\@law@pingroup\@law@pinstart#1\@law@pinend#2\@law@pinlopoff#3#4{\global#4={#1}\gdef#3{#2}} -% \end{macrocode} -% -% \begin{macro}{\@law@addpargument} -% \begin{macro}{\@law@addptoken} -% \begin{macro}{\@law@pcut} -% The following nine macros are used to manipulate a list -% macro containing parallel citation details, and sets of -% token registers into which the list is extracted. -% \begin{macrocode} -\def\@law@fetchparas{% - \ifnum\the\c@law@paranormal>\the\c@law@paracounter\relax% - \@law@pcut\@law@tempplist\fromlist% - \expandafter\@law@extractparas\@law@tempplist% - \fi} -\def\@law@extractparas#1#2#3#4#5#6#7#8{% - \ifcat$\the\@ltok@useratbridge$% - \else% - \@ltok@userconetop={#1}% - \@ltok@userconetopplural={#2}% - \@ltok@userptop={#3}% - \@ltok@useratbridge={#4}% - \@ltok@useratbridgeplural={#5}% - \fi% - \global\@ltok@usercitefirst={#6}% - \global\@ltok@usercitepage={#7}% - \global\@ltok@usercitelast={#8}} -\def\@law@shiftparas{% - \ifnum\the\c@law@paranormal>\the\c@law@paracounter\relax% - \ifcat$\the\@ltok@useratbridge$% - \else% - \global\@ltok@conetop\@ltok@userconetop% - \global\@ltok@conetopplural\@ltok@userconetopplural% - \global\@ltok@ptop\@ltok@userptop% - \global\@ltok@ptoctwo\@ltok@userptoctwo% - \global\@ltok@atbridge\@ltok@useratbridge% - \global\@ltok@atbridgeplural\@ltok@useratbridgeplural% - \fi% - \global\@ltok@citefirst\@ltok@usercitefirst% - \global\@ltok@citepage\@ltok@usercitepage% - \global\@ltok@citelast\@ltok@usercitelast% - \fi} -\def\@law@addpargument#1\tolist{% - \addtocounter{law@paranormal}{1}% - \@law@rightappendpargument#1\to\@law@tempplistmacro} -\long\def\@law@rightappendpargument#1\to#2{\@ltok@a={\\{#1}}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@b\the\@ltok@a}} -% \end{macrocode} -% -% \begin{macrocode} -\def\@law@addptoken#1\tolist{\@law@leftappendptoken#1\to\@law@tempplistmacro} -\long\def\@law@leftappendptoken#1\to#2{% - \xdef\@law@temp{\noexpand\\\noexpand{\the#1\noexpand}}% - \@ltok@a=\expandafter{\@law@temp}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@a\the\@ltok@b}} -% \end{macrocode} -% -% \begin{macrocode} -\def\@law@pcut#1\fromlist{\@law@plop\@law@tempplistmacro\to#1} -\def\@law@plop#1\to#2{\expandafter\@law@plopoff#1\@law@plopoff#1#2}% -\long\def\@law@plopoff\\#1#2\@law@plopoff#3#4{\gdef#4{#1}\gdef#3{#2}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% This macro turns off the gobbling feature (it may be -% turned on during execution, if {\em Id.} is used), -% erases any pinpoint reference information that is -% hanging around, and if we are in a footnote, it -% increments the counter that was set to zero at the -% start of the footnote. It then -% unpacks all of the info for the cite -% whose nickname is given in \verb+#1+, and puts it into token registers for -% further processing. After it unpacks the list macro -% \verb+\@ldata@+\meta{nickname}, it unpacks the formatting -% details appropriate -% to the style in which it was declared. -% After the list is unpacked, -% {\em if\/} there is no record of a footnote or page number, -% then this is the first printing of the cite. The note/page -% and footnote/page number details need to be stored, and -% then everything has to be {\em repacked\/} -% for future reference under the appropriate list macro name. -% The list macro strategy allows on-the-fly editing of -% macros which adds greatly to the flexibility of -% the style.\\ -% Note the "parabeta" guard below. When we turn on support for -% parallel citations, we will need to do the restash work later, -% after checking for any attached items. -% \begin{macrocode} -\def\@law@unstasheverything#1{% -\gdef\@law@gobble{}% -\if@law@infoot% - \addtocounter{citesinfoot}{1}% -\fi% -\expandafter\let\expandafter\@law@templistmacro\csname @ldata@#1\endcsname% -\global\c@law@footnote\c@footnote% -\@law@cut\@ltok@plistmacro\fromcitelist% -\xdef\@law@tempplistmacro{\the\@ltok@plistmacro}% -\@law@cut\@ltok@a\fromcitelist% -\expandafter\c@law@paranormal\the\@ltok@a% -\@law@cut\@ltok@nickname\fromcitelist% -\@law@cut\@ltok@author\fromcitelist% -\@law@cut\@ltok@name\fromcitelist% -\@law@cut\@ltok@citefirst\fromcitelist% -\@law@cut\@ltok@citepage\fromcitelist% -\@law@cut\@ltok@citelast\fromcitelist% -\@law@cut\@ltok@citetype\fromcitelist% -\@law@cut\@ltok@whereitsat\fromcitelist% -\@law@cut\@ltok@pageorfootno\fromcitelist% -\@law@cut\@ltok@hereinafter\fromcitelist% -\@law@cut\@ltok@bigsourcecite\fromcitelist%(not yet implemented) -\@law@cut\@ltok@bigsourcepage\fromcitelist%(not yet implemented) -\@law@cut\@ltok@stylename\fromcitelist% -\csname \the\@ltok@stylename bridges\endcsname% -\csname \the\@ltok@stylename faces\endcsname% -% \end{macrocode} -% The following lines check one of the special bridge fields -% for content. If it is empty, we leave the bridges alone. -% Otherwise, we replace the default bridges with those selected -% by the user for this citation. -% \begin{macrocode} -\@law@cut\@ltok@a\fromcitelist% - \ifcat$\the\@ltok@a$% - \else% - \@ltok@atbridgeplural\@ltok@a% - \@law@cut\@ltok@atbridge\fromcitelist% - \@law@cut\@ltok@ptoctwo\fromcitelist% - \@law@cut\@ltok@ptop\fromcitelist% - \@law@cut\@ltok@conetopplural\fromcitelist% - \@law@cut\@ltok@conetop\fromcitelist% - \@law@specialbridgestrue% - \fi% -\ifcat$\the\@ltok@whereitsat$% - \if@law@requiresubjects% - \@ifundefined{@law@\@law@citesubject @citelist}% - {\expandafter\gdef\csname @law@\@law@citesubject @citelist\endcsname{}}% - {\relax}% - \fi% - \@law@maybeaddcitesubject - \global\@law@firstuseofcitetrue% -% \end{macrocode} -% \begin{macrocode} - \if@law@infoot% - \global\@ltok@whereitsat\@ltok@infoot% - \global\@ltok@pageorfootno=\expandafter{\the\c@law@footnote}% - \else% - \global\@ltok@whereitsat\@ltok@onpage% - \global\@ltok@pageorfootno=\expandafter{\the\c@page}% - \fi% -% \end{macrocode} -% \begin{macrocode} - \if@law@specialbridges% - \@law@addtoken\@ltok@conetop\tocitelist% - \@law@addtoken\@ltok@conetopplural\tocitelist% - \@law@addtoken\@ltok@ptop\tocitelist% - \@law@addtoken\@ltok@ptoctwo\tocitelist% - \@law@addtoken\@ltok@atbridge\tocitelist% - \@law@addtoken\@ltok@atbridgeplural\tocitelist% - \else% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \fi% -\@law@addtoken\@ltok@stylename\tocitelist% style name -\@law@addtoken\@ltok@bigsourcepage\tocitelist%(not yet implemented) -\@law@addtoken\@ltok@bigsourcecite\tocitelist%(not yet implemented) -\@law@addtoken\@ltok@hereinafter\tocitelist% (not yet implemented) -\@law@addtoken\@ltok@pageorfootno\tocitelist% (1)(b) stash the footnote bridge -\@law@addtoken\@ltok@whereitsat\tocitelist% (2)(b) footnote number -\@law@addtoken\@ltok@citetype\tocitelist% cite type -\@law@addtoken\@ltok@citelast\tocitelist% cite last part -\@law@addtoken\@ltok@citepage\tocitelist% cite page -\@law@addtoken\@ltok@citefirst\tocitelist% cite first part -\@law@addtoken\@ltok@name\tocitelist% name of work -\@law@addtoken\@ltok@author\tocitelist% author -\@law@addtoken\@ltok@nickname\tocitelist% nickname -\@law@addtoken\c@law@paranormal\tocitelist% parallels counter -\@law@addtoken\@ltok@plistmacro\tocitelist% parallels -\global\expandafter\let\csname @ldata@#1\endcsname\@law@templistmacro% -\fi% -} -% \end{macrocode} -% \subsubsection{Calling citation nicknames} -% The nickname macro defined by this routine -% (\verb+\@lnick@+\meta{nickname}), is immensely -% more compact than in the -% first release. \verb+\@law@argscheck+ eventually -% leads to \verb+\@law@setup+ after a series of -% checks for optional arguments. For the longest time I used -% a "\the" statement for the contents of "\@law@argscheck"; "\noexpand" works -% just as well and is much simpler to arrange. -% \begin{macrocode} -\def\@law@makecitenick#1{% - \expandafter\xdef\csname @lnick@#1\endcsname{% - \noexpand\@law@unstasheverything\noexpand{#1\noexpand}% - \noexpand\@law@setup}} -% \end{macrocode} -% \begin{macro}{\@law@newcitefirst} -% The following code will be used to kick off the existing "\@newcite" -% routine when hereinafter-style references come to be supported. -% \begin{macrocode} -%<*hereinafters> -\def\@law@newcitefirst{\@ifnextchar[]{\catcode`\[=?? -\catcode`\]=?? -\expandafter\@law@newcitesecond\@law@grabhereinafter} -{\@law@newcite}} -\def\@law@grabhereinafter#1{\@ltok@hereinafter={#1} -%</hereinafters> -% \end{macrocode} -% \end{macro} -% \subsubsection{Table writes and preliminary formatting} -% Once the printing information has been stashed, the -% \verb+\@lnick@+\meta{nickname} macro can be used -% to extract and print it. After extracting the -% information and storing it in token registers, -% this looks forward to gather any pinpointing argument -% that has been appended to the macro in the text. -% Once all the the necessary information has been -% collected, the \verb+\@law@setup+ macro tidies up -% the formatting of the cite and writes it to the -% export file, if the creation of tables for that -% type of citation has been toggled on. It then -% invokes the print routine. -% -% This macro assumes that all citation information stored -% for the cite has already been retrieved to appropriate token -% registers. The redefinition of the backslash character -% here allows it to be used to select the alternate -% typeface within a citation argument. The alternate -% typeface can be changed for all documents by editing -% the relevant {\tt .cst} file. Grouping braces enclosing -% all operations within \verb+\@law@setup+ mean than -% weird stuff turned on the sole purpose of exporting to -% tables and printing the citation will turn itself off -% when the print routine is finished. -% A routine (\verb+\@law@justabovecheck+) is run to -% figure out what the citation context is---how -% a cross-reference should be formatted---and -% once it's found out what it needs to know about -% the last citation, information on the current citation -% is tucked away for reference by this the context-checking -% routine next time around. -% A series of checks -% is performed so that superfluous bridges for which there -% is no corresponding argument can be erased. -% Then a file -% write is performed to the appropriate export file, if -% creation of that table has been toggled on. And finally -% the print routine is called. The \verb+\@law@gobble+ -% that follows the end of the group is used to eat -% a superfluous period if necessary. It is brought to -% life, if appropriate, by the print routine. -% Note the special catcode of the "|" character during -% this definition. -% \begin{macrocode} -{\catcode`\|=13% -\long\gdef\@law@setup{% -% \end{macrocode} -% The following operations restash the citation details if -% necessary; by this point we will have grabbed any parallel -% citation details that we needed. -% The backslash character is redefined as a self-resetting -% font-switching macro. -% \begin{macrocode} -{\def\@law@firstslash{\begingroup\def\\{\@law@secondslash}% - \the\ltokspecialface}% - \def\@law@secondslash{\endgroup\def\\{\@law@firstslash}}% - \def\\{\@law@firstslash}% -% \end{macrocode} -% This carries out the necessary checks on the context of the -% current citation. -% \begin{macrocode} -\@law@justabovecheck% -% \end{macrocode} -% Now that the \verb+\@law@justabovecheck+ macro has been run, -% it is time to set up for the next comparison. -% Take note that this source was cited, and of any specific page -% reference it contains, IF we are in a footnote -% \begin{macrocode} -\if@law@infoot% - \xdef\@law@currentcite{\the\@ltok@author\the\@ltok@name\the\@ltok@citefirst% - \the\@ltok@citepage\the\@ltok@citelast}% - \xdef\@law@lastpage{\the\@ltok@argtwo}% -\fi% - \begingroup% - \@law@tidybridges% - \ifx\@law@citesubject\empty% - \relax% - \else% - \if@law@bibentry% - \else% - \ifnum\the\c@law@paranormal=0\relax% - \csname write@one@\@law@citesubject @entry\endcsname% - \fi% - \fi% - \fi% - \endgroup% -\@law@print}}} -\def\@law@conetopsetup{% - \gdef\@law@temp{}% - \ifx\@law@argtwolist\@law@temp% - \else% - \@law@pincut\@ltok@argtwo\frompinlist% - \expandafter\@law@multicheck\the\@ltok@argtwo% - \@law@multiflag\query\end% - \fi} -\def\@law@tidybridges{% -% \end{macrocode} -% A number of further tidying-up operations are appropriate -% regardless of the form in which the citation will -% be printed. If certain elements are missing, their -% related bridges must be erased if the citation is not -% going to look awful. This is also where the author or title -% are suppressed in response to flags given to the "\source" command. -% \begin{macrocode} - \if@law@printauthor\else\global\@ltok@author{}\fi% - \if@law@printtitle\else\global\@ltok@name{}\fi% - \ifcat$\the\@ltok@author$% - \global\@ltok@atot{}% - \fi% - \ifcat$\the\@ltok@name$% - \global\@ltok@ttocone{}% - \fi% - \ifcat$\the\@ltok@citefirst$% - \global\@ltok@ttocone{}% - \fi% - \ifcat$\the\@ltok@citelast$% - \global\@ltok@ptoctwo{}% - \else% - \xdef\@law@temp{\the\@ltok@citelast}% - \gdef\@law@temptwo{()}% - \ifx\@law@temp\@law@temptwo% - \global\@ltok@citelast{}% - \global\@ltok@ptoctwo{}% - \fi% - \fi% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@ptop{}% - \fi% - \ifcat$\the\@ltok@argtwo$% - \global\@ltok@ptop{}% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@conetop{}% - \fi% - \fi% -% \end{macrocode} -% Now we run a series of checks to determine the class -% of citation we are dealing with, and if tables -% for that type of citation have been turned on, an export is performed; -% if a cite for export is to a statute, then the special routines -% for handling page references is brought into play. -% \begin{macrocode} - \ifcat$\the\@ltok@argtwo$% - \global\@ltok@ptop{}% - \global\@ltok@atbridge{}% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@conetop{}% - \fi% -% \end{macrocode} -% And here the \verb+\@law@setup+ routine comes to an end; -% punt to the print routine, possibly followed by a gobble, -% if {\em Id.} is printed. -% \begin{macrocode} - \fi} -% \end{macrocode} -% \subsection{Output routines} -% Once the citation has been unpacked and the -% basic tidying up appropriate to all appearances -% of the citation has been carried out, it is time -% to ship its contents to the various output routines. -% \subsubsection{The print macro} -% This section contains the code for the print routine and -% its supporting macros. We begin with the supporting stuff. -% \begin{macro}{\@law@justabovecheck} -% Check if immediately preceding cite is the same as this one. -% This macro is called immediately before the citation is -% printed. There are lots of conditions, but the structure -% is just a straightforward nesting of \verb+\if+ statements, -% each of which sets a toggle or toggles appropriately. -% In the end, this macro tells us: -% \begin{itemize} -% \item Whether the immediately-preceding citation is to -% the same work; and if it is -% \item Whether the preceding cite had no pinpoint -% page reference; and if it had one -% \item Whether the pages referred to by the two cites -% are exactly identical. -% \end{itemize} -% Try {\em that\/} with -% WordPerfect! -% If {\sc Camel}\ isn't getting the decisions right, let me know. -% \begin{macrocode} -\def\@law@justabovecheck{% - \xdef\@law@temptwo{\the\@ltok@author\the\@ltok@name% - \the\@ltok@citefirst\the\@ltok@citepage% - \the\@ltok@citelast}% - \ifx\@law@lastcite\@law@temptwo% - \ifnum\the\c@citesinfoot=1\relax% - \@law@justabovecheckdetails% - \else% - \ifx\@law@currentcite\@law@temptwo% - \@law@justabovecheckdetails% - \else% - \@justabovefalse% - \fi% - \fi% - \else% - \ifnum\the\c@citesinfoot>1\relax% - \ifx\@law@currentcite\@law@temptwo% - \@law@justabovecheckdetails% - \else% - \@justabovefalse% - \fi% - \fi% - \fi} -\def\@law@justabovecheckdetails{% - \ifx\@law@lastpage\empty% - \@justabovetrue% - \@l@quiteexactfalse% - \else% - \ifcat$\the\@ltok@argtwo$% - \@justabovefalse% - \else% - \@justabovetrue% - \xdef\@law@temp{\the\@ltok@argtwo}% - \ifx\@law@temp\@law@lastpage% - \@l@quiteexacttrue% - \else% - \@l@quiteexactfalse% - \fi% - \fi% - \fi} -%</lexitex> -% \end{macrocode} -% \end{macro} -% \subsubsection{Proof sheet master document} -% The following short document will generate proof sheets -% for all of the primary styles on the system. With the standard -% distribution, this produces twelve pages of output. -% \subsection{Proof sheets} -% The following macros produce a proof sheet that shows all -% of the permutations of a citation that I can think of. -% This is useful for those who have to design new citation styles. -% This is a pretty straightforward exercise, except for the -% task of feeding a cite declaration exactly the right -% arguments; this requires re-definition of "\newcitestyle" -% and the re-parsing of the "lexicite.tex" file. -% -% If you find permutations that are not represented here, -% let me know and I'll add them. -% -% \subsection{Macros for data export} -% -% \begin{macro}{\citationsubject} -% This macro toggles on the requirement that every -% citation be assigned to a subject category, and -% adds a subject to the subject list, with all of the -% information needed to create a classified bibliography. -% This information consists of: -% \begin{enumerate} -% \item The nickname for the category, used as the argument -% to the "s=" option in each citation; -% \item The title for use in the bibliography. -% \end{enumerate} -% An optional argument of {\tt t} creates a table, and must be accompanied by -% {\tt o=} and {\tt i=} options giving the extensions of -% the input and output files, and by {\tt h=} and optionally -% may be accompanied by an option of {\tt p} to include -% poinpoints in the table. -% -% NOTE: Definition of "\@law@finish" below is just -% being chucked into as a patch. This code should all -% be gone over an reorganized sometime when there -% is time for it. -% \begin{macrocode} -%<*lexitex> -\def\@law@finish#1\@law@nomatch{} -\def\@law@slone#1#2{\def\@law@listitem{#1}% - \ifx\@law@optionitem\@law@listitem #2% - \let\\=\@law@finish\fi} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@end} -% The internal ending character is also common to all parsers. -% \begin{macrocode} -\def\@law@end{,} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@slnomatch} -% If when we execute the list of options we do not find a match, -% we want an error message to go to the terminal. This is the -% macro that gives the appropriate error message. -% \begin{macrocode} -\def\@law@slnomatch{\@camel@error{Citation Warning: Invalid - option `\@law@optionitem' - given to \string\citationsubject.^^J% - Valid options are:^^J - 2 (force a second-level header for a subject)^^J - p (to include pinpoints in an exported table)^^J - i=<extension> (use the three-letter extension in^^J - exporting a table)^^J - o=<volume> (use the three-letter extension in^^J - importing a table)^^J% -To avoid errors in formatting, use commas in the option string^^J% -only where they are logically necessary to the sense of the^^J% -string.}\@ehc} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\longestlabelfor} -% This macro set returns a box the exact width of the longest -% string given as a label to citations of a specified -% subject class. -% \begin{macrocode} -\newlength{\templen} -\newlength{\lawlengthone} -\newlength{\lawlengthtwo} -\def\@law@getlabel#1{\settowidth\lawlengthone{\csname @law@#1@lab\endcsname}% - \ifnum\lawlengthone>\lawlengthtwo% - \settowidth\lawlengthtwo{\csname @law@#1@lab\endcsname}% - \fi} -\def\longestlabelfor#1{% - \setlength\lawlengthone{0pt}% - \setlength\lawlengthtwo{0pt}% - \let\\=\@law@getlabel% - \csname @law@#1@citelist\endcsname} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@subjectoptionlist} -% The list of options is simple and expansible. The syntax of -% the last two -% lines is required if everything is to work as expected. -% The items in the help message should probably be -% drawn from here, to provide a hook for expansion -% if other styles want to tinker with the options to -% "\source". -% \begin{macrocode} -\def\@law@subjectoptionlist{% - \\{1}{\gdef\@law@level{1}}% - \\{2}{\gdef\@law@level{2}}% - \\{p}{\global\@law@usepinpointstrue}% - \\{P}{\gdef\@law@bibformat{\global\@law@usepagestrue}}% - \\{o}{\gdef\@law@parsemacro##1{\gdef\@law@outputext{##1}}% - \let\@law@parse\@law@slparsecomma}% - \\{i}{\gdef\@law@parsemacro##1{% - \ifcat$##1$\else% - \global\@law@maketabletrue% - \expandafter\gdef\csname\@law@temp inputext\endcsname{##1}% - \fi}% - \let\@law@parse\@law@slparsecomma}% - \\{=}{\let\@law@parse\@law@slparsebumequal}% - \\{,}{}% - \\{\end}{\let\@law@nomatch\relax\let\@law@parse\relax}% - \@law@nomatch} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@parselastcheck} -% \begin{macro}{\@law@parsecomma} -% \begin{macro}{\@law@parselastcheck} -% \begin{macro}{\@law@parseplain} -% We switch between three possible forms for the "\@law@parse" macro, -% and we also need to have a special way of ending when the -% delimiter is found in the list. -% \begin{macrocode} -\def\@law@slparsecomma=#1,{% - \@law@parsemacro{#1}\let\@law@parse\@law@slparseplain% - \@@parse} -% \end{macrocode} -% \begin{macrocode} -\def\@law@slparsebumequal#1,{\let\@law@parse\@law@slparseplain\@@parse} -% \end{macrocode} -% \begin{macrocode} -\def\@law@slparseplain#1{% - \let\@law@nomatch=\@law@slnomatch% - \def\@law@optionitem{#1}\let\\=\@law@slone\@law@subjectoptionlist\@@parse} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\def\citationsubject{% - \@ifnextchar[{\@citationsubject}{\@citationsubject[1]}} -{\catcode`\|=13% -\gdef\@citationsubject[#1]#2#3{% - \global\let\@law@level\relax% - \global\@law@usepinpointsfalse% - \global\@law@maketablefalse% - \global\@law@requiresubjectstrue% - \gdef\@law@bibformat{}% - \def\@law@temp{#2}% - {\let\@law@parse=\@law@slparseplain\@law@parse #1,\end}% - \expandafter\gdef\csname write@one@#2@entry\endcsname{}% - \if@law@maketable% - \expandafter\def\csname the#2table\endcsname{% - \@restonecoltrue% - \if@twocolumn\@restonecolfalse\fi% - \section*{#3}% - \@mkboth% - {\uppercase{#3}}% - {\uppercase{#3}}% - \thispagestyle{plain}% - \parindent\z@\parskip\z@ plus.3\p@\relax% - \let\item\citationtableitem} - \expandafter\def\csname endthe#2table\endcsname{% - \if@restonecol\onecolumn% - \else\clearpage% - \fi}% - \def\itemspace{% - \par\vskip 10\p@ plus5\p@ minus3\p@\relax} - \newindex{#2}{\@law@outputext}{\csname#2inputext\endcsname}{#3}% - \if@law@usepinpoints% - \expandafter\gdef\csname write@one@#2@entry\endcsname{% - {\ifcat$\the\@ltok@argtwo$\@ltok@argtwo{\@law@delim}\fi% - \@ltok@pagesstring\@ltok@argtwo% - \def\@law@comma{\@law@exportapage}% - \def\@law@ampersand{\@law@exportapage}% - \def\@law@dash{\@law@exportapage}% - \def|{\@law@exportapage}% - \def\@law@exportapage####1\@law@delim{% - \@ltok@argtwo{####1}% - \def\@law@temp{\index[#2]}% - \edef\@law@temptwo{% - \noexpand{\string\bibitem % - \string\source[b,Z=\the\@ltok@nickname]% - \noexpand{\the\@ltok@nickname\noexpand}% - \ifcat$\the\@ltok@argtwo$\else>####1\fi\string|maybe\noexpand}}% - \expandafter\@law@temp\@law@temptwo} - \expandafter\@law@exportapage\the\@ltok@pagesstring}}% - \else% - \expandafter\gdef\csname write@one@#2@entry\endcsname{% - \def\@law@temp{\index[#2]}% - \edef\@law@temptwo{% - \noexpand{\string\bibitem % - \string\source[b,Z=\csname @law@\the\@ltok@nickname @lab\endcsname]% - \string{\the\@ltok@nickname\string}\string|maybe\noexpand}}% - \expandafter\@law@temp\@law@temptwo}% - \fi% - \fi% - \@ltok@a=\expandafter{\@law@subjectlist}% - \@ltok@c=\expandafter{\@law@bibformat}% - \if@law@usepinpoints% - \edef\@law@temp{\noexpand\\\noexpand{#2\noexpand}% - \noexpand{p\noexpand}% - \noexpand{#3\noexpand} - \noexpand{\the\@ltok@c\noexpand}}% - \@ltok@b=\expandafter{\@law@temp}% - \else% - \edef\@law@temp{\noexpand\\\noexpand{#2\noexpand} - \noexpand{\@law@level\noexpand} - \noexpand{#3\noexpand} - \noexpand{\the\@ltok@c\noexpand}}% - \@ltok@b=\expandafter{\@law@temp}% - \fi% - \edef\@law@subjectlist{\the\@ltok@a\the\@ltok@b}}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\printbibliography} -% To print bibliographies, we use a single command with two -% modes built into it. -% \changes{1.0n}{95/07/13}{Hacked in a toggle to turn off labels in -% printbibliography.} -% \changes{1.0q}{96/03/08}{Eliminated the stuff for showing holdings, -% fact patterns, and so forth.} -% \changes{1.0q}{96/03/08}{Eliminated \texttt{\bs cite} and \texttt{\bs -% lexicite} aliases of the \texttt{\bs source} command.} -% \changes{1.0r}{96/03/09}{Brace-enclosed the list-macro executions -% in printbibliography, to prevent clashes with kernel definition -% of double-backslash.} -% \changes{1.0t}{97/02/17}{Added missing termination -% macro @law@finish for use by parsing routines. Reported -% by Kevin Haddock, for which many thanks.} -% \begin{macrocode} -\def\printbibliography{\@ifnextchar[{\@printbibliography}{\@printbibliography[]}} -\def\@printbibliography[#1]#2{% - \global\@law@forcefootnotesfalse% - \gdef\@law@temp{#1}\gdef\@law@temptwo{labels=false}% - \let\camelrefname\refname% - \expandafter\ifx\csname#2inputext\endcsname\relax% - \global\@law@tablefalse% - \else% - \global\@law@tabletrue% - \fi% - \begingroup% - \def\refname{\@law@getsubjectheader{#2}}% - \@law@usepagesfalse% - \@law@getbibformat{#2} - \let\maybe\@gobble% - \let\camelfill\relax% - \let\camelarrow\relax% - \ifx\@law@temp\@law@temptwo% - \advance\@totalleftmargin -\labelsep% - \advance\linewidth \labelsep% - \def\@biblabel##1{}% - \fi% - \if@law@table% - \if@law@usepages% - \let\maybe\relax% - \let\camelfill\dotfill% - \let\camelarrow\rightarrow% - \fi% - \else% - \longestlabelfor{#2}% - \ifdim\lawlengthtwo=0pt% - \advance\@totalleftmargin -\labelsep% - \advance\linewidth \labelsep% - \def\@biblabel##1{}% - \fi% - \fi% - \if@law@requiresubjects% - \@law@dobibliography{#2}% - \else% - \gdef\@law@temp{#2}\gdef\@law@temptwo{all}% - \ifx\@law@temp\@law@temptwo% - \@law@dobibliography{#2}% - \else% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: without-subjects ^^J - Bibliography type: subject-specific (#2) ^^J - Action: impossible task, ignoring ...^^J% - ===================================================^^J} - \fi% - \fi% - \endgroup} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\def\@law@dobibliography#1{% - \begin{thebibliography}{\if@law@biblabels\longestlabelfor{#1}\rule{\lawlengthtwo}{5pt}\fi} - \if@law@table% - \if@law@usepages% - \addtolength{\parsep}{-.5\parsep}% - \addtolength{\itemsep}{-.5\itemsep}% - \fi% - \fi% - \if@law@requiresubjects% - \@law@requiresubjectsfalse% - \if@law@table - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: subject-classified cites ^^J - Bibliography type: subject-specific external (#1) ^^J - Action: generating^^J% - ===================================================^^J} - \@input{\jobname.\csname#1inputext\endcsname} - \else% - \gdef\@law@temp{#1}\gdef\@law@temptwo{all}% - \ifx\@law@temp\@law@temptwo% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: subject-classified cites ^^J - Bibliography type: all citations ^^J - Action: header only (not yet implemented)^^J% - ===================================================^^J} - \else% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: subject-classified cites ^^J - Bibliography type: subject-specific internal (#1) ^^J - Action: generating^^J% - ===================================================^^J} - {\let\\\@law@bibslash% - \csname @law@#1@citelist\endcsname} - \fi% - \fi% - \else% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: without-subjects ^^J - Bibliography type: all citations ^^J - Action: generating^^J% - ===================================================^^J} - {\let\\\@law@bibslash% - \csname @law@#1@citelist\endcsname}% - \fi% - \end{thebibliography}} -\def\@law@bibslash#1{\bibitem [\csname @law@#1@lab\endcsname] \source[b]{#1}. } -%</lexitex> -% \end{macrocode} -% -% \subsubsection{Citation style definitions} -% No styles are included here. See the separate style -% files in the {\sc Camel} archive for the matching -% ".bst", ".cst" and ".cit" files that make up each {\sc Camel} -% style variation. These may be distributed as ".doc" -% files, and should be available on CTAN under -% "/macros/latex/contrib/supported/camel". -% \subsection{Index styles} -% This code, and the table writing code, is provisional; -% this should be made more general. Less of a hack than the -% original \LexiTeX{} code, though! -% \begin{macrocode} -%<*camelindex> -actual '#' -quote '!' -level '>' -preamble -"\n" -postamble -"\n" -item_0 "\n" -item_x1 "\n \\subitem " -item_x2 "\n \\subsubitem " -delim_n "\$\\rightarrow\$" -delim_0 "\~\\camelfill" -delim_1 "\$\\camelarrow\$" -% The next lines will produce some warnings when -% running Makeindex as they try to cover two different -% versions of the program: -lethead_prefix "{\\bf\\hfil " -lethead_suffix "\\hfil}\\nopagebreak\n" -lethead_flag 1 -heading_prefix "{\\bf\\hfil " -heading_suffix "\\hfil}\\nopagebreak\n" -headings_flag 0 -\ifx\on@line\undefined - \def\on@line{ on input line \the\inputlineno} - \errhelp{Support for input line numbers has been added - to latex.tex <dec91>.^^J^^J% - Please update to a newer LaTeX release.} - \errmessage{Obsolete LaTeX release (older than Dec.91)} -\fi -%</camelindex> -% \end{macrocode} -% \section{A \BibTeX{} Library} -% Considerable modification of an existing ".bst" file -% may be required to make it give output that can be -% digested by {\sc Camel}. -% You may find that it is actually easier to draft -% you entry type functions from scratch, using -% the following library of \BibTeX{} -% functions. See the file "law.dtx" for an example of -% entry types based on this library, and for an example -% of how to tie the library and your own functions -% together through a driver file entry. -% \newcounter{speccount} -% \def\addline{ & \arabic{speccount}.\addtocounter{speccount}{1} &\let\item\subsequentitem} -% \def\startingitem{\setcounter{speccount}{1}\addline} -% \def\subsequentitem{\\\addline} -% \long\def\spec#1#2#3{% -% \noindent\begin{tabular}{|>{\bf}rc% -% >{\PreserveBackslash\raggedright\small}p{3.5in}|}\hline -% Expected: -% \let\item\startingitem #1\\ -% &&\\ -% Left: -% \let\item\startingitem #2\\ -% &&\\ -% Toggles: -% \let\item\startingitem #3\\ -% \hline -% \end{tabular}} -% Each function defined using the {\tt FUNCTION} operator -% is accompanied by a brief description of what it is -% intended to do, followed by a box in the following form: -% \spec{\item What the function expects to find on the stack, -% numbered from the top (most recently pushed) to the bottom -% item.} -% {\item What the function will leave on the stack, numbered in -% the -% same fashion.} -% {\item {\bf toggle name:} What the effect of any toggles is on the -% behaviour of the function.} -% -% Happy reading. -% \subsection{Hello!} -% As ever, we start by telling the world who we are. -% \begin{macrocode} -%<*bstheader> -FUNCTION { hello } -{ -%<jse>" ============================================" -%<jse>" for your Camel style and extract again." -%<jse>" with standard BibTeX, modify the .ins file" -%<jse>" Warning: localized for jBibTeX. For use " -" ============================================" -" 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$ -} -%</bstheader> -% \end{macrocode} -% \subsection{Variable initializations} -% \DescribeEnv{ENTRY} -% This command takes three braced arguments, which in order are: -% \begin{enumerate} -% \item A list of field names; -% \item A list of integer variables; and -% \item A list of string variables. -% \end{enumerate} -% The field names created here include some not found in the -% standard \BibTeX\ styles. The use of both the standard and -% these new -% items is fully documented elsewhere, so no commentary is -% given here. Suffice to say that each item in the list creates -% a field that -% subsequent code can work on. -% \begin{macrocode} -%<*bstlibrary> -ENTRY -% \end{macrocode} -% -% \DescribeEnv{field names} -% \mbox{} -% \begin{macrocode} -{ 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 -} -% \end{macrocode} -% -% \DescribeEnv{entry integers} -% None are defined. Note that any integers or strings defined -% with the -% ENTRY command are created for {\em each\/} entry in the -% citation list. -% \begin{macrocode} -{} -% \end{macrocode} -% -% \DescribeEnv{entry strings} -% There are no general string variables, either. Such variables -% might be defined for use in building key labels for use in -% sorting, or in an end-of-document bibliography style. -% \begin{macrocode} -{ label extra.label sort.label } -% \end{macrocode} -% -% \DescribeEnv{STRINGS} -% A few string macros are needed to hold things -% temporarily removed from the stack. -% \BibTeX\ only allows ten such string variables; the named -% variables in this list will slowly be reduced in number -% through redesign of the functions that require them. -% Meanwhile, let's hope we don't find a sudden need for -% more \ldots -% \begin{macrocode} -STRINGS { s t u v scrubdate - volume.var year.var number.var journal.var pages.var } -% \end{macrocode} -% -% \DescribeEnv{INTEGERS} -% The following list of integers is probably also larger than -% it needs to be. Again, optimization of stack usage will -% lead to the elimination of some of these variables. -% \begin{macrocode} -INTEGERS { itemcount date.specials charcount a b c - nameptr namesleft numnames a.logical } -% \end{macrocode} -% -% \DescribeEnv{FUNCTIONS} -% These functions provide strings used in the parsing of -% Japanese legal citations. If the language of such citations -% is not English, these strings may need to be edited. -% \begin{macrocode} -FUNCTION {dc..} {"District Court"} -FUNCTION {sc..} {"Supreme Court"} -% \end{macrocode} -% -% \subsection{Function definitions} -% \subsubsection{Logic and measurement} -% -% \DescribeEnv{not} -% \DescribeEnv{and} -% \DescribeEnv{or} -% These have been copied verbatim from Oren Patashnik's 1988 -% release. -% His commentary on these functions reads: -% {\em These three functions pop one or two (integer) arguments -% from the stack -% and push a single one, either "0" or "1". -% The {\tt 'skip\$} in the `"and"' and `"or"' functions are used -% because -% the corresponding {\tt if\$} would be idempotent.} -% -% \spec{\item The result of a logical test -% \item The result of a second logical test} -% {\item A single logical test result} -% {\item none} -% -% \begin{macrocode} - FUNCTION {not} - { { #0 } - { #1 } - if$ - } - FUNCTION {and} - { 'skip$ - { pop$ #0 } - if$ - } - FUNCTION {or} - { { pop$ #1 } - 'skip$ - if$ - } -% \end{macrocode} -% -% \DescribeEnv{times.ten} -% One of the date calculation routines requires -% string-to-integer conversion. \BibTeX\ primitives can only -% convert in this direction for single characters. Accordingly, -% we need to be able to raise by a power of ten. -% -% \spec{\item A single integer.} -% {\item A single integer.} -% {\item none} -% -% \begin{macrocode} -FUNCTION {times.ten} - { duplicate$ duplicate$ duplicate$ duplicate$ duplicate$ - duplicate$ duplicate$ duplicate$ duplicate$ - + + + + + + + + + - } -% \end{macrocode} -% -% \DescribeEnv{character.length} -% \BibTeX\ provides a built-in command for measuring the length -% of a string in ``text units''. Sometimes it's nice to know -% the length of a string in {\em characters\/}; -% this function provides -% that facility. -% \changes{1997/01/09}{v1.0s}{Added extraction options for -% JBibTeX support.} -% -% \spec{\item A string.} -% {\item An integer giving the number of characters in the -% string.} -% {\item none} -% -% \begin{macrocode} -FUNCTION {character.length} - { 'u := - #0 'charcount := - { u empty$ not } - { u -%<jse> duplicate$ -%<eng> #2 -%<jse> is.kanji.str$ {#3} {#2} if$ - global.max$ substring$ 'u := - charcount #1 + 'charcount := - }while$ - charcount - } -% \end{macrocode} -% -% \DescribeEnv{first.in.second} -% This function checks for a substring at the beginning or at the -% end of a given string. This facility is needed, for example, -% to provide an automated means of toggling the formatting of -% the court division string for Japanese cases. -% In the defintion below, {\tt t} is the substring length, and -% {\tt u} is the string length. -% -% \spec{\item A string toggle. -% \item A string (the string in which to look). -% \item A string (the substring to look for).} -% {\item A single integer ({\tt 0} or {\tt 1}), indicating -% whether -% the substring was found at the specified location in the -% string for search.} -% {\item {\bf end:} The function looks at the end of the -% given string. -% \item{\bf start:} The function looks at the start of the -% given string.} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{get.character.type} -% This function returns one of three strings, `"letter"', -% `"numeral"' or `"other"` to indicate the type of the -% character it finds on the stack. This was written for -% use in the "gather.chars" function, but may find other -% uses as well. -% \spec{\item Either {\tt *} or a single character to be scanned -% for. -% \item A single character to be examined by the function.} -% {\item Either {\tt letter}, {\tt numeral} or {\tt other}, the -% significance of which depends upon the toggle used.} -% {\item {\tt *} causes the character to be identified as a -% numeral, and letter or something else. -% \item Any character other than {\tt *} causes that character to -% be identified as {\tt other}, and any other characters to be -% identified as {\tt letter}.} -% \begin{macrocode} -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$ - } -% \end{macrocode} -% \DescribeEnv{type.last.char} -% This was written in order to handle situations where -% trailing punctuation varies depending upon whether the text -% being punctuated ends in a numeral or not. The power of the -% library is (finally, in July of 1995) starting to show through. -% \spec{\item A single string.} -% {\item A string, either {\tt numeral}, {\tt letter} or {\tt other}.} -% {\item None.} -% \begin{macrocode} -FUNCTION { type.last.char } - { duplicate$ character.length - #1 substring$ - "*" get.character.type - } -% \end{macrocode} -% \changes{1995/07/08}{1.0m}{New function {\tt type.last.char} -% added, to cope with titles ending in a numeral, hence -% exceptionally requiring a comma in the Blue Book style.} -% -% \subsubsection{Housekeeping} -% These functions are used to issue warning messages and avoid -% errors during processing. -% -% \DescribeEnv{empty.to.null} -% This is simply the "field.or.null" function from the standard -% styles, renamed so that I could more easily remember what it -% does. Invoked only by the output routines, it assures that -% empty field markers are replaced with the null string, to -% prevent smash-ups. -% -% \spec{\item The contents of a field, which may be an empty -% field marker.} -% {\item A string, possibly the null string.} -% {\item none} -% -% \begin{macrocode} - FUNCTION {empty.to.null} - { duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ - } -% \end{macrocode} -% -% \DescribeEnv{check} -% This check function isolates the production of warning -% messages from the output routines, to enhance transparency. -% Note that this will not convert an empty field marker to -% the null string; that is left to the output routines. -% -% \spec{\item A string for -% use in an error message. -% \item The contents of a field.} -% {\item The field contents.} -% {\item none} -% -% \begin{macrocode} -FUNCTION { check } -{ 't := - duplicate$ empty$ - { "empty " t * " in " * cite$ * warning$} - 'skip$ - if$ -} -% \end{macrocode} -% -% \DescribeEnv{either.or} -% This checks whether one of a two-item pair is empty. -% If at least one is empty, the other is returned to the -% stack. If both are non-empty, a warning is issued, and -% one item is arbitrarily selected. -% -% \spec{\item A string. -% \item A string.} -% {\item A single string.} -% {\item none} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% \DescribeEnv{either.or.nowarning} -% This does the same thing as "either.or", but does not issue a -% warning if both items exist. As with that function, the second -% item pushed is preferred. -% -% \spec{\item A string. -% \item A string.} -% {\item A single string.} -% {\item none} -% -% \begin{macrocode} -FUNCTION {either.or.nowarning} - { duplicate$ empty$ - { pop$ duplicate$ empty$ - { empty.to.null } - 'skip$ - if$ - } - { swap$ pop$ } - if$ - } -% \end{macrocode} -% -% \subsubsection{Output} -% In the interest of transparency, I have tried to make the -% output functions as simple to use and as flexible in their -% operation as possible. Every output routine expects to find -% three items on the stack, and the name of each routine -% describes how it will react to what it finds there. -% To keep things tidy, the empty field marker -% is replaced with the null string only by the output -% routines.\\ -% The names -% are sometimes coincidentally comical, but I hope informative -% as well. -% -% \DescribeEnv{must.must.must} -% The simplest -% output routine is the "must.must.must" routine; it -% simply catenates the three strings, replacing any -% empty field markers it finds with the null string. -% -% \spec{\item A string. -% \item A string. -% \item A string.} -% {\item none} -% {\item none} -% -% \begin{macrocode} -FUNCTION {must.must.must} - { empty.to.null 't := - empty.to.null swap$ empty.to.null swap$ t - * * - write$ - } -% \end{macrocode} -% -% \DescribeEnv{might.ifone.must} -% This output routine is heavily used for conditional -% output. If the deepmost of the three stack items is an empty -% field marker, the only the topmost item is written to the -% output file. If this is not the case, then the three items are -% written in order. -% -% \spec{\item A string. -% \item A string. -% \item A string.} -% {\item {\em none}} -% {\item none} -% -% \begin{macrocode} -FUNCTION {might.ifone.must} - { empty.to.null 't := - swap$ duplicate$ empty$ - { pop$ pop$ t } - { swap$ empty.to.null t * * } - if$ - write$ - } -% \end{macrocode} -% -% \DescribeEnv{iftwo.might.iftwo} -% This function is typically used to output a formatted item -% in enclosing braces, where the entire item and its braces -% should be suppressed if the item is empty. -% -% \spec{\item A string. -% \item A string. -% \item A string.} -% {\item none} -% {\item none} -% -% \begin{macrocode} -FUNCTION {iftwo.might.iftwo} - { 't := - duplicate$ empty$ - { pop$ pop$ } - { empty.to.null swap$ empty.to.null swap$ - t empty.to.null - * * write$ } - if$ - } -% \end{macrocode} -% -% \DescribeEnv{must.ifthree.might} -% This function is used to output a definitely-existing item -% followed by something that might not exist with intervening -% punctuation that ought to disappear if it's not needed. -% -% \spec{\item A string. -% \item A string. -% \item A string.} -% {\item none} -% {\item none} -% -% \begin{macrocode} -FUNCTION {must.ifthree.might} - { duplicate$ empty$ - { pop$ pop$ empty.to.null } - { 't := - swap$ empty.to.null - swap$ empty.to.null - t * * - }if$ - write$ - } -% \end{macrocode} -% -% \subsubsection{Parsing and conversion} -% -% \DescribeEnv{field.tag.no.combine} -% The "no" here stands for ``number''. -% This function is typically used to simplify the task of -% building a numbered label for something (e.g.\ a technical -% report). It provides facilities for handling blank -% entries, so that these error-handling routines do not -% need to be drafted from scratch for every such -% situation. -% -% \spec{\item A string toggle. -% \item An identifier (i.e.\ a report number). -% \item A text prefix for the identifier. -% \item A string label (i.e.\ ``Technical Report'' or somesuch).} -% {\item A single string.} -% {\item {\bf endlabel:} Combines the text items in the same order -% in -% which they are found. -% \item {frontlabel:} Places the label in front, followed by the -% identifier, followed by the first item pushed.} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{change.letter.case} -% This is a simple front-end to the {\tt change.case\$} built-in -% function, used to change characters in a string from upper to -% lower case. It slightly enhances the built-in function by -% providing an option that leaves the string alone. -% -% \spec{\item A single character---either -% an {\tt n}, a {\tt t}, an {\tt l}, or a {\tt u}. -% \item A string for conversion.} -% {\item One string, converted according to the option toggle -% pushed -% after the string.} -% {\item {\bf n:} yields the string unchanged. -% \item {\bf t:} yields -% all lower case letters except for the first. -% \item {l:} yields all lower case letters. -% \item {u:} yields all -% upper case letters.} -% -% \begin{macrocode} -FUNCTION {change.letter.case} - { 't := - duplicate$ empty$ - 'skip$ - { t chr.to.int$ "n" chr.to.int$ = - 'skip$ - { t change.case$ } - if$ - } - if$ - } -% \end{macrocode} -% -% \DescribeEnv{n.dashify} -% The "n.dashify" function makes each single "-" in a string a -% double "--". -% if it's not already.\footnote{This comment by Oren Patashnik.} -% -% \spec{\item A single string for conversion.} -% {\item A single converted string.} -% {\item none} -% -% \begin{macrocode} - 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$ - } -% \end{macrocode} -% -% \DescribeEnv{gather.chars} -% The following function was designed for date parsing, but -% may find other uses as well. It finds the first letter or -% numeral in a given string, then proceeds to build a substring -% until it hits a different character type or the end of the -% string, -% at which point it -% stops parsing and terminates. -% -% \spec{\item A string for parsing.} -% {\item A string toggle showing the character type of the -% first homogenous substring in the string for parsing. -% \item A string of characters from the front of the given string -% which are letters or numbers only. -% \item The remainder of the string.} -% {\item none} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{tie.or.space.connect} -% We use this function from the standard styles. It -% adds a tie if the string it is applied to is three -% characters or less in length. -% -% \spec{\item A string -% \item A second string} -% {\item One string} -% {\item {none}} -% -% \begin{macrocode} - FUNCTION {tie.or.space.connect} - { duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * - } -% \end{macrocode} -% -% \DescribeEnv{format.pages} -% This function accepts one toggle option currently, -% but it is open to expansion. If the "short" toggle is -% fed to this function, it reads through the field until -% it hits a non-integer character. Otherwise, it "n.dashify"s -% the -% whole field. This needs robustification; the page number -% might be a roman numeral. Might it be simplest to just -% drop the scan when we hit a "-"? Deserves some thought. -% -% \spec{\item A toggle string. -% \item page number or possibly -% a range of pages.} -% {\item One string, constituting a finished page number, or {\tt -% empty\$}.} -% {\item {\bf short:} will return only the -% first number given in the string. -% \item {full:} -% will return the page number, n-dashified.} -% \changes{1994/12/05}{1.0e}{Altered {\tt format.pages} so -% that the {\tt short} scan stops at a {\tt-} character, -% rather than a non-integer. Simpler and more robust.} -% \begin{macrocode} -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$ -} -% \end{macrocode} -% -% \paragraph{Names} -% The code for parsing and formatting names is extremely -% economical, -% thanks to the powerful built-in functions that \BibTeX\ -% supplies -% for this purpose. -% -% \DescribeEnv{format.names} -% This is based on Oren Patashnik's original function of the same -% name. His comment was as follows: -% \begin{quote} -% The format.names function formats the argument (which should -% be in -% \BibTeX name format) into ``{\tt First Von Last, Junior}'', -% separated by commas -% and with an "and" before the last (but ending with "et~al." if -% the last -% of multiple authors is "others"). This function's argument -% should always -% contain at least one name. -% The format.authors function returns the result of -% format.names(author) -% if the author is present, or else it returns the null string. -% \end{quote} -% -% This function is used to format any name field that is -% thrown at it. It is based on the 1988 release, but with -% modifications -% to permit toggling, since the Blue Book requires different -% author -% formats for different types of material. The toggling strategy -% should also make modification of this style a pretty simple -% matter. -% -% \spec{\item The contents of one name field -% \item string toggle -% (either {\tt firstinitial}, {\tt lastonly} or {\tt full})} -% {\item A single string, containing a formatted name or names, -% or {\tt empty\$}} -% {\item {\bf firstinitial:} Yields the form ``F.~Bennett, Jr.'' -% \item {lastonly:} -% Yields the form ``Bennett'' -% \item {\bf full:} yields ``Frank Bennett, Jr.''} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \paragraph{Dates} -% The style code for parsing and formatting dates is much more -% complex than that for names. This is due to the need to -% build the necessary tools out of \BibTeX\ primitives, since -% no built-in tools for this task are supplied. There are -% two date formatting routines below. The simpler of the two -% is "format.month.year". This is basically just the function -% supplied with the standard \BibTeX\ styles, under a new name. -% The \LexiBib\ version of "format.date" is underpinned by -% a whole set of new -% functions, and allows great flexibility in the syntax -% for entering dates. -% -% \subparagraph{Old format routine} -% -% \DescribeEnv{format.month.year} -% The "format.date" function is for the month and year, but we -% give a warning if -% there's an empty year but the month is there, and we return the -% empty string -% if they're both empty.\footnote{This comment by Oren -% Patashnik.} -% -% This is not changed over the "format.date" function in the -% original standard \BibTeX{} styles. It is retained, although -% the distributed \LexiBib\ styles won't be making use of it. -% -% \spec{\item none} -% {\item A single string.} -% {\item none} -% -% \begin{macrocode} - 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$ - } -% \end{macrocode} -% -% \subparagraph{New date parsing routines} -% The "format.date" function depends upon a number of -% supporting functions. Some of these are of general utility, -% and are presented above. Those presented here are specific -% to this particular function. -% -% \DescribeEnv{fillout.a.year} -% This adds a leading "19" to a year entered in two-digit -% form. -% -% \spec{\item A single string.} -% {\item A single string.} -% {\item none} -% -% \begin{macrocode} -FUNCTION {fillout.a.year} - { duplicate$ character.length #2 = - { "19" swap$ * } - 'skip$ - if$ - } -% \end{macrocode} -% -% \DescribeEnv{parse.month} -% This function is a simple parser, used in converting -% database entries that have been identified as probable -% abbreviated month entries into numerical string form. -% -% \spec{\item A single string, which should consist of -% exactly three alphabetic characters.} -% {\item A single string of numbers.} -% {\item none} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% -% -% \DescribeEnv{format.month.name} -% \changes{1994/08/09}{v1.0b}{Added {\tt swap\$} as appropriate -% to expose string on stack for {\tt empty\$} check.} -% This takes a numerical string and converts it to either an -% abbrviated or a spelled-out month name. -% -% \spec{\item A toggle string. -% \item A numerical string.} -% {\item A string.} -% {\item {long:} The month name placed on the stack will be -% spelled out. -% \item{short:} The month name will be abbreviated.} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{extract.date} -% This function takes a labelled stack of numeric items, -% and places its contents in a formatted string on -% the stack. It is a subroutine called by "format.date", and is -% not intended for use directly in entry type functions. -% -% The behaviour of this function is a little too complex -% to describe its input and output behaviour using our -% usual description box, so we revert to prose here. -% The expectation of what will appear on the -% stack depends on the contents of the integer -% variable "itemcount". For each date item counted, the -% function expects to find two items on the stack: a -% string possibly flagging the variable into which the -% item should be placed; and a numerical string. -% -% If "itemcount" is "0", we check to see whether the streamlined -% format for parallel citations has been used. If not, a warning -% of an empty date is issued. -% -% If "itemcount" is "1", the flag string is ignored, -% and the numerical item is assumed to be a year. -% -% If "itemcount" is "2", the flag strings are both -% ignored, and the numerical items are assumed to be -% a year and a month, in that order. -% -% If "itemcount" is "3", the first item is assumed to -% be a year. The assignment of the second two items -% depends first upon the contents of the integer -% variable "date.specials". If this is "0", then -% the flags are ignored, and the numerical items are -% assumed to be a day and a month, in that order. -% If "date.specials" is "1" (`true'), then the -% flag of the first item is checked to see whether it -% is ``"month"''. If so, the first item is assigned to -% the "themonth" variable, and the next to the "theday" -% variable. Otherwise the assignments are reversed. -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{topup.date} -% This is used to perform an addition operation on a -% string of numerals. -% -% \spec{\item An integer to be added. -% \item A string consisting of numerals only.} -% {\item A string consisting of the sum of the integer and -% the numeric string.} -% {\item none} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{format.jdate} -% This rather specialized function converts a Japanese -% Imperial date written -% in a fixed syntax into the \LexiBib\ internal date stack, -% for onward handling by "extract.date". -% -% \spec{\item A string in the form: {\tt s57.9.27}, where -% the first letter indicates the Imperial reign of the year -% given, the first numeric item is the year, the second the -% month, and the third the day. Any non-alphabetic, non-numeric -% character may be used as a separator.} -% {\item {\tt itemcount} is set to {\tt 2} (one more is added -% by the {\tt format.date} function in which is function is -% nested). -% \item Six stack items are output---see {\tt extract.date} -% for details on stack syntax.} -% {\item none} -% -% \begin{macrocode} -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 := - } -% \end{macrocode} -% -% \DescribeEnv{format.date} -% This function makes use of "gather.chars" and other supporting -% functions to build a stack of date items, which it then parses -% using "extract.date". The syntax for entering dates is -% described in the user guide. -% -% \spec{\item A single string in appropriate date syntax.} -% {\item none} -% {\item none} -% -% \begin{macrocode} -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$ - } -% \end{macrocode} -% Anyways, here's that line noise. Extracts cite info to variables -% from a parseable string on the stack. Syntax is: -% -%\begin{tabular}{ccccccc} -% year & volume & / & number & journal name & pages & (year)\\ -% "^" & "^" &"^"& "^" & "^" & "^" & "^"\\ -% OPT & OPT &OPT& OPT & REQ & OPT & OPT\\ -%\end{tabular} -% -% You can give a volume without a number (i.e. the backslash -% and trailing number can be left out). -% \begin{macrocode} -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$ -} -%</bstlibrary> -% \end{macrocode} -% \begin{macrocode} -%<*bsttrailer> -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$} -%</bsttrailer> -% \end{macrocode} -% \section{A {\tt .bib} file} -% \begin{macrocode} -%<*bib> -@string{asr..="Am.~Soc.\ Rev."} -@book{bluebook, - title = {A Uniform System of Citation}, - edition = {19th}, - year = 1989 -} -@book{knuth, - title = {The {\TeX} book}, - year = 1990, - author = {D.E. Knuth} -} -@book{leunen, - author = {M.-C. van Leunen}, - title = {A Handbook for Scholars}, - year = 1979 -} -@book{latex-book, - title = {\LaTeX: a document preparation system}, - year = 1994, - author = {Leslie Lamport} -} -@inbook{companion-bibs, - title = {Bibliography Generation}, - chapter = 13, - pages = {371}, - crossref = {latex-companion} -} -@book{latex-companion, - author = {M. Goosens and Frank Mittelbach and A. Samarin}, - title = {The \LaTeX\ Companion}, - booktitle = {The \LaTeX\ Companion}, - year = 1994 -} -@techreport{oren-user, - author = {Oren Patashnik}, - title = {\BibTeX ing}, - year = 1988, - type = {CTAN document} -} -@techreport{oren-hackers, - author = {Oren Patashnik}, - title = {Designing \BibTeX\ Styles}, - type = {CTAN document}, - year = 1988 -} -@book{maki-constitution, - author = {Maki, John McGilvrey}, - title = {Court and Constitution in Japan: Selected Supreme Court Decisions, - 1948-1960}, - publisher = {Washington University Press}, - year = 1964 -} -@booklet{sansom-constitution, - author = {Sansom, {Sir} George Bailey}, - title = {The First Japanese Constitution: A Lecture}, - note = {delivered before the - Asiatic Society of Japan}, - year = 1938 -} -@article{macauley, - author = {Stuart Macauley}, - title = {Non-Contractual Relations -in Business: A Preliminary Study}, - volume = {28}, - journal = asr.., - pages = {55}, - year = {1963} -} -@mastersthesis{homma-derivative, - title = {The Derivative Suit under Japanese Law as a Measure of - Corporate Governance}, - author = {Masahiro Homma}, - institution = {School of Oriental and African Studies}, - type = {LL.M. thesis}, - year = {1994} -} -@case{bradshaw-v-us, - title = {Bradshaw v United States}, - cites = {231 Ct.Cl. 144 (1982) = 683 F.2d 365 (1982)} -} -@incollection{haley-land-lease, - title = {Japan's New Land and House Lease Law}, - author = {John Owen Haley}, - crossref = {policy-failure}, - pages = 149, -} -@book{policy-failure, - title = {Land Issues in Japan: A Policy Failure?}, - booktitle = {Land Issues in Japan: A Policy Failure?}, - year = 1992 -} -@article{appleyard-heed, - author = {Bryan Appleyard}, - title = {Why Major should heed the press}, - pages = 21, - journal = {The Independent}, - year = {7 jul 1995}, - place = {London} -} -@statute{sga, - title = {Sale of Goods Act}, - year = {1979}, - jurisdiction = {england} -} -@case{heap, - title = {Heap v Motorists' Advisory Agency Ltd}, - year = 1923, - journal = {KB}, - number = 1, - pages = 577 -} -@case{halsall-v-brizell, - title = {Halsall v Brizell}, - cites = {[1957] Ch 169 = [1957] 1 All ER 371} -} -%</bib> -% \end{macrocode} -% \section{The Driver File} -% \begin{macrocode} -%<*installer> -\def\batchfile{camel.ins} -\input docstrip.tex -\preamble - -Copyright (C) 1992--95 Frank Bennett, Jr. -All rights reserved. - -This file is part of the Camel package. -\endpreamble - -\def\batchfile{camel.dst} % ignored in distribution -\input docstrip.tex % ignored in distribution - -\Ask\answer{% - ************************************************************** - ^^J* PLEASE NOTE - ^^J* - ^^J* Camel requires a large BibTeX, with a wizard-defined - ^^J* function space of over 6,000. The function space in - ^^J* standard BibTeX is only 3,000, so if your BibTeX has never - ^^J* been enlarged, it will probably need to be recompiled. - ^^J* - ^^J* If this seems terribly cryptic, just go ahead and give - ^^J* it a go. Feel free to write me on fb@soas.ac.uk if you - ^^J* have problems. - ^^J* - ^^J* In addition to camel.dtx, you will also need the keyval - ^^J* and overword packages, also available from CTAN. You - ^^J* should have an up-to-date copy of index.dtx as well. - ^^J* - ^^J* Also, to print the .dtx files in the Camel bundle, you - ^^J* should use the usual gind.ist file for making the indexes; - ^^J* camel.ist is used for special purposes outlined in the - ^^J* manual. - ^^J* - ^^J* Shall I unpack my things? - ^^J* - ^^J* If you want me to go ahead, answer `y' below, otherwise `n'. - ^^J* - ^^J**************************************************************} - -\keepsilent - -\preamble - -This file is part of the Camel package. ---------------------------------------- -This is a generated file. - -IMPORTANT NOTICE: - -You are not allowed to change this file. You may however copy -this file to a file with a different name and then change the -copy if (a) you do not charge for the modified code, (b) you -acknowledge Camel and its author(s) in the new file, if it -is distributed to others, and (c) you attach these same -conditions to the new file. - -The above conditions do not apply to the demonstration -file test.tex. - -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 - -\endpreamble - - -{\ifx\answer\y - -\generate{\file{camel.sty} {\from{camel.dtx}{lexitex}} - \file{camel.ist} {\from{camel.dtx}{camelindex}} - \file{camel.bib} {\from{camel.dtx}{bib}} - \file{test.tex} {\from{camel.dtx}{testtex}}} - -\fi} - -\keepsilent - - -\ifToplevel{ -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation, you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space camel.sty} -\Msg{*} -\Msg{* You also need to move the following file into a directory} -\Msg{* searched by makeindex:} -\Msg{*} -\Msg{* \space\space camel.ist} -\Msg{*} -\Msg{* Note that Camel does not work by itself; style modules} -\Msg{* (such as law.dtx) are supplied separately. They can} -\Msg{* be found on CTAN in the Camel subdirectory.} -\Msg{*} -\Msg{***********************************************************} -} -%</installer> -% \end{macrocode} -% \begin{macrocode} -%<*testtex> -\documentclass{article} -\usepackage{camel} - -%<+testtex>%\citationsubject[o=sta,i=stb]{statutes}{Statutory Materials} -%<+testtex>%\citationsubject[o=sec,i=seb]{second}{Secondary Literature} -%<+testtex>%\citationsubject[o=cas,i=cab]{case}{Cases} - -\begin{document} -\citationstyle{law} -\citationdata{camel} - -\section*{{\sc Camel} tests and examples\footnotemark{}{} } -\footnotetext{Note that, in addition to admiring the examples in - this document, you can tinker with it to produce different - kinds of bibliographies. See the comments in the file for - suggestions.} - - -We currently have support for articles (including newspaper -articles), items in collections of -essays, books, sections of books, ephemeral booklets, masters theses, -Commonwealth, US and Japanese cases, and statutes from a few -jurisdictions. An example of each is given below, first without, -then with a pinpoint. This does not give a complete picture of -the `formatting tree', it''s just a sample. - -\begin{itemize} -\item Ordinary articles - \begin{itemize} - \item \source[s=second]{macauley} - \item \source[f,s=second]{macauley}[56] - \end{itemize} -\item Newspaper articles - \begin{itemize} - \item \source[s=second]{appleyard-heed} - \item \source[f,s=second]{appleyard-heed}[21] (A silly example, - since there's only one page to the piece!) - \end{itemize} -\item Articles in collections of essays - \begin{itemize} - \item \source[s=second]{haley-land-lease} - \item \source[f,s=second]{haley-land-lease}[152] - \end{itemize} -\item Books - \begin{itemize} - \item \source[f,s=second]{latex-companion} - \item \source[f,s=second]{latex-companion}[371] - \end{itemize} -\item Sections of books - \begin{itemize} - \item \source[f,s=second]{companion-bibs} - \item \source[f,s=second]{companion-bibs}[374-75] (The BibTeX{} - processing flow shown here is simplified for {\sc Camel} users) - \end{itemize} -\item Ephemeral booklets - \begin{itemize} - \item \source[f,s=second]{sansom-constitution} - \item \source[f,s=second]{sansom-constitution}[2] - \end{itemize} -\item Masters theses - \begin{itemize} - \item \source[f,s=second]{homma-derivative} - \item \source[f,s=second]{homma-derivative}[23] - \end{itemize} -\item Commonwealth law cases - \begin{itemize} - \item \source[f,s=case]{heap} - \item \source[f,s=case]{heap}[578]\footnote{Notice how the - pinpointed citation gives only as many parallel as are - specified in the pinpoint. Compare this with the next example.} - \end{itemize} -\item US law cases - \begin{itemize} - \item \source[f,s=case]{bradshaw-v-us} - \item \source[f,s=case]{bradshaw-v-us}[145=366] - \end{itemize} -\end{itemize} -Titles that end in a numeral are a special treat. {\sc Camel} -is not tricked by them. -\begin{itemize} - \item \source[s=statutes]{maki-constitution}[23] - \item \source[f,s=statutes]{maki-constitution} -\end{itemize} -Selective suppression of author, title, or the entire citation is -supported. -\begin{itemize} - \item \source[a,f,s=second]{homma-derivative} - \item \source[t,f,s=second]{homma-derivative} - \item \source[n,s=second]{homma-derivative} (invisible) -\end{itemize} - -%<+testtex>% If you uncomment the \citationsubject lines above, -%<+testtex>% you can comment out the `all' entry below, run -%<+testtex>% makeindex in the appropriate way over the output -%<+testtex>% files, uncomment the three special bibliography -%<+testtex>% declarations below, and print a whole different sort -%<+testtex>% of document. There are a few bugs in the way -%<+testtex>% bibliographies are set up. Sorting them out will -%<+testtex>% best be done once BibTeX 1.0 is available, since -%<+testtex>% integrating with the new BibTeX will affect the same -%<+testtex>% portions of the code. -\printbibliography[labels=false]{all} -%<+testtex>%\printbibliography{statutes} -%<+testtex>%\printbibliography{case} -%<+testtex>%\printbibliography{second} -\end{document} -%</testtex> -% \end{macrocode} -% \Finale \PrintChanges diff --git a/Master/texmf-dist/source/latex/camel/camel.ins b/Master/texmf-dist/source/latex/camel/camel.ins deleted file mode 100644 index d904ed72d28..00000000000 --- a/Master/texmf-dist/source/latex/camel/camel.ins +++ /dev/null @@ -1,126 +0,0 @@ -%% -%% This is file `camel.ins', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% camel.dtx (with options: `installer') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% You are *not* allowed to modify this file. -%% -%% You are *not* allowed to distribute this file. -%% For distribution of the original source see -%% the terms for copying and modification in the file camel.dtx. -%% -\def\batchfile{camel.ins} -\input docstrip.tex -\preamble - -Copyright (C) 1992--95 Frank Bennett, Jr. -All rights reserved. - -This file is part of the Camel package. -\endpreamble - -\def\batchfile{camel.dst} % ignored in distribution -\input docstrip.tex % ignored in distribution - -\Ask\answer{% - ************************************************************** - ^^J* PLEASE NOTE - ^^J* - ^^J* Camel requires a large BibTeX, with a wizard-defined - ^^J* function space of over 6,000. The function space in - ^^J* standard BibTeX is only 3,000, so if your BibTeX has never - ^^J* been enlarged, it will probably need to be recompiled. - ^^J* - ^^J* If this seems terribly cryptic, just go ahead and give - ^^J* it a go. Feel free to write me on fb@soas.ac.uk if you - ^^J* have problems. - ^^J* - ^^J* In addition to camel.dtx, you will also need the keyval - ^^J* and overword packages, also available from CTAN. You - ^^J* should have an up-to-date copy of index.dtx as well. - ^^J* - ^^J* Also, to print the .dtx files in the Camel bundle, you - ^^J* should use the usual gind.ist file for making the indexes; - ^^J* camel.ist is used for special purposes outlined in the - ^^J* manual. - ^^J* - ^^J* Shall I unpack my things? - ^^J* - ^^J* If you want me to go ahead, answer `y' below, otherwise `n'. - ^^J* - ^^J**************************************************************} - -\keepsilent - -\preamble - -This file is part of the Camel package. ---------------------------------------- -This is a generated file. - -IMPORTANT NOTICE: - -You are not allowed to change this file. You may however copy -this file to a file with a different name and then change the -copy if (a) you do not charge for the modified code, (b) you -acknowledge Camel and its author(s) in the new file, if it -is distributed to others, and (c) you attach these same -conditions to the new file. - -The above conditions do not apply to the demonstration -file test.tex. - -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 - -\endpreamble - -{\ifx\answer\y - -\generate{\file{camel.sty} {\from{camel.dtx}{lexitex}} - \file{camel.ist} {\from{camel.dtx}{camelindex}} - \file{camel.bib} {\from{camel.dtx}{bib}} - \file{test.tex} {\from{camel.dtx}{testtex}}} - -\fi} - -\keepsilent - -\ifToplevel{ -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation, you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space camel.sty} -\Msg{*} -\Msg{* You also need to move the following file into a directory} -\Msg{* searched by makeindex:} -\Msg{*} -\Msg{* \space\space camel.ist} -\Msg{*} -\Msg{* Note that Camel does not work by itself; style modules} -\Msg{* (such as law.dtx) are supplied separately. They can} -\Msg{* be found on CTAN in the Camel subdirectory.} -\Msg{*} -\Msg{***********************************************************} -} -\endinput -%% -%% End of file `camel.ins'. diff --git a/Master/texmf-dist/source/latex/camel/law.cit b/Master/texmf-dist/source/latex/camel/law.cit deleted file mode 100644 index 45f86517602..00000000000 --- a/Master/texmf-dist/source/latex/camel/law.cit +++ /dev/null @@ -1,75 +0,0 @@ -%% -%% This is file `law.cit', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% law.dtx (with options: `lawcite') -%% 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 -%% -\ProvidesFile{law.cit}[1994/12/07] -\newcitestyle{book}% - {srsrrrB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -\newcitestyle{booklet}% - {riririB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -\newcitestyle{techreport}% - {riririB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -\newcitestyle{mastersthesis}% - {riririB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -\newcitestyle{article}% - {rsirsrA} - {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ -at~[xrf]} -\newcitestyle{incollection}% - {rsirsrA} - {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ -at~[xrf]} -\newcitestyle{inbook}% - {srirsrA} - {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ -at~[xrf]} -\newcitestyle{case}% - {rrirrsC} - {[a][t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -\newcitestyle{statute}% - {rrrsrsS} - {[a][t],\ [c]\ \S~[p](pl)\ \S\S~[rp]\ [e]:[id]\ \S~(pl)\ -\S\S~[xrf]} -\newcitestyle{jstatute}% - {rrrsrsS} - {[a][t][c]\ \S~[p](pl)\ \S\S~[rp]\ [e]:[id]\ \S~(pl)\ -\S\S~[xrf]} -\endinput -%% -%% End of file `law.cit'. diff --git a/Master/texmf-dist/source/latex/camel/law.cst b/Master/texmf-dist/source/latex/camel/law.cst deleted file mode 100644 index 17fb75a8550..00000000000 --- a/Master/texmf-dist/source/latex/camel/law.cst +++ /dev/null @@ -1,260 +0,0 @@ -%% -%% This is file `law.cst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% law.dtx (with options: `lawcitestyle') -%% 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 -%% -\ProvidesFile{law.cst}[1995/01/08] -{\catcode`\_=13% - \catcode`\^=13% -\gdef\@law@wordlist{% - \\{\item}{\item}% - \\{and}{_\ ^And }% - \\{but-see}{_\ ^But see }% - \\{,}{_; }% - \\{;}{_; }% - \\{:}{_; }% - \\{eg}{_; ^E.g.~}% - \\{accord}{_; ^Accord }% - \\{see}{_; ^See }% - \\{see-also}{_; ^See also }% - \\{cited-in}{ cited in }% - \\{citing}{ citing }% - \\{cf}{_; ^Cf.~}% - \\{compare}{_; ^Compare }% - \\{with}{ with }% - \\{contra}{_; ^Contra }% - \\{but-cf}{_\ ^But cf.~}% - \\{see-generally}{_. See generally }% - \\{affirmed}{_, ^aff'd }% - \\{reprinted-in}{_; ^Reprinted in }% - \@law@nomatch} -} -\gdef\@law@print{% - \xdef\@law@argtwolist{\the\@ltok@argtwo}% - \if@law@firstuseofcite\@law@longcitetrue\fi% -\if@law@printcite% - \begingroup% - \def\@law@firstslash{\begingroup\def\\{\@law@secondslash}% - \the\ltokspecialface}% - \def\@law@secondslash{\endgroup\def\\{\@law@firstslash}}% - \def\\{\@law@firstslash}% -\if@law@longcite% - \global\ltokspecialface=\@ltok@authoroptionface% - {\the\@ltok@authormainface% - \@law@barinfull\the\@ltok@author}\the\@ltok@atot% - \global\ltokspecialface=\@ltok@titleoptionface% - {\the\@ltok@titlemainface% - \@law@barinfull\the\@ltok@name}\the\@ltok@ttocone% - \@law@longrecurse% -\else% - \ifnum\the\@ltok@pageorfootno=\the\c@law@footnote\relax% - \xdef\@law@temp{\the\@ltok@whereitsat}% - \xdef\@law@temptwo{\the\@ltok@infoot}% - \ifx\@law@temp\@law@temptwo% - \global\@ltok@whereitsat{}% - \global\@ltok@pageorfootno{}% - \fi% - \fi% -\csname @law@\the\@ltok@citetype preformat\endcsname% - \if@justabove% - {\def\,{,}% - \Id% - \if@l@quiteexact% - \gdef\@law@gobble{\@ifnextchar.{\@gobble}{}}% - \else% - \ifcat$\the\@ltok@argtwo$% - \gdef\@law@gobble{\@ifnextchar.{\@gobble}{}}% - \else% - - \the\@ltok@atbridge{\@law@barkill\the\@ltok@argtwo\relax}% - \@law@fetchparas% - \@law@shiftparas% - \@law@shortrecurse% - \fi% - \fi}% - \else% - \global\ltokspecialface=\@ltok@authoroptionface% - {\the\@ltok@authormainface% - \@law@barinshort\the\@ltok@author}\the\@ltok@atot% - \global\ltokspecialface=\@ltok@titleoptionface% - {\the\@ltok@titlemainface% - \@law@barinshort\the\@ltok@name}% - \xdef\@law@temp{\the\@ltok@citetype}% - \ifx\@law@temp\@law@case% - \@nosupratrue% - \else% - \ifx\@law@temp\@law@statute% - \@nosupratrue% - \else% - \@nosuprafalse% - \fi% - \fi% - \if@nosupra% - \the\@ltok@ttocone% - \@law@shortprint% - \@law@shortrecurse% - \else% - \supra\the\@ltok@whereitsat\the\@ltok@pageorfootno% - \the\@ltok@atbridge% - {\def\,{,}% - {\@law@barkill\the\@ltok@argtwo\relax}}% - \fi% - \xdef\@law@temp{\the\@ltok@citetype}% - \ifx\@law@temp\@law@statute% - \ifcat$\the\@ltok@citefirst$% - \the\@ltok@ptoctwo{\@law@barinshort\the\@ltok@citelast}% - \fi% - \fi% - \fi% -\fi% -\endgroup% -\fi% <- end of if@law@printcite -\global\@law@longcitefalse\gdef\volno{\message{(No volume % - for \the\@ltok@nickname)}}}% -\def\@law@longrecurse{% - \@law@longprint% - \ifnum\the\c@law@parapin>0\relax% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter<\the\c@law@parapin\relax% - ; \@law@longprint% - \repeat% - \else% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter>\the\c@law@paranormal\relax% - \else% - ; \@law@longprint% - \repeat% - \fi% - \@law@temp} -\def\@law@shortrecurse{% - \ifnum\the\c@law@parapin>0\relax% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter<\the\c@law@parapin\relax% - \@law@pincut\@ltok@argtwo\frompinlist% - ; \@law@shortprint% - \repeat% - \else% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter>\the\c@law@paranormal\relax% - \else% - ; \@law@shortprint% - \repeat% - \fi} -\def\@law@longprint{% - \begingroup% - \@law@fetchparas% - \@law@tidybridges% - \ifcat$\the\@ltok@argtwo$% - \global\@ltok@ptop{}% - \global\@ltok@atbridge{}% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@conetop{}% - \fi% - \fi% - \global\ltokspecialface=\@ltok@citefirstoptionface% - {\the\@ltok@citefirstmainface% - \@law@barinfull\the\@ltok@citefirst}% - \@law@conetopsetup% - \the\@ltok@conetop% - \the\@ltok@citepage\the\@ltok@ptop% - {\def\,{,}\@law@barkill% - \expandafter\the\@ltok@argtwo% - \relax}% - \xdef\@law@temp{% - \the\@ltok@ptoctwo% - \noexpand\@law@barinfull% - \the\@ltok@citelast}% - \xdef\@law@temptwo{% - \the\@ltok@ptoctwo% - \noexpand\@law@barinfull% - \the\@ltok@usercitelast}% - \ifx\@law@temp\@law@temptwo% - \else% - {\@law@temp}% - \gdef\@law@temp{}% - \fi% - \@law@shiftparas% - \endgroup}% -\def\@law@shortprint{% - \begingroup% - \@law@fetchparas% - \@law@tidybridges% - \global\ltokspecialface=\@ltok@citefirstoptionface% - {\the\@ltok@citefirstmainface% - \@law@barinshort\the\@ltok@citefirst}% - \@law@conetopsetup% - \the\@ltok@conetop% - \ifcat$\the\@ltok@argtwo$% - \the\@ltok@citepage% - \else% - {\@law@barkill\the\@ltok@argtwo}% - \fi% - \@law@shiftparas% - \endgroup}% -\gdef\@law@casepreformat{}% -\gdef\@law@statutepreformat{% -\if@law@statuteverbose% -\else% - \ifcat$\the\@ltok@citefirst$% - \else% - \global\@ltok@name{}% - \global\@ltok@ttocone{}% - \fi% -\fi% -}% -\gdef\@law@articlepreformat{% -\ifcat$\the\@ltok@author$% -\else% -{\@law@clean\@ltok@author\@law@authortracing% -\expandafter\expandafter\expandafter\if\expandafter% -\csname\@law@authortracing\endcsname2% - \else% - \global\@ltok@atot{}\global\@ltok@name{}% -\fi}\fi}% -\gdef\@law@bookpreformat{% -\ifcat$\the\@ltok@author$% -\else% -{\@law@clean\@ltok@author\@law@authortracing% -\expandafter\expandafter\expandafter\if\expandafter% -\csname\@law@authortracing\endcsname2% - \else% - \global\@ltok@atot{}\global\@ltok@name{}% - \fi}\fi}% -\endinput -%% -%% End of file `law.cst'. diff --git a/Master/texmf-dist/source/latex/camel/law.dtx b/Master/texmf-dist/source/latex/camel/law.dtx deleted file mode 100644 index b88eb650c37..00000000000 --- a/Master/texmf-dist/source/latex/camel/law.dtx +++ /dev/null @@ -1,1774 +0,0 @@ -% \iffalse -%<*driver> -\documentclass{ltxdoc} -\usepackage{camel} -\usepackage{array} - -\def\fileversion{0.1d} -\def\filedate{1997/01/09} -\def\docdate {1997/01/09} - -\EnableCrossrefs -\RecordChanges % Gather update information -\CodelineIndex % Index code by line number -%\OnlyDescription % comment out for implementation details -\let\lawhline=\hline -\begin{document} -\citationstyle{law} -\citationdata{camel} -\title{The {\sc Law} module for the {\sc Camel} Bibliography - Engine\thanks{% - This file has version number \fileversion{} dated - \filedate{}. - The documentation was last revised on \docdate. - The documentation and the code for {\sc Camel} - are \copyright{} 1992--95 Frank Bennett, Jr. Distribution - and use are freely welcomed, on the sole condition that - acknowledgement of the {\sc Camel} package, its {\sc Law} - module and of their author - be made in any published using these utilities. - }} -\author{Frank G Bennett, Jr.\thanks{Lecturer in the Commercial - Laws of the Far East, School of - Oriental and African Studies, University of London. - Acknowledgements of the numerous people who have provided - comments and suggestions in the development of this module - and of the {\sc Camel} package itself are listed in the users' - guide to that software.}} -\maketitle -\DocInput{law.dtx} -\end{document} -%</driver> -% \fi -% \CheckSum{741} -% -%\iffalse -% -% Copyright (C) 1992-1995 by Frank Bennett. All rights reserved. -% -% IMPORTANT NOTICE: -% -% You are not allowed to change this file. You may however copy -% this file to a file with a different name and then change the -% copy if (a) you do not charge for the modified code, (b) you -% acknowledge Camel and its author(s) in the new file, if it -% is distributed to others, and (c) you 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 altogether more thrilling package, please contact me on -% fb@soas.ac.uk -% -%\fi -% -% -% \DoNotIndex{\@,\@@par,\@beginparpenalty,\@empty} -% \DoNotIndex{\@flushglue,\@gobble,\@input} -% \DoNotIndex{\@makefnmark,\@makeother,\@maketitle} -% \DoNotIndex{\@namedef,\@ne,\@spaces,\@tempa} -% \DoNotIndex{\@tempb,\@tempswafalse,\@tempswatrue} -% \DoNotIndex{\@thanks,\@thefnmark,\@topnum} -% \DoNotIndex{\@@,\@elt,\@forloop,\@fortmp,\@gtempa,\@totalleftmargin} -% \DoNotIndex{\",\/,\@ifundefined,\@nil,\@verbatim,\@vobeyspaces} -% \DoNotIndex{\|,\~,\ ,\active,\advance,\aftergroup,\begingroup,\bgroup} -% \DoNotIndex{\cal,\csname,\def,\documentstyle,\dospecials,\edef} -% \DoNotIndex{\egroup} -% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\endtrivlist} -% \DoNotIndex{\expandafter,\fi,\fnsymbol,\futurelet,\gdef,\global} -% \DoNotIndex{\hbox,\hss,\if,\if@inlabel,\if@tempswa,\if@twocolumn} -% \DoNotIndex{\ifcase} -% \DoNotIndex{\ifcat,\iffalse,\ifx,\ignorespaces,\index,\input,\item} -% \DoNotIndex{\jobname,\kern,\leavevmode,\leftskip,\let,\llap,\lower} -% \DoNotIndex{\m@ne,\next,\newpage,\nobreak,\noexpand,\nonfrenchspacing} -% \DoNotIndex{\obeylines,\or,\protect,\raggedleft,\rightskip,\rm,\sc} -% \DoNotIndex{\setbox,\setcounter,\small,\space,\string,\strut} -% \DoNotIndex{\strutbox} -% \DoNotIndex{\thefootnote,\thispagestyle,\topmargin,\trivlist,\tt} -% \DoNotIndex{\twocolumn,\typeout,\vss,\vtop,\xdef,\z@} -% \DoNotIndex{\,,\@bsphack,\@esphack,\@noligs,\@vobeyspaces,\@xverbatim} -% \DoNotIndex{\`,\catcode,\end,\escapechar,\frenchspacing,\glossary} -% \DoNotIndex{\hangindent,\hfil,\hfill,\hskip,\hspace,\ht,\it,\langle} -% \DoNotIndex{\leaders,\long,\makelabel,\marginpar,\markboth,\mathcode} -% \DoNotIndex{\mathsurround,\mbox,\newcount,\newdimen,\newskip} -% \DoNotIndex{\nopagebreak} -% \DoNotIndex{\parfillskip,\parindent,\parskip,\penalty,\raise,\rangle} -% \DoNotIndex{\section,\setlength,\TeX,\topsep,\underline,\unskip,\verb} -% \DoNotIndex{\vskip,\vspace,\widetilde,\\,\%,\@date,\@defpar} -% \DoNotIndex{\[,\{,\},\]} -% \DoNotIndex{\count@,\ifnum,\loop,\today,\uppercase,\uccode} -% \DoNotIndex{\baselineskip,\begin,\tw@} -% \DoNotIndex{\a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,\n,\o,\p,\q} -% \DoNotIndex{\r,\s,\t,\u,\v,\w,\x,\y,\z,\A,\B,\C,\D,\E,\F,\G,\H} -% \DoNotIndex{\I,\J,\K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z} -% \DoNotIndex{\1,\2,\3,\4,\5,\6,\7,\8,\9,\0} -% \DoNotIndex{\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_} -% \DoNotIndex{\discretionary,\immediate,\makeatletter,\makeatother} -% \DoNotIndex{\meaning,\newenvironment,\par,\relax,\renewenvironment} -% \DoNotIndex{\repeat,\scriptsize,\selectfont,\the,\undefined} -% \DoNotIndex{\arabic,\do,\makeindex,\null,\number,\show,\write,\@ehc} -% \DoNotIndex{\@author,\@ehc,\@ifstar,\@sanitize,\@title,\everypar} -% \DoNotIndex{\if@minipage,\if@restonecol,\ifeof,\ifmmode} -% \DoNotIndex{\lccode,\newtoks,\onecolumn,\openin,\p@,\SelfDocumenting} -% \DoNotIndex{\settowidth,\@resetonecoltrue,\@resetonecolfalse,\bf} -% \DoNotIndex{\clearpage,\closein,\lowercase,\@inlabelfalse} -% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault} -% \DoNotIndex{\bfdefault} -% \setcounter{StandardModuleDepth}{1} -% \MakeShortVerb{\"} -% -% \begin{abstract} -% \noindent The {\tt Law} module for the {\sc Camel} bibliography -% package and \BibTeX{} attempts to implement fully automated typesetting -% of citations in the so-called Blue Book style used in -% the publication of legal materials. This -% demanding style requires context sensitive -% in-footnote cross-referencing -% between citations. -% \end{abstract} -% -% \noindent An adage in office management is that you should -% only touch incoming paper once; to respond to it, to file -% it, to forward it, or to destroy it. A number of -% commercial citation -% database managers provide a facility for ``filing'' citations -% in a flexible form, the idea being to extend this principle -% to citations as well as paper. A hanging point for this -% strategy as been in-text context-sensitive citation styles. -% Database managers are at their best in exporting -% entire bibliographies -% and lists of authorities. Some packages are -% capable of scanning a document for citation ``tags'', -% which eliminates the need to separately select bibliography -% items in the database. Some, too, can replace ``tags'' -% in the document with the formatted text of a citation. -% But once the text is replaced, the format of citations -% added in this way is fixed; conversion is a one-way process. -% -% A more serious problem is that, while the database manager -% can easily identify the {\em tag}, it is far more difficult, -% without logical markup, to identify its -% {\em context\/}---whether it occurs in a footnote, how many -% items were in the preceding footnote, how many articles -% by the same author are cited in the document, and so forth. -% As a result, citation formatting of cross-referenced styles -% is still generally done by hand. -% -% One of the most demanding cross-referenced styles is that -% laid down in {\sl A Uniform System of Citation}, or ``the Blue -% Book'', for the citation of legal materials. This style -% has survived the era of computerization largely because -% most U.S. law journals using the style are edited by highly -% competitive law students. Staff members contribute their -% editorial time to their journal free of charge, because of -% the value of listing law journal membership on their resume. -% The Blue Book style minimizes the bulk of citation -% text, while conveying sufficient information to the reader -% for the location of cited material. It is also designed -% to provide all information required for the location of -% {\em primary\/} legal authority from the face of any citation -% to it, without tracing down cross-references. -% -% A first attempt to address this problem was made in -% the complementary \LexiTeX{} -% and \LexiBib{} packages, for \LaTeX{} and \BibTeX{} -% respectively. Lessons learned from developing these -% packages suggested that a comprehensive formatting package -% for legal citations could serve as the foundation for -% a modular, highly generalized citation and bibliography -% formatting system. The logical code from these packages -% was excised and used in the drafting of the {\sc Camel} -% bibliography engine. The typesetting code was then used -% to assemble the {\sc Law} module for {\sc Camel}. -% -% The implications of such a system are particularly interesting -% if it comes to be widely used in the publication of -% law journals or, even better, in the publication of court -% judgements. The efficiency with which -% citations can be reported to citation services would be -% increased, since \BibTeX-format database entries -% are in a standard format that can -% be processed electronically. These same lists could -% be made available as text-searchable databases of authority. -% Network discussions of legal issues could be accompanied by -% growing lists of annotated authority, available for all to -% use. -% -% To use this package, all you should need to do is unpack -% the files by running {\tt law.ins} (thanks to Robin Fairbairns -% for pushing me toward a standard-ish method of installation!), -% copy the style files to their respective homes, and follow the -% markup conventions described in the {\sc Camel} manual. The -% same should apply to any other bibliography -% modules produced for {\sc Camel} in the future, no matter what -% sort of contortions they put your citation data through before -% they end up on the page. If it has extensive documentation, -% it's {\em not\/} a {\sc Camel} module! -% -% You are not under an obligation to enjoy this package. If you -% have complaints, you can contact me on {\tt fb@soas.ac.uk}. -% -%\StopEventually{} -% \section{The style code} -% \subsubsection{Entry type specific functions} -% The functions below should not be used as general utilities; -% they are designed specifically for use with a particular entry -% type. While they could be placed directly into the entry -% functions to which they apply, defining them separately -% helps improve the transparency of the code. -% -% \DescribeEnv{build.bridges} -% I'm not actually sure whether this function belongs in {\tt -% camel.dtx} or in {\tt law.dtx}. What it does is to insert (or -% not insert) an appropriate "\bridges" declaration into the {\tt -% .bbl} file for the current citation. It is governed by a -% string existing on the stack when it is invoked, and leaves -% nothing on the stack. Toggles are {\tt schedules}, {\tt sections} and {\tt -% articles}. Season to taste. -% \begin{macrocode} -%<*bstfunctions> -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$ - } -% \end{macrocode} -% \DescribeEnv{get.a.kinda.sort.key} -% It is early days for the sorting of bibliographies in {\sc -% Camel}. This will give a rough key. -% \begin{macrocode} -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$ -} -% \end{macrocode} -% \DescribeEnv{j.format.division} -% This function assembles the various fields relevant to the -% division of a Japanese court into a single string. -% \begin{macrocode} -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 - } -% \end{macrocode} -% -% \subsubsection{Entry type functions} -% Now we define the type functions for all entry types that may -% appear -% in the {\tt*.bib} file---e.g., functions like `"article"' and -% `"book"'. These -% are the routines that actually generate the "*.bbl" file output -% for -% the entry. These must all precede the "READ" command. In -% addition, the -% style designer should have a function `"default.type"' for -% unknown types.\footnote{This comment by Oren Patashnik.} -% -% \DescribeEnv{article} -% This function performs the necessary operations for -% exporting a valid \LexiTeX\ citation to an article. -% For this and for all citation types defined in the -% \LexiBib{} style, the goal is to provide reasonably -% complete commentary, so that anyone wanting to -% alter the behaviour of the style can set to work -% with a fair degree of confidence about what needs to -% be done to achieve a particular result. -% \begin{macrocode} -FUNCTION {article} -% \end{macrocode} -% The "article" entry is used for all kinds of material, so -% it ends up as one of the most complex entries. Before we -% do anything, we have to check whether the default {\sc Camel} -% bridges are acceptable. There are two types of situations to watch out -% for. First, if the volume and the number are both -% non-empty, we need to add a special set of substitute bridges. -% Alternatively, if both "volume" and "number" are empty, -% but the date is more specific than just a year, we -% assume we are dealing with a newspaper. In either case, -% we use the same special set of bridges. -% \begin{macrocode} -{ 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$ - } -% \end{macrocode} -% Second, the {\tt @article} entry type, like many entry types in -% the Blue Book style normally places -% white space between the title -% and a pinpoint page number. If the title ends in a numeral -% this will be confusing, so the Blue Book requires that we -% separate the two with a comma in this case. The following -% adjustment to bridging punctuation accomplishes this purpose. -% \begin{macrocode} - { title type.last.char "numeral" = - { "\bridges{,\ }{,\ }{,\ }{\ }{\ at~}{\ at~}" - "" "" must.must.must - newline$ - } - 'skip$ - if$ - }if$ -% \end{macrocode} -% \changes{1995/07/08}{v0.1a}{Function {\tt type.last.char} and -% {\tt\protect\string\protect\bridges} declaration used to handle titles ending -% in a numeral correctly (by the insertion of a comma). Added to -% the {\tt @article} and {@book} entries as a trial; will -% propagate to other entry types once this change is trusted.} -% Then we write the citation leader, to prepare for outputting the -% actual content of the citation text. -% \begin{macrocode} - "\lexibib{article}{" cite$ "}{" must.must.must - get.a.kinda.sort.key - "}{" "" must.must.must -% \end{macrocode} -% The author name is pushed to the stack, followed by a toggle -% to trigger last-name-only formatting. Then the "format.names" -% reduces this to a single, appropriately-formatted string, -% possibly the null string. All that is left to do is push a -% set a braces, a null string to make up three arguments to the -% export routine, and write the lot on the output -% file unconditionally, using "must.must.must". -% \begin{macrocode} -author "lastonly" format.names -"}{" -"" -must.must.must -% \end{macrocode} -% Next comes the title of the article. This is not specially -% formatted; we simply push the title field, then a warning -% string -% followed by a check for whether it is empty or not, then -% braces and a null string, and write again. -% \begin{macrocode} -title "title" check -"}{" -"" -must.must.must -% \end{macrocode} -% The next bit is actually rather thorny. There are three -% possible cases. The first is where both a volume number -% and an issue number exist. In this case, we use a -% verbose form of reference. In the second, there is no -% volume number, but possibly an issue number. This is -% the proper form for Commonwealth legal materials, -% and requires the year in brackets, followed by the -% issue number to show the volume within the year. -% Third, we may simply have a volume number by itself. -% This calls for the citation form for most journals, -% and U.S. case reporters. -% \begin{macrocode} - 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$ -% \end{macrocode} -% The Blue Book does not like page ranges -% so we need to clean -% out anything following a dash in the "pages" field. The -% "short" option -% toggles this behaviour on. We also check to see that the page -% is not empty. This is followed by braces, a null string, and -% output. -% \begin{macrocode} -pages "short" format.pages "pages" check -"}{" -"" -must.must.must -% \end{macrocode} -% We add the year next, but only if the "volume" field is -% non-empty (if "volume" is empty, we'll have put the year -% is as a bracketed volume number, Commonwealth-style. -% We could use just the year (this is normal for Blue Book -% style, but we'll add the month for good measure, if it's -% been provided in the "year" field. -% \begin{macrocode} -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$ -% \end{macrocode} -% Finally, we have to tangle with cross-references. -% Yuck. (Not a complaint about \BibTeX, just a general -% response to the design problems inherent in the task). -% Formatting depends on whether there is a "crossref" entry. -% Hear that, guys? If you don't use the "crossref" field, -% we'll short-change you on formatting service. -% \begin{macrocode} -crossref empty$ -% \end{macrocode} -% If there is no "crossref", we just push a brace and a couple -% of nulls, and write. Done! Hurray! -% \begin{macrocode} -{ "}" "" "" must.must.must } -% \end{macrocode} -% But if there {\em was\/} a "crossref", we've got work to do. -% Darn. The first thing we do is have a look at "booktitle". -% This should be non-null in this situation; there's no sense -% setting up a cross-reference to an individual volume of -% a journal unless there's something special to be said -% about it. -% \begin{macrocode} -{ booktitle empty$ -% \end{macrocode} -% So if no "booktitle" is found, we whinge and format -% as for a no-cross-reference entry. -% \begin{macrocode} - { "no booktitle (name of special issue) for " - cite$ "/" crossref ". Why a crossref?" * * * * warning$ - "}" "" "" must.must.must } -% \end{macrocode} -% If there {\em is\/} a "booktitle", though, -% and if the "volume" field is non-empty (which -% means that we just printed, or at least should -% have printed, the year), we close the -% parens following the year (which is opened by \LexiTeX), -% and open another (which will be closed by \LexiTeX). -% That's it for conditional punctuation; we follow -% with "booktitle", which should be -% the title or subject description of the special -% issue of the journal. -% \begin{macrocode} - { volume empty$ {""} {") ("} if$ booktitle "}" must.must.must} - if$ -}if$ -% \end{macrocode} -% Add a fresh new line in the export file, and we're done! Whew! -% \begin{macrocode} -newline$ -} -% \end{macrocode} -% -% \DescribeEnv{book} -% This is the entry for books, which includes individual -% volumes in a series, and multi-volume works with a single -% title. Correct me if I'm wrong, but I think this latter -% citation type is not supported by \BibTeX. \LexiBib{} -% manages it by allowing the user to specify the volume -% number in the text using the optional ":<number>:" argument to -% the "\lexicite" tag. -% \begin{macrocode} -FUNCTION {book} -% \end{macrocode} -% This entry type normally places white space between the title -% and a pinpoint page number. If the title ends in a numeral -% this will be confusing, so the Blue Book requires that we -% separate the two with a comma in this case. The following -% adjustment to bridging punctuation accomplishes this purpose. -% \begin{macrocode} -{ 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$ -% \end{macrocode} -% Next, after the opener, we push the opening macro tag for a book -% entry, the nickname of the citation, and a couple of -% braces. This is all mandatory and can safely be given -% unconditional export. -% \begin{macrocode} - "\lexibib{book}{" cite$ "}{" must.must.must - get.a.kinda.sort.key "" "}{" must.must.must -% \end{macrocode} -% A non-empty "volume" field means we need a leading -% volume number in the Blue Book style. If a volume -% number (or anything else) is found in the "volume" -% field of a book entry, we replace it with a -% "volno" macro. This will expand in the document to -% whatever the author has specified using the optional -% ":<number>" argument to "\lexicite". For example, -% volume 8 of "holdsworth" would be: "\lexicite:8:{holdsworth}". -% \begin{macrocode} - volume empty$ - { "" } - { "\volno\ " } - if$ -% \end{macrocode} -% The author comes first. We push the contents of the -% "author" field, then the toggle string ``"firstinitial"'', -% and run the "format.names" function to produce the name -% formatted properly for a book entry. Then we push -% fa couple of braces -% and force all three items ("\volno" or null, "author", and -% braces) onto the output. -% \begin{macrocode} - author - "firstinitial" format.names "}{" must.must.must -% \end{macrocode} -% The title may be a simple name for a single volume, -% or it may be in title/subtitle format. Title/subtitle -% can be written into the "title" entry directly as -% ``\meta{title}: \meta{subtitle}''. We provide for -% an alternative form here, just in case "booktitle" -% is used for the main title --- conservation of -% data. If there is no "booktitle", we push the title, then -% check to be sure it's non-empty, then write it onto output. -% If "booktitle" exists, we push it, then a colon, then -% "title", followed by a conditional write on output that -% will suppress the colon if "title" is empty. -% Finally, we push the closing braces and an opening -% parens (for the year info) and write that stuff on output. -% \begin{macrocode} - 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 -% \end{macrocode} -% We're now in the final ``field'' of the \LexiTeX{} entry. -% This is mainly for the year, but we also give the -% name of the editor(s) or translator(s) -% if present. If there is no -% editor or translator, we'll put a series name here, to help identify -% the source. We don't put both, because this would -% confuse things (there can be book editors and -% series editors too, and the Blue Book style is -% too streamlined to distinguish the two elegantly). -% So our first task is to see if there is an editor\ldots -% \begin{macrocode} - editor empty$ translator empty$ and -% \end{macrocode} -% \ldots{} and if there is none, we put in a -% series name if it exists. -% The "series" \BibTeX{} field should be used for the -% name of the series of which a volume forms a part, -% but some folks might accidentally use "booktitle". -% We'll be forgiving and accept it anyway. -% \begin{macrocode} - { series empty$ -% \end{macrocode} -% If both -% "series" is empty, we've nothing to do. -% \begin{macrocode} - 'skip$ -% \end{macrocode} -% -% If "series" exists, we push it, followed by -% a bridge and a series item number, -% and a toggle for the "field.tag.no.combine" function. -% The "endlabel" toggle causes this function to put -% the bridge and the number after the series name, -% if a number exists, and push the lot back as a single -% item on the stack. Otherwise it leaves just the series -% name. -% -% And last, we put up a comma to close, and do a mandatory -% export of the lot. -% \begin{macrocode} - { series " No.~" number - "endlabel" field.tag.no.combine ", " "" must.must.must } - if$ - } -% \end{macrocode} -% If either the editor or the translator fields were not empty, -% we format the editor or translator name -% instead, and put those details here. -% \begin{macrocode} - { editor translator either.or "firstinitial" format.names -% \end{macrocode} -% We need to append the correct designator, either ``ed.''\ or -% ``trans.''. The "either.or" function will use the second -% item pushed if both are non-empty, so we take advantage of -% this ``feature'' in making our choice of designators; the -% "ed." or "eds." strings are only used if the "translator" -% field is empty. And finally, we push a null string to -% round out, and do a compulsory export. -% \begin{macrocode} - translator empty$ - { editor num.names$ #1 > - { " eds.\ " } - { " ed.\ " } - if$ - } - { " trans.\ " } - if$ - "" must.must.must - }if$ -% \end{macrocode} -% We also need to indicate the edition, if any. -% \begin{macrocode} - edition " ed.\ " "" might.ifone.must -% \end{macrocode} -% The year itself is easy. We push the year, do a check to issue -% a warning if necessary, then run format.date over it, -% which yields the year in "theyear", which can be pushed -% back onto the stack. Then we fill out to six -% \LexiTeX{} fields in -% all, and do a compulsory export. -% \begin{macrocode} - 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 -% \end{macrocode} -% A new line for a new macro, and we're done! Rejoice! -% On to the next function definition! -% \begin{macrocode} - newline$ -} -% \end{macrocode} -% -% \DescribeEnv{incollection} -% This is for those nasty entries that are created when someone -% publishes an article in a collection of essays edited by someone -% else. -% \begin{macrocode} -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 -% We're now in the final ``field'' of the \LexiTeX{} entry. -% The coding here is the same as for a "book" entry; the -% reader is referred to that entry for the commentary -% on the following code. -% \begin{macrocode} - 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$ -} -% \end{macrocode} -% \DescribeEnv{inbook} -% There is significant massaging of the use to which -% "title" and "booktitle" is put here. If both occur, -% but are different, the form is ``"title" in "booktitle"'', -% or ``"title", chapter X of "booktitle"''. -% If both occur, but are the same, the treatment depends -% on whether "chapter" occurs. If it does not occur, -% the style complains --- an "@inbook" entry should always -% refer to a chapter or other specific unit if the -% "title" and "booktitle" are the same. If it does occur, -% then the chapter or other specifier is treated as a -% volume number inserted as an option to "\source" using "v=", -% the "title" being inserted as the title of the work. -% \begin{macrocode} -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 -% We're now in the final ``field'' of the \LexiTeX{} entry. -% The coding here is the same as for a "book" entry; the -% reader is referred to that entry for the commentary -% on the following code. -% \begin{macrocode} - 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$ -} -% \end{macrocode} -% -% \begin{macrocode} -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$ -} -% \end{macrocode} -% \changes{1994/12/12}{1.0g}{Added the `techreport' function, -% to support draft article sent to Pedro Aphalo for comments.} -% \begin{macrocode} -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$ - } -% \end{macrocode} -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \paragraph{Cases} Law cases are all entered using the -% {\tt @CASE} entry type. The formatting of citations -% varies from jurisdiction to jurisdiction, so the behaviour -% of citations of this type is controlled via a "jurisdiction" -% field. Supported jurisdictions are listed in the user -% guide. Below, the functions for each jurisdiction are -% defined first, followed by the "case" function itself. -% -% \begin{macrocode} -FUNCTION {clear.cite.vars} - { -"" 'volume.var := -"" 'number.var := -"" 'journal.var := -"" 'pages.var := -"" 'year.var := - } -FUNCTION {case} -% \end{macrocode} -% Like the "article" entry, the "case" entry must make some -% pretty fine decisions about how to format material -% fed to it. As a consequence, it is complex, but similar -% to the "article" entry in many particulars. -% \begin{macrocode} -{ 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$ -} -% \end{macrocode} -% The following item adds annotations; this may be eliminated by -% stripping with "noannotes". -% \begin{macrocode} -%<*!noannotes> -% annote empty.to.null write$ newline$ -%</!noannotes> -% } -% \end{macrocode} -% -% \DescribeEnv{j.statute} -% This function applies to Japanese statutory materials. -% \changes{1994/08/03}{v0.1c}{Added support for Japanese statutes.} -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{s.statute} -% This function formats a statute entry for Singapore. -% \begin{macrocode} -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$ -} -% \end{macrocode} -% \begin{macrocode} -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$ -} -% \end{macrocode} -% -% \DescribeEnv{statute} -% This function selects the correct statute entry function. -% \begin{macrocode} -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$ - } -% \end{macrocode} -% -% \DescribeEnv{unpublished} -% -% A hastily drafted function type for unpublished materials. -% -% \begin{macrocode} -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$ -} -% \end{macrocode} -% -% \DescribeEnv{default.type} -% We use the "book" type as our default type. When "manual" is -% completed, we should probably use that type instead. -% \begin{macrocode} -FUNCTION {default.type} { book } -%</bstfunctions> -% \end{macrocode} -% -% -% \subsection{Macro definitions} -% We don't define any macros for abbreviating law journal -% names. Instead, we will use Blue Book abbreviations -% ``native'', with a special syntax (probably the full -% form in syntax: -% ``"\gobble{Accountant}{}"'' immediately after -% the abbreviation) for resolving -% ambiguous abbreviations. Meanwhile, trust me: use the -% Blue Book abbreviations and take this upcoming facility -% on faith. And besides, do you ever {\em need\/} to spell -% out journal and reporter names? -% -% \subsection{Execution} -% With all preliminaries out of the way, our first act is -% to read in the entries from {\tt *.bib}.. -% \begin{macrocode} -%<*bstfunctions> -READ -% \end{macrocode} -% Then we say ``Hi'' to the user. It would be nice to make this -% the first message, but the structure of \BibTeX{} style files -% dictates that it will follow any warnings about missing -% entries. -% \begin{macrocode} -EXECUTE {hello} -%</bstfunctions> -% \end{macrocode} -% \section{Camel style code} -% \begin{macrocode} -%<*lawcitestyle> -\ProvidesFile{law.cst}[1995/01/08] -% \end{macrocode} -% \subsection{Word list} -% A list of inter-words and their corresponding expansions -% must be provided. -% \begin{macrocode} -{\catcode`\_=13% - \catcode`\^=13% -\gdef\@law@wordlist{% - \\{\item}{\item}% - \\{and}{_\ ^And }% - \\{but-see}{_\ ^But see }% - \\{,}{_; }% - \\{;}{_; }% - \\{:}{_; }% - \\{eg}{_; ^E.g.~}% - \\{accord}{_; ^Accord }% - \\{see}{_; ^See }% - \\{see-also}{_; ^See also }% - \\{cited-in}{ cited in }% - \\{citing}{ citing }% - \\{cf}{_; ^Cf.~}% - \\{compare}{_; ^Compare }% - \\{with}{ with }% - \\{contra}{_; ^Contra }% - \\{but-cf}{_\ ^But cf.~}% - \\{see-generally}{_. See generally }% - \\{affirmed}{_, ^aff'd }% - \\{reprinted-in}{_; ^Reprinted in }% - \@law@nomatch} -} -% \end{macrocode} -% -% \subsection{Print routines} -% Every ".cst" file must define a "\@law@print" macro. -% This is the macro that prints the citation, both in the -% text of the document and in the bibliography. -% The toggles set by the {\sc Camel} engine allow -% a high degree of refinement in the formatting of -% citations. For the styles currently used in -% publishing with \LaTeX{}, relatively little of this -% power is required. In-document citation styles -% are much more demanding; if you digest the operation -% the following "\@law@print" macro, which is suitable for -% formatting legal citations, you will find the drafting -% of author-date styles and the like quite straightforward -% by comparison. -% \begin{macrocode} -\gdef\@law@print{% -% \end{macrocode} -% In this particular style, a long citation (for the -% bibliography, for example) and a first in-text citation -% are identical. These forms have separate toggles, so -% we start by equating them. -% \begin{macrocode} - \xdef\@law@argtwolist{\the\@ltok@argtwo}% - \if@law@firstuseofcite\@law@longcitetrue\fi% -% \end{macrocode} -% This toggles the printing on and off. This toggle is -% set by the "n" option to the "\source" command. -% \begin{macrocode} -\if@law@printcite% - \begingroup% - \def\@law@firstslash{\begingroup\def\\{\@law@secondslash}% - \the\ltokspecialface}% - \def\@law@secondslash{\endgroup\def\\{\@law@firstslash}}% - \def\\{\@law@firstslash}% -% \end{macrocode} -% There are two halves to the macro; one for long cite forms, -% the other for short. Long cite forms are in the first -% half. -% \begin{macrocode} -\if@law@longcite% -% \end{macrocode} -% Long citations are pretty straightforward; we've gathered all -% the information we needed; now we just need to plunk it -% all down in order, pretty much. -% First to print is the author field (the second argument to the -% citation declaration command), followed by the -% author-to-title punctuation bridge. The enclosing -% braces limit the scope of the special active character -% definitions of "^", "_" and "|". -% \begin{macrocode} - \global\ltokspecialface=\@ltok@authoroptionface% - {\the\@ltok@authormainface% - \@law@barinfull\the\@ltok@author}\the\@ltok@atot% -% \end{macrocode} -% Next comes similar treatment for the title. -% \begin{macrocode} - \global\ltokspecialface=\@ltok@titleoptionface% - {\the\@ltok@titlemainface% - \@law@barinfull\the\@ltok@name}\the\@ltok@ttocone% -% \end{macrocode} -% \begin{macrocode} - \@law@longrecurse% -% \end{macrocode} -% This else marks the boundary between long-form citations -% (which we have seen are relatively simple to print) -% and short-form citations (which are rather complex). -% This "\else" matches the "\if@law@longcite" conditional. -% \begin{macrocode} -\else% -% \end{macrocode} -% The footnote number and the accompanying bridge -% should not appear in a short-form citation if -% the citation being printed first occurred in the -% current footnote. Rather than suppressing printing, -% we just set the relevant tokens to nil. -% \begin{macrocode} - \ifnum\the\@ltok@pageorfootno=\the\c@law@footnote\relax% - \xdef\@law@temp{\the\@ltok@whereitsat}% - \xdef\@law@temptwo{\the\@ltok@infoot}% - \ifx\@law@temp\@law@temptwo% - \global\@ltok@whereitsat{}% - \global\@ltok@pageorfootno{}% - \fi% - \fi% -% \end{macrocode} -% Special forms of tidying-up may be appropriate to -% each of the four classes of citation. An appropriate -% cleaning macro is called here. -% \begin{macrocode} -\csname @law@\the\@ltok@citetype preformat\endcsname% -% \end{macrocode} -% If it has been found that the same citation has been -% used immediately previous to this instance, -% we use {\em Id.} If the "\@justabove" test showed -% that {\em Id.} by itself is appropriate, we prepare -% to eat any period immediately following the citation -% macro. Otherwise, we tack on the pinpoint reference -% and its accompanying bridge. A fail-safe conditional -% reverts to the original plan if the pinpoint reference -% is empty. -% \begin{macrocode} - \if@justabove% - {\def\,{,}% - \Id% - \if@l@quiteexact% - \gdef\@law@gobble{\@ifnextchar.{\@gobble}{}}% - \else% - \ifcat$\the\@ltok@argtwo$% - \gdef\@law@gobble{\@ifnextchar.{\@gobble}{}}% - \else% - - \the\@ltok@atbridge{\@law@barkill\the\@ltok@argtwo\relax}% - \@law@fetchparas% - \@law@shiftparas% - \@law@shortrecurse% - \fi% - \fi}% -% \end{macrocode} -% If {\em Id.} was not called for, we have to create -% a proper short-form reference. This "\else" corresponds -% with the "\@justabove" toggle, above. -% \begin{macrocode} - \else% -% \end{macrocode} -% The author will be used in any case. Note that the author -% and its following bridge may have been set to nil, above. -% \begin{macrocode} - \global\ltokspecialface=\@ltok@authoroptionface% - {\the\@ltok@authormainface% -% print whatever there if for the author - \@law@barinshort\the\@ltok@author}\the\@ltok@atot% -% \end{macrocode} -% The title information is also used, if it is present. -% \begin{macrocode} - \global\ltokspecialface=\@ltok@titleoptionface% - {\the\@ltok@titlemainface% -% \end{macrocode} -% If we have specified a nickname for this cite for -% `hereinafter' references, we use it instead of the -% title of the work. -%<*parabeta> -[Some day this might be hooked up.] -%</parabeta> -% \begin{macrocode} - \@law@barinshort\the\@ltok@name}% -% \end{macrocode} -% At this point, we must make decisions concerning whether -% to use the {\em supra\/} cross-referencing form. This -% depends on the type of citation we are working on. -% The "\@nosupra" condition is set to true if we are working -% on a case or a statute, otherwise it is set to false. -% \begin{macrocode} - \xdef\@law@temp{\the\@ltok@citetype}% - \ifx\@law@temp\@law@case% - \@nosupratrue% - \else% - \ifx\@law@temp\@law@statute% - \@nosupratrue% - \else% - \@nosuprafalse% - \fi% - \fi% -% \end{macrocode} -% Now we put the result of the above test to work. -% First, the citation form for cases or statutes, which -% do not permit the {\em supra\/} form. -% \begin{macrocode} - \if@nosupra% -% \end{macrocode} -% \begin{macrocode} - \the\@ltok@ttocone% - \@law@shortprint% - \@law@shortrecurse% - \else% - \supra\the\@ltok@whereitsat\the\@ltok@pageorfootno% - \the\@ltok@atbridge% - {\def\,{,}% - {\@law@barkill\the\@ltok@argtwo\relax}}% - \fi% -% \end{macrocode} -% In order, these close "\if@justabove", "\if@law@longcite" -% and "\if@law@printcite". -% \begin{macrocode} - \xdef\@law@temp{\the\@ltok@citetype}% - \ifx\@law@temp\@law@statute% - \ifcat$\the\@ltok@citefirst$% - \the\@ltok@ptoctwo{\@law@barinshort\the\@ltok@citelast}% - \fi% - \fi% - \fi% -\fi% -\endgroup% -\fi% <- end of if@law@printcite -% \end{macrocode} -% The "\@law@gobble" here will consume a period inserted -% automatically after a forced footnote, if the printed -% form turned out to be an {\em Id.}. See the concluding -% code of "\@law@setup". -% \changes{1994/07/26}{2.0c}{Moved {\tt\protect\string% -% \protect\@law@forcingfalse} outside of a conditional -% expression at the end of the print routine, to correct -% the failure of the forcing mechanism to work more than once.} -% \changes{1994/12/14}{2.0l}{Fairly drastic simplification -% of the forcing mechanism, in the course of providing for -% unified handling of citation strings. Code now much -% easier to follow.} -% \changes{1996/03/09}{0.1c}{Corrected a fatal bug in the -% parallel pinpointing mechanmism. This required changes to both -% Camel and the Law module; the list macro of pinpoints was -% being parsed in both!} -% \begin{macrocode} -\global\@law@longcitefalse\gdef\volno{\message{(No volume % - for \the\@ltok@nickname)}}}% -% \end{macrocode} -% \begin{macro}{\@law@longrecurse} -% This macro prints the tail end of long citations until -% parallels are exhausted. -% \begin{macrocode} -\def\@law@longrecurse{% - \@law@longprint% - \ifnum\the\c@law@parapin>0\relax% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter<\the\c@law@parapin\relax% - ; \@law@longprint% - \repeat% - \else% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter>\the\c@law@paranormal\relax% - \else% - ; \@law@longprint% - \repeat% - \fi% -% \end{macrocode} -% -% \textit{Finally, we print the last date item, which might -% be blank if it's already been printed inside "\@law@longprint".} -% \changes{1997/01/09}{v2.0m}{Fixed loss of citelast in parallel citations.} -% -% \begin{macrocode} - \@law@temp} -\def\@law@shortrecurse{% - \ifnum\the\c@law@parapin>0\relax% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter<\the\c@law@parapin\relax% - \@law@pincut\@ltok@argtwo\frompinlist% - ; \@law@shortprint% - \repeat% - \else% - \loop% - \addtocounter{law@paracounter}{1}% - \ifnum\the\c@law@paracounter>\the\c@law@paranormal\relax% - \else% - ; \@law@shortprint% - \repeat% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@law@longprint} -% \begin{macrocode} -\def\@law@longprint{% - \begingroup% - \@law@fetchparas% - \@law@tidybridges% -% \end{macrocode} -% If for some reason either the pinpoint argument is nil, -% or it {\em and\/} the location page token register is nil, -% we set the accompanying bridges to nil. -% \begin{macrocode} - \ifcat$\the\@ltok@argtwo$% - \global\@ltok@ptop{}% - \global\@ltok@atbridge{}% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@conetop{}% - \fi% - \fi% -% \end{macrocode} -% \begin{macrocode} - \global\ltokspecialface=\@ltok@citefirstoptionface% - {\the\@ltok@citefirstmainface% - \@law@barinfull\the\@ltok@citefirst}% - \@law@conetopsetup% - \the\@ltok@conetop% -% \end{macrocode} -% Next comes the location page and its following -% bridge. Both of these may be blank. No funny -% business with the shorthand active characters is -% required, since we assume this will not contain -% any special text for which they will be required. -% \begin{macrocode} - \the\@ltok@citepage\the\@ltok@ptop% -% \end{macrocode} -% A special use of "\," is defined before we expand -% the optional argument stuff. -% \begin{macrocode} - {\def\,{,}\@law@barkill% - \expandafter\the\@ltok@argtwo% - \relax}% -% \end{macrocode} -% \textit{And finally, we print the final portion of the citation. -% We package the citation part together with its preceding bridge. -% If it is printed, we blank it; this gives us a simple command that -% we can put at the end of the recursive routine that invokes this -% code, so that the tail end of a string cite will be printed if -% necessary, and only once.} -% \changes{1997/01/09}{v2.0m}{Modified current-and-last comparison -% algorithm for the last portion of the cite in parallel citations.} -% -% \begin{macrocode} - \xdef\@law@temp{% - \the\@ltok@ptoctwo% - \noexpand\@law@barinfull% - \the\@ltok@citelast}% - \xdef\@law@temptwo{% - \the\@ltok@ptoctwo% - \noexpand\@law@barinfull% - \the\@ltok@usercitelast}% - \ifx\@law@temp\@law@temptwo% - \else% - {\@law@temp}% - \gdef\@law@temp{}% - \fi% - \@law@shiftparas% - \endgroup}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@law@shortprint} -% \begin{macrocode} -\def\@law@shortprint{% -% If {\sc Camel} sees more than one pinpoint page or section, -% the bridges preceding -% the page references must be set to their plural form. -% This change applies to both long and short form citations. -% It has to be cloned in each, however, because the decision has -% to be taken with respect to each cite in a string of parallels. -% \begin{macrocode} - \begingroup% - \@law@fetchparas% - \@law@tidybridges% -% \end{macrocode} -% The actual recursive printing works. -% \begin{macrocode} - \global\ltokspecialface=\@ltok@citefirstoptionface% - {\the\@ltok@citefirstmainface% - \@law@barinshort\the\@ltok@citefirst}% -% \end{macrocode} -% If the pinpoint reference is empty, we tack on the -% location page after the appropriate bridge. Otherwise, -% we do nothing for the present; any pinpoint reference -% will be produced later on. -% Note that the bridge -% used here will only be in plural form if something was -% given for use as a pinpoint reference. -% NB: THIS IS A TEST!!!! ******** BRACKETS TO BE PULLED!!!! -% \begin{macrocode} - \@law@conetopsetup% - \the\@ltok@conetop% - \ifcat$\the\@ltok@argtwo$% - \the\@ltok@citepage% - \else% - {\@law@barkill\the\@ltok@argtwo}% - \fi% - \@law@shiftparas% - \endgroup}% -% \end{macrocode} -% \end{macro} -% -% \paragraph{Print format subroutines} -% \begin{macro}{\@law@casepreformat} -% This is empty; no special preparations are necessary -% for the printing of a case citation. -% \begin{macrocode} -\gdef\@law@casepreformat{}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@statutepreformat} -% If short statutory references are in force, -% the title and the following bridge are set to nil, -% if some reference is provided in the first citation -% part. -% \begin{macrocode} -\gdef\@law@statutepreformat{% -\if@law@statuteverbose% -\else% - \ifcat$\the\@ltok@citefirst$% - \else% - \global\@ltok@name{}% - \global\@ltok@ttocone{}% - \fi% -\fi% -}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@articlepreformat} -% If a work by the identical author has been cited more than -% once, we leave -% everything intact (the print routine does the necessary -% culling); -% otherwise, we cut the title here. The use of -% "\@law@authortracing" -% is explained above. -% \begin{macrocode} -\gdef\@law@articlepreformat{% -\ifcat$\the\@ltok@author$% -\else% -{\@law@clean\@ltok@author\@law@authortracing% -\expandafter\expandafter\expandafter\if\expandafter% -\csname\@law@authortracing\endcsname2% - \else% - \global\@ltok@atot{}\global\@ltok@name{}% -\fi}\fi}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@law@bookpreformat} -% This provides the same treatment given to articles. -% \begin{macrocode} -\gdef\@law@bookpreformat{% -\ifcat$\the\@ltok@author$% -\else% -{\@law@clean\@ltok@author\@law@authortracing% -\expandafter\expandafter\expandafter\if\expandafter% -\csname\@law@authortracing\endcsname2% - \else% - \global\@ltok@atot{}\global\@ltok@name{}% - \fi}\fi}% -%</lawcitestyle> -% \end{macrocode} -% \end{macro} -% -% \subsection{Camel citation formats} -% The style definitions are stored in a separate file, -% to make it easier and less risky for users to play with -% the styles to produce desired output. Table 3 -% provides a guide to the macro arguments and their functions. -% \subsubsection{Books} The styles used for citing books and -% book-like things follow. -% \begin{macrocode} -%<*lawcite> -\ProvidesFile{law.cit}[1994/12/07] -\newcitestyle{book}% - {srsrrrB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -% -\newcitestyle{booklet}% - {riririB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -% -\newcitestyle{techreport}% - {riririB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -% -\newcitestyle{mastersthesis}% - {riririB} - {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -% \end{macrocode} -% \subsubsection{Articles} Styles used for articles -% and similar shortish things follow. They're all -% the same, but the clones help keep things clear when following -% the action between \LaTeX\ and \BibTeX. -% \begin{macrocode} -\newcitestyle{article}% - {rsirsrA} - {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ -at~[xrf]} -\newcitestyle{incollection}% - {rsirsrA} - {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ -at~[xrf]} -\newcitestyle{inbook}% - {srirsrA} - {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ -at~[xrf]} -% \end{macrocode} -% \subsubsection{Cases} There are several styles for cases; we pretty -% much need a separate style for each jurisdiction. -% \begin{macrocode} -\newcitestyle{case}% - {rrirrsC} - {[a][t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]} -% \end{macrocode} -% \subsubsection{Statutes} There are several of these. More may -% need to be added on an {\em ad hoc\/} basis. -% \begin{macrocode} -\newcitestyle{statute}% - {rrrsrsS} - {[a][t],\ [c]\ \S~[p](pl)\ \S\S~[rp]\ [e]:[id]\ \S~(pl)\ -\S\S~[xrf]} -% -\newcitestyle{jstatute}% - {rrrsrsS} - {[a][t][c]\ \S~[p](pl)\ \S\S~[rp]\ [e]:[id]\ \S~(pl)\ -\S\S~[xrf]} -%</lawcite> -% \end{macrocode} -% -% \section{Extraction utilities} -% \subsection{The Driver} -% Here is a simple driver for extracting the files in the -% package. -% \changes{1997/01/09}{v2.0m}{Brought installation file up to -% date for use with the new docstrip utility.} -% -% \begin{macrocode} -%<*installer> -\def\batchfile{law.ins} -\input docstrip.tex -\preamble - -Copyright (C) 1992--97 Frank Bennett, Jr. -All rights reserved. - -This file is part of the Law module for the Camel package. -\endpreamble - -\def\batchfile{camel.dst} % ignored in distribution -\input docstrip.tex % ignored in distribution - -\keepsilent - -\preamble -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 this a more powerful, -friendlier, and better package, please contact me on -`fb' at soas.ac.uk - -\endpreamble - - -\generate{\file{law.cst} {\from{law.dtx}{lawcitestyle}} - \file{law.cit} {\from{law.dtx}{lawcite}}} - - -\postamble -\endpostamble - -%<installer>% Change eng to jse below for JBibTeX support - -\generate{\file{law.bst} {\from{camel.dtx}{bstheader,eng} - \from{law.dtx}{bstheader,eng} - \from{camel.dtx}{bstlibrary,eng} - \from{law.dtx}{bstfunctions,eng} - \from{camel.dtx}{bsttrailer,eng}}} - -\keepsilent - - -\ifToplevel{ -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space law.cst} -\Msg{* \space\space law.cit} -\Msg{*} -\Msg{* You should also move the following file into a directory} -\Msg{* searched for style files by BibTeX:} -\Msg{*} -\Msg{* \space\space law.bst} -\Msg{*} -\Msg{* Other style modules can be found on CTAN in the `styles'} -\Msg{* subdirectory below Camel itself.} -\Msg{*} -\Msg{***********************************************************} -} -%</installer> -% \end{macrocode} -% \Finale \PrintIndex \PrintChanges diff --git a/Master/texmf-dist/source/latex/camel/law.ins b/Master/texmf-dist/source/latex/camel/law.ins deleted file mode 100644 index 29d36927ecc..00000000000 --- a/Master/texmf-dist/source/latex/camel/law.ins +++ /dev/null @@ -1,105 +0,0 @@ -%% -%% This is file `law.ins', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% law.dtx (with options: `installer') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% You are *not* allowed to modify this file. -%% -%% You are *not* allowed to distribute this file. -%% For distribution of the original source see -%% the terms for copying and modification in the file law.dtx. -%% -\def\batchfile{law.ins} -\input docstrip.tex -\preamble - -Copyright (C) 1992--95 Frank Bennett, Jr. -All rights reserved. - -This file is part of the Law module for the Camel package. -\endpreamble - -\def\batchfile{camel.dst} % ignored in distribution -\input docstrip.tex % ignored in distribution - -\keepsilent - -\preamble -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 - -\endpreamble - -\generate{\file{law.cst} {\from{law.dtx}{lawcitestyle}} - \file{law.cit} {\from{law.dtx}{lawcite}}} - -\Msg{*** Generating Camel BibTeX style file (.bst) ***} - -\postamble -\endpostamble - -% Change eng to jse below for JBibTeX support - -\generate{\file{law.bst} {\from{camel.dtx}{bstheader,eng} - \from{law.dtx}{bstheader,eng} - \from{camel.dtx}{bstlibrary,eng} - \from{law.dtx}{bstfunctions,eng} - \from{camel.dtx}{bsttrailer,eng}}} - -\keepsilent - -\ifToplevel{ -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space law.cst} -\Msg{* \space\space law.cit} -\Msg{*} -\Msg{* You should also move the following file into a directory} -\Msg{* searched for style files by BibTeX:} -\Msg{*} -\Msg{* \space\space law.bst} -\Msg{*} -\Msg{* Other style modules can be found on CTAN in the `styles'} -\Msg{* subdirectory below Camel itself.} -\Msg{*} -\Msg{***********************************************************} -} -\endinput -%% -%% End of file `law.ins'. diff --git a/Master/texmf-dist/source/latex/camel/sample.adx b/Master/texmf-dist/source/latex/camel/sample.adx deleted file mode 100644 index ebd8f9f720d..00000000000 --- a/Master/texmf-dist/source/latex/camel/sample.adx +++ /dev/null @@ -1,6 +0,0 @@ -\indexentry {chapter}{3} -\indexentry {section}{3} -\indexentry {text}{4} -\indexentry {section2}{4} -\indexentry {index}{4} -\indexentry {entry}{4} diff --git a/Master/texmf-dist/source/latex/camel/sample.ldx b/Master/texmf-dist/source/latex/camel/sample.ldx deleted file mode 100644 index ba90596980b..00000000000 --- a/Master/texmf-dist/source/latex/camel/sample.ldx +++ /dev/null @@ -1,2 +0,0 @@ -\indexentry {second item}{2} -\indexentry {fifth item}{5} diff --git a/Master/texmf-dist/source/latex/camel/sample.ndx b/Master/texmf-dist/source/latex/camel/sample.ndx deleted file mode 100644 index 6af68772ed2..00000000000 --- a/Master/texmf-dist/source/latex/camel/sample.ndx +++ /dev/null @@ -1,4 +0,0 @@ -\indexentry {notation}{3} -\indexentry {sin@$\sin $}{3} -\indexentry {notation}{4} -\indexentry {min@$\min $}{4} diff --git a/Master/texmf-dist/tex/latex/camel/camel.sty b/Master/texmf-dist/tex/latex/camel/camel.sty deleted file mode 100644 index 3140e8a828a..00000000000 --- a/Master/texmf-dist/tex/latex/camel/camel.sty +++ /dev/null @@ -1,1270 +0,0 @@ -%% -%% This is file `camel.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% camel.dtx (with options: `lexitex') -%% -%% This file is part of the Camel package. -%% --------------------------------------- -%% This is a generated file. -%% -%% IMPORTANT NOTICE: -%% -%% You are not allowed to change this file. You may however copy -%% this file to a file with a different name and then change the -%% copy if (a) you do not charge for the modified code, (b) you -%% acknowledge Camel and its author(s) in the new file, if it -%% is distributed to others, and (c) you attach these same -%% conditions to the new file. -%% -%% The above conditions do not apply to the demonstration -%% file test.tex. -%% -%% 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 -%% -\NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{camel} -[1997/02/17 v1.0t General bibliography engine (Frank Bennett)] -\@ifclassloaded{ltxdoc}{}{\RequirePackage{index}[1995/09/28]} -\RequirePackage{keyval}[1995/09/21] -\RequirePackage{overword} -\def\supra{, {\em supra}}% -\def\Id{{\em\@law@lettercase Id.}}% -\newtoks\@ltok@userconetop% -\newtoks\@ltok@userconetopplural% -\newtoks\@ltok@userptop% -\newtoks\@ltok@userptoctwo% -\newtoks\@ltok@useratbridge% -\newtoks\@ltok@useratbridgeplural% -\newtoks\@ltok@usercitefirst -\newtoks\@ltok@usercitepage -\newtoks\@ltok@usercitelast -\newtoks\@ltok@infoot \@ltok@infoot={\ note\ } -\newtoks\@ltok@onpage \@ltok@onpage={\ page\ } -\newtoks\@ltok@proofcitelast - \@ltok@proofcitelast{{Editor, publisher and stuff, 1994}} -\newtoks\@ltok@proofpage - \@ltok@proofpage{{12345}} -\newtoks\@ltok@proofciteone - \@ltok@proofciteone{{Source}} -\newtoks\@ltok@prooftitle - \@ltok@prooftitle{{Title of work}} -\newtoks\@ltok@proofauthor - \@ltok@proofauthor{{Author's name}} -\global\let\@law@delim\relax -\global\let\@law@pingroup\relax -\global\let\@law@pinstart\relax -\global\let\@law@pinend\relax -\newif\if@law@statuteverbose -\def\statuteverboseon{\@law@statuteverbosetrue} -\def\statuteverboseoff{\@law@statuteverbosefalse} -\statuteverboseoff -\newif\if@law@forcefootnotes -\def\forcefootnotes{\global\@law@forcefootnotestrue} -\def\noforcefootnotes{\global\@law@forcefootnotesfalse} -{ - \catcode`\_=13 - \catcode`\^=13 - \catcode`\|=13 - \gdef\@law@barkill{\def\@law@comma{, }% - \def\@law@ampersand{\ \& }% - \def\@law@dash{--}% - \def\@law@delim{}\def_##1_{}\def|##1\relax{}\def^{}}% - \gdef\@law@barnil{\def_{}\def^##1^{}\def|{}} - \gdef\@law@barinfull{\def^{}} - \gdef\@law@barinshort{\def^##1^{}} -} -\def\bridges#1#2#3#4#5#6{% - \@ltok@userconetop{#1}% - \@ltok@userconetopplural{#2}% - \@ltok@userptop{#3}% - \@ltok@userptoctwo{#4}% - \@ltok@useratbridge{#5}% - \@ltok@useratbridgeplural{#6}% -} -\def\dash{--} -\def\exclaim{!}% -\def\@law@gobble{} -\def\@law@argtwolist{} -\def\p@LexiTeX{{\reset@font\rm\ \unskip\hbox{L% - \kern-.06em\hbox{\sc e}% - \kern-.05em\hbox{\sc x}% - \kern-.05em\lower.65ex\hbox{I}% - \kern-.18emT% - \kern-.1667em\lower.65ex\hbox{E}% - \kern-.125emX}}}% -\def\LexiTeX{\protect\p@LexiTeX}% -\def\p@LexiBib{{\reset@font\rm\ \unskip\hbox{L% - \kern-.06em\hbox{\sc e}% - \kern-.05em\hbox{\sc x}% - \kern-.05em\hbox{\sc i}% - \kern-.06em{\sc B}% - \kern-.05em\hbox{\sc i}% - \kern-.05em{\sc b}}}}% -\def\LexiBib{\protect\p@LexiBib}% -\newenvironment{lexilist}% -{\message{Loading citation data}\@law@listinputtingtrue}% - {\@law@listinputtingfalse} -\newtoks\@ltok@a -\newtoks\@ltok@b -\newtoks\@ltok@argtwo -\newtoks\@ltok@pagesstring -\newtoks\@ltok@authormainface -\newtoks\@ltok@authoroptionface -\newtoks\@ltok@titlemainface -\newtoks\@ltok@titleoptionface -\newtoks\@ltok@citefirstmainface -\newtoks\@ltok@citefirstoptionface -\newtoks\ltokspecialface -\newtoks\@ltok@citetype% -\newtoks\@ltok@whereitsat -\newtoks\@ltok@stylename -\newtoks\@ltok@nickname -\newtoks\@ltok@author -\newtoks\@ltok@name -\newtoks\@ltok@citefirst -\newtoks\@ltok@citepage -\newtoks\@ltok@citelast -\newtoks\@ltok@pageorfootno -\newtoks\@ltok@hereinafter -\newtoks\@ltok@bigsourcecite -\newtoks\@ltok@bigsourcepage -\newtoks\@ltok@atot -\newtoks\@ltok@ttocone -\newtoks\@ltok@conetop -\newtoks\@ltok@conetopplural -\newtoks\@ltok@ptop -\newtoks\@ltok@ptoctwo -\newtoks\@ltok@atbridge -\newtoks\@ltok@atbridgeplural -\newtoks\@ltok@plistmacro -\newcounter{citesinfoot} -\newcounter{citeslastfoot} -\newcounter{law@paranormal} -\newcounter{law@parapin} -\newcounter{law@paracounter} -\newif\if@law@biblabels -\newif\if@law@usepages -\newif\if@law@table -\newif\if@law@usepinpoints -\newif\if@law@maketable -\newif\if@law@printcite -\newif\if@law@listinputting -\newif\if@law@bibentry -\newif\if@law@firstuseofcite -\newif\if@law@longcite -\newif\if@law@infoot -\newif\if@justabove -\newif\if@l@quiteexact -\newif\if@nosupra -\newif\if@law@printauthor% -\newif\if@law@printtitle% -\newif\if@law@requiresubjects% -\newif\if@law@subjectfound% -\def\normcase{\def\@law@lettercase{}} -\def\lowcase{\def\@law@lettercase##1{% - {\aftergroup\normcase\lowercase{##1}}}} -\normcase -\def\@law@multicheck#1\@law@multiflag#2\query#3\end{#2}% -\def\@law@multiflag#1\query{}% -\def\@law@multiset{\global\@ltok@conetop\@ltok@conetopplural% - \global\@ltok@atbridge\@ltok@atbridgeplural} -\def\newinterword{\begingroup\catcode`\_=13\catcode`\^=13% - \@law@newinterword} -\def\newinterword#1#2{\global\@ltok@a=\expandafter{\@law@wordlist}% - \global\@ltok@b={#1}\global\@ltok@c={#2}% - \xdef\@law@temp{\noexpand\\\noexpand{\the\@ltok@b\noexpand}% - \noexpand{\the\@ltok@c\noexpand}\the\@ltok@a}% - \global\let\@law@wordlist\@law@temp\endgroup} -\newcount\c@law@footnote% -\def\volno{\message{(No volume for \the\@ltok@nickname)}}% -\def\@law@headersearchend{\camelrefname} -\def\@law@abandonheadersearch#1\@law@headersearchend{} -\def\@law@headersearch#1#2#3#4{% - \def\@law@temptwo{#1}% - \ifx\@law@temp\@law@temptwo% - \let\@law@headersearchend\relax% - \let\\=\@law@abandonheadersearch% - {}#3% - \fi} -\def\@law@getsubjectheader#1{% - {\def\@law@temp{#1}% - \let\\=\@law@headersearch\@law@subjectlist\@law@headersearchend}} -\let\@law@bibformatsearchend\relax -\def\@law@abandonbibformatsearch#1\@law@bibformatsearchend{} -\def\@law@bibformatsearch#1#2#3#4{% - \def\@law@temptwo{#1}% - \ifx\@law@temp\@law@temptwo% - \let\\=\@law@abandonbibformatsearch% - {}#4% - \fi} -\def\@law@getbibformat#1{% - {\def\@law@temp{#1}% - \let\\=\@law@bibformatsearch\@law@subjectlist\@law@bibformatsearchend}} -\def\@law@subjectsearchend{% - \ifx\@law@citesubject\empty% - \@camel@error{No subject declared.^^J - After declaring a subject or subjects using - \string\citationsubject,^^J - you have neglected to give a subject (using the s= option)^^J - for one of your \string\source\space commands}\@ehc% - \else% - \@camel@error{Undeclared subject `\@law@citesubject'.^^J - An undeclared subject has been given as an argument to - a \string\source\space command.^^J You must first % - declare subjects using \string\citationsubject}\@ehc% - \fi} -\def\@law@abandonsubjectsearch#1\@law@subjectsearchend{} -\def\@law@subjectsearch#1#2#3#4{% - \def\@law@temptwo{#1}% - \ifx\@law@citesubject\@law@temptwo% - \let\@law@subjectsearchend\relax% - \let\\=\@law@abandonsubjectsearch% - \fi} -\def\@law@confirmsubject{% - {\let\\=\@law@subjectsearch\@law@subjectlist\@law@subjectsearchend}} -\def\@law@citesubjectcheckend{% - \expandafter\let\expandafter\@law@temptwo% - \csname @law@\@law@citesubject @citelist\endcsname% - \@ltok@a=\expandafter{\@law@temptwo}% - \expandafter\xdef% - \csname @law@\@law@citesubject @citelist\endcsname{% - \the\@ltok@a\noexpand\\% - \noexpand{\the\@ltok@nickname\noexpand}}} -\def\@law@abandoncitesubjectcheck#1\@law@citesubjectcheckend{} -\def\@law@citesubjectcheck#1{% - \def\@law@temptwo{#1}% - \ifx\@law@nickname\@law@temptwo% - \let\@law@citesubjectcheckend\relax% - \let\\=\@law@abandoncitesubjectcheck% - \fi} -\def\@law@maybeaddcitesubject{% - {\let\\=\@law@citesubjectcheck% - \csname @law@\@law@citesubject @citelist\endcsname% - \@law@citesubjectcheckend}} -\def\@law@end{,} -\define@key{cameloptions}{a}[F]{\global\@law@printauthorfalse}% -\define@key{cameloptions}{t}[F]{\global\@law@printtitlefalse}% -\define@key{cameloptions}{n}[F]{\global\@law@printcitefalse}% -\define@key{cameloptions}{l}[F]{\message{\lowcase}}% -\define@key{cameloptions}{f}[T]{\global\@law@longcitetrue}% -\define@key{cameloptions}{b}[T]{\global\@law@bibentrytrue\global\@law@longcitetrue}% -\define@key{cameloptions}{Z}{}% -\define@key{cameloptions}{s}{\if@law@requiresubjects% - \gdef\@law@citesubject{#1}% - \fi}% -\define@key{cameloptions}{v}{\gdef\volno{#1}}% -\def\@@parse{\@law@parse} -\let\@law@parse\@law@parseplain -\def\@law@alone#1#2{\def\@law@allistitem{#1}% - \ifx\@law@alitem\@law@allistitem #2% - \let\\=\@law@alfinish\fi} -\def\@law@alfinish#1\@law@alnomatch{\@law@alnomatch} -\def\@law@alnomatch{% - \global\@ltok@a=\expandafter{\@law@alitem}% - \xdef\@law@temp{\the\@ltok@argtwo\the\@ltok@a}% - \global\@ltok@argtwo=\expandafter{\@law@temp}} -\gdef\@law@allist{% - \\{&}{\gdef\@law@alitem{\@law@delim% - \@law@multiflag\@law@multiset\query% - \@law@ampersand}}% - \\{=}{\gdef\@law@alitem{\@law@delim% - \@law@pinend% - \@law@pingroup% - \@law@pinstart}% - \addtocounter{law@parapin}{1}}% - \\{-}{\gdef\@law@alitem{\@law@delim - \@law@multiflag\@law@multiset\query% - \@law@dash}}% - \\{,}{\gdef\@law@alitem{}% - \let\@law@parse\@law@alparsesavecomma}% - \\{_}{\@law@get@ul}% - \\{^}{\@law@get@carat}% - \\{|}{\@law@get@bar}% - \@law@alnomatch} -{\catcode`\_=13\catcode`\^=13\catcode`\|=13% - \gdef\@law@get@ul{\gdef\@law@alitem{_}}% - \gdef\@law@get@carat{\gdef\@law@alitem{^}}% - \gdef\@law@get@bar{\gdef\@law@alitem{\@law@delim|}}% -} -\gdef\@law@finishargtwo{% - \global\@ltok@a={\@law@pingroup\@law@pinstart}% - \xdef\@law@temp{\the\@ltok@a\the\@ltok@argtwo}% - \global\@ltok@argtwo=\expandafter{\@law@temp}} -\gdef\@law@alparsesavecomma{\@ifnextchar,% - {\gdef\@law@alitem{\@law@delim\@law@pinend}\@law@alnomatch% - \expandafter\@law@finishargtwo% - \@gobble}% - {\gdef\@law@alitem{\@law@delim% - \@law@multiflag\@law@multiset\query% - \@law@comma}% - \@law@alnomatch% - \let\@law@parse=\@law@alparseplain\@@parse}} -\def\@law@alparseplain#1{% - \let\@law@nomatch=\@law@alnomatch% - \gdef\@law@alitem{#1}\let\\=\@law@alone\@law@allist\@@parse} -\def\@law@scanlist#1#2{\long\def\@law@temp{#1}% - \@ltok@a={#2}% - \ifx\@law@temp\@overword\xdef\@SBSword{{\noexpand\em \the\@ltok@a}}% - \let\\=\@law@finish\fi} -\def\@law@wlnomatch{\message{^^J^^J% - There is an unregistered inter-citation word (\@overword) on - line no \the\inputlineno. See the LexiTeX documentation - for more information. Please email fb@soas.ac.uk if - you want a word added to the inter-citation list.}} -{\catcode`\_=\active% - \catcode`\^=\active% -\gdef\@law@checkins{% - \def^##1{\lowercase{##1}}\def_##1{{\em{##1}}}% - \let\@law@tempthree=\\% - \let\@law@nomatch=\@law@wlnomatch% - \let\\=\@law@scanlist\@law@wordlist% - \let\\=\@law@tempthree} -\gdef\@law@checkpre{% - \let\@law@tempthree=\\% - \let^\relax\let_\@gobble% - \let\@law@nomatch=\@law@wlnomatch% - \let\\=\@law@scanlist\@law@wordlist% - \let\\=\@law@tempthree} -} -\gdef\source{% - \if@law@requiresubjects% - \gdef\@law@citesubject{}% - \fi% - \@law@printcitetrue% - \@law@printauthortrue% - \@law@printtitletrue% - \setcounter{law@parapin}{0}% - \setcounter{law@paracounter}{0}% - \@ifnextchar[{\@lexicite}{\@lexicite[]}} -\def\@lexicite[#1]#2{\@ifnextcharcareful[{% - \addtocounter{law@parapin}{1}\@@lexicite{#1}{#2}}% - {\@@lexicitenobrace{#1}{#2}}} -\def\@ifnextcharcareful#1#2#3{% - \gdef\@prenextcharspace{}% - \let\reserved@e=#1\def\reserved@a{#2}\def\reserved@b{#3}\futurelet - \reserved@c\@ifnchcareful} -\def\@ifnchcareful{\ifx \reserved@c \@sptoken \let\reserved@d\@xifnchcareful - \else \ifx \reserved@c \reserved@e\let\reserved@d\reserved@a\else - \let\reserved@d\reserved@b\fi - \fi \reserved@d} -\def\:{\@xifnchcareful} -\expandafter\def\: {% - \gdef\@prenextcharspace{ }\futurelet\reserved@c\@ifnch} -\def\@@lexicite#1#2[#3]{% - \@ifoverword\source% - {\@law@checkins\@@@lexicite{#1}{#2}{#3}}% - {\gdef\@SBSword{}\@@@lexicite{#1}{#2}{#3}% - \@law@citedump{}% - \@preoverwordspace% - \expandafter\@law@gobble% - \@overword{} }% - {\gdef\@SBSword{}\@@@lexicite{#1}{#2}{#3}% - \@law@citedump{}% - \@preoverwordspace% - \expandafter\@law@gobble% - \@overword{} }} -\def\@@lexicitenobrace#1#2{% - \@ifoverword\source{\@law@checkins\@@@lexicite% - {#1}{#2}{}}% - {\gdef\@SBSword{}\@@@lexicite% - {#1}{#2}{}% - \@law@citedump{}% - \@prenextcharspace% - \expandafter\@law@gobble% - \@overword{} } - {\gdef\@SBSword{}\@@@lexicite% - {#1}{#2}{}% - \@law@citedump{}% - \@prenextcharspace% - \expandafter\@law@gobble% - \@overword{} }} -\def\@law@citestack{}% -\gdef\@SBSword{}% -\def\@@@lexicite#1#2#3{% - \@ltok@a=\expandafter{\@law@citestack}% - \@ltok@b={\@realcite{#1}{#2}{#3}}% - \@ltok@c=\expandafter{\@SBSword}% - \edef\@law@citestack{\the\@ltok@a\the\@ltok@b\the\@ltok@c}} -\long\def\@footnotetext#1{\insert\footins{% - \@law@infoottrue% % Hooks for citation manager - \ifnum\the\c@citesinfoot=1\relax% % - \global\let\@law@lastcite\@law@currentcite% % - \else% % - \gdef\@law@lastcite{\@dummy}% % - \fi% % - \global\setcounter{citesinfoot}{0}% End of hooks - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth \@parboxrestore - \let\@tempa\protect - \def\protect{\noexpand\protect\noexpand}% - \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% - \let\protect\@tempa - \color@begingroup - \normalcolor - \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1% - \@finalstrut\strutbox} - \color@endgroup}} -\def\@law@clparseplain#1,{% - \@ifnextchar,% - {\def\@law@temp{\@law@onerealcite{#1}}% - \expandafter\@law@temp\@gobble}% - {\@law@onerealcite{#1}% - {\long\def\@overword{;}\@law@checkins% - \@SBSword\gdef\@SBSword{}}% - \@@parse}} -\def\@law@citedump{% - \if@law@infoot% - \begingroup\@law@citestack\endgroup% - \else% - \if@law@forcefootnotes% - \footnote{\begingroup\@law@citestack\@law@gobble.\endgroup}% - \else% - \begingroup\@law@citestack\endgroup% - \fi% - \fi% -\def\@law@citestack{}} -\def\@realcite#1#2#3{% - \ifcat$#1$\else% - \setkeys{cameloptions}{#1} - \fi% - \if@law@requiresubjects% - \@law@confirmsubject% - \fi% - \global\@ltok@argtwo{}% - \ifcat$#3$\else% - {\let\@law@parse=\@law@alparseplain\@law@parse #3,,}% - \fi% - {\let\@law@parse=\@law@clparseplain\@law@parse #2,,}% - } -\def\@law@onerealcite#1{% - \@ifundefined{@lnick@#1}% - {\expandafter\def\csname @lnick@#1\endcsname{% - {\small\bf\tt <undefined: #1>} - \@latex@warning - {Citation `#1' on page \thepage \space undefined}}}% - {\relax}% - \if@filesw% - \immediate\write\@auxout{\string\citation{#1}}% - \@ifundefined{@law@managerouthook}% - \relax% - {\immediate\write\@bibout{\@law@managerouthook{#1}}}% - \fi% -\global\@law@firstuseofcitefalse% -\csname @lnick@#1\endcsname} -\def\@lbibitem[#1]{\item[\@biblabel{#1}\hfill]\ignorespaces} -\def\@bibitem{\item\ignorespaces} -\def\@law@subjectlist{} -\def\citationstyle#1{% - \ifx\@law@subjectlist\empty% - \def\@law@citesubject{all} - \expandafter\gdef\csname @law@all@citelist\endcsname{}% - \def\@law@subjectlist{\\{all}{}{\camelrefname}{}}% - \fi% - \if@filesw% - \immediate\write\@auxout{\string\bibstyle{#1}}% - \fi% - \def\@law@savecat{\catcode`@}% - \makeatletter% - \input{#1.cst}% - \input{#1.cit}% - \catcode`\@=\@law@savecat% - \@ifundefined{@law@bblfile}% - {\relax}% - {\begin{lexilist} - \@input{\@law@bblfile} - \end{lexilist}}} -\def\citationdata#1{% - \def\bibliographymanager{\@camel@error{\string\bibliographymanager\space - following \string\citationdata.^^J - You can use only one of \string\citationdata\space and - \string\bibliographymanager\space^^J at the start of a document - or after a - \string\printthebibliography\space command}\@ehc}% - \if@filesw% - \immediate\write\@auxout{\string\bibdata{#1}}% - \fi% - \@ifundefined{@law@wordlist}% - {\gdef\@law@bblfile{\jobname.bbl}}% - {\begin{lexilist} - \@input {\jobname.bbl} - \end{lexilist}}} -\def\@camel@error#1#2{% - \GenericError{% - \space\space\space\@spaces\@spaces\@spaces - }{% - Camel Error: #1% - }{% - See the Camel manual for explanation.% - }{#2}% -} -{\catcode`\%=12 \gdef\@law@percent{%}} -\def\bibliographymanager#1{% - \def\citationdata{\@camel@error{\string\citationdata\space - following \string\bibliographymanager.^^J - You can use only one of \string\citationdata\space and - \string\bibliographymanager\space^^J at the start of a - document or after a - \string\printthebibliography\space command.}\@ehc}% - \if@filesw% - \immediate\write\@auxout{\string\bibdata{camel}}% - \fi% - \@ifundefined{@law@wordlist}% - {\gdef\@law@bibfile{\jobname.bbl}}% - {\begin{lexilist}% - \@input {\jobname.bbl} - \end{lexilist}}% - \newwrite\@bibout% - \immediate\openout\@bibout camel.bib% - \gdef\@law@temp{#1}% - \gdef\@law@temptwo{procite}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{(##1)}% - \fi% - \gdef\@law@temptwo{endnote}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{[##1]}% - \fi% - \gdef\@law@temptwo{papyrus}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{\@law@percent\@law@percent##1\@law@percent\@law@percent}% - \fi% - \gdef\@law@temptwo{referencemanager}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{\{##1\}}% - \fi% - \gdef\@law@temptwo{tib}% - \ifx\@law@temp\@law@temptwo% - \def\@law@managerouthook##1{[.##1.]}% - \fi} -\def\lexibib#1{\csname new#1\endcsname}% -\def\@law@templistmacro{} -\def\@law@tempplistmacro{} -\def\@law@case{case} -\def\@law@statute{statute} -\def\@law@article{article} -\def\@law@book{book} -{\catcode`\_=13\catcode`\^=13\catcode`\|=13% -\gdef\@law@clean#1#2{% - \def\protect##1{\string##1\space}% - \ifcat$\the#1$% - \edef#2{}% - \else% - \def^{\string^}% - \def_{\string_}% - \@law@barnil% - \def\volno{\string\volno}% - \def\exclaim{\string\exclaim}% - \def\hbox{\string\hbox}% - \def\&{\string\&}\def\%{\string\%}% - \def\hskip{\string\hskip}% - \def\jintercharskip{\string\jintercharskip}% - \def\char{\string\char}% - \def~{\string~}\def\/{\string\/}% - \def\\{\string\\}\def\ {\string\ }\def\sc{\string\sc\space}% - \def\rm{\string\rm\space}\def\bf{\string\bf\space}% - \def\em{\string\em\space}% - \def\={\string\=}% - \def\`{\string\`}\def\'{\string\'}% - \def\^{\string\^}\def\"{\string\"}\def\~{\string\~}% - \def\.{\string\.}\def\u{\string\u}\def\v{\string\v}% - \def\H{\string\H\space}\def\t{\string\t\space}% - \def\c{\string\c\space}% - \def\d{\string\d\space}\def\b{\string\b\space}% - \def\oe{\string\oe\space}% - \def\ae{\string\ae\space}\def\aa{\string\aa\space}% - \def\o{\string\o\space}% - \def\l{\string\l\space}\def\ss{\string\ss\space}% - \def\OE{\string\OE\space}\def\AE{\string\AE\space}% - \def\AA{\string\AA\space}% - \def\O{\string\O\space}\def\L{\string\L\space}% - \def\dag{\string\dag\space}\def\ddag{\string\ddag\space}% - \def\S{\string\S\space}% - \def\P{\string\P\space}% - \def\TeX{\string\TeX\space}\def\LaTeX{\string\LaTeX\space}% - \def\LexiTeX{\string\LexiTeX\space}% - \def\BibTeX{\string\BibTeX\space}\def\-{\string\-}% -\xdef\@law@temp{\the#1}% -\xdef#2{\expandafter\expandafter\expandafter\@gobble% -\expandafter\string\csname\@law@temp\endcsname}% -\fi} -} -\def\@law@cleanup{% -\@law@clean\@ltok@authormainface\@law@authormainfacetemp% -\@law@clean\@ltok@authoroptionface\@law@authoroptionfacetemp% -\@law@clean\@ltok@author\@law@authortemp% -\@law@clean\@ltok@titlemainface\@law@titlemainfacetemp% -\@law@clean\@ltok@titleoptionface\@law@titleoptionfacetemp% -\@law@clean\@ltok@argtwo\@law@argtwotemp% -\@law@clean\@ltok@name\@law@nametemp% -\@law@clean\@ltok@citepage\@law@citepagetemp% -\@law@clean\@ltok@citefirstmainface\@law@citefirstmainfacetemp% -\@law@clean\@ltok@citefirstoptionface\@law@citefirstoptionfacetemp% -\@law@clean\@ltok@citefirst\@law@citefirsttemp% -\@law@clean\@ltok@conetop\@law@conetoptemp% -\@law@clean\@ltok@citelast\@law@citelasttemp% -\@law@clean\@ltok@ptop\@law@ptoptemp} -\def\newcitestyle#1#2#3{% -\@ifundefined{@law@citeload}% - {\def\@law@citeload{Loading citation classes: #1 ... }}% - {\message{\@law@citeload#1}\def\@law@citeload{...\space}}% - \@newcitebridges#1#3% - \expandafter\@law@parsefaces#2% - \expandafter\xdef\csname#1faces\endcsname{% - \noexpand\global\noexpand\@ltok@authormainface\noexpand{% - \the\@ltok@authormainface\noexpand}% - \noexpand\global\noexpand\@ltok@authoroptionface\noexpand{% - \the\@ltok@authoroptionface\noexpand}% - \noexpand\global\noexpand\@ltok@titlemainface\noexpand{% - \the\@ltok@titlemainface\noexpand}% - \noexpand\global\noexpand\@ltok@titleoptionface\noexpand{% - \the\@ltok@titleoptionface\noexpand}% - \noexpand\global\noexpand\@ltok@citefirstmainface\noexpand{% - \the\@ltok@citefirstmainface\noexpand}% - \noexpand\global\noexpand\@ltok@citefirstoptionface\noexpand{% - \the\@ltok@citefirstoptionface\noexpand}% - \noexpand\global\noexpand\@ltok@citetype\noexpand{% - \the\@ltok@citetype\noexpand}}% - \expandafter\gdef\csname new#1\endcsname##1##2##3##4##5##6##7% - {\@newcite{#1}{##1}{##2}{##3}{##4}{##5}{##6}{##7}}} -\def\@law@parsefaces#1#2#3#4#5#6#7{% - \@law@parseoneoption\@ltok@authormainface#1% - \@law@parseoneoption\@ltok@authoroptionface#2% - \@law@parseoneoption\@ltok@titlemainface#3% - \@law@parseoneoption\@ltok@titleoptionface#4% - \@law@parseoneoption\@ltok@citefirstmainface#5% - \@law@parseoneoption\@ltok@citefirstoptionface#6% - \@law@parselastoption\@ltok@citetype#7} -\def\@law@parseoneoption#1#2{% - \if#2s\global#1{\sc}\fi% - \if#2i\global#1{\em}\fi% - \if#2b\global#1{\bf}\fi% - \if#2r\global#1{\rm}\fi% - \if#2S\global#1{\sc}\fi% - \if#2I\global#1{\em}\fi% - \if#2B\global#1{\bf}\fi% - \if#2R\global#1{\rm}\fi} -\def\@law@parselastoption#1#2{% - \if#2a\global#1{article}\fi% - \if#2b\global#1{book}\fi% - \if#2c\global#1{case}\fi% - \if#2s\global#1{statute}\fi% - \if#2A\global#1{article}\fi% - \if#2B\global#1{book}\fi% - \if#2C\global#1{case}\fi% - \if#2S\global#1{statute}\fi} -\newtoks\@ltok@c% -\newtoks\@ltok@d% -\newtoks\@ltok@e% -\newtoks\@ltok@f% -\newtoks\@ltok@g% -\newtoks\@ltok@h% -\newtoks\@ltok@i% -\newtoks\@ltok@j% -\def\@newcitebridges#1[a]#2[t]#3[c]#4[p]#5(pl)#6[rp]#7[e]:[id]#8(pl)#9[xrf]{% -\@ltok@c{#2}% -\@ltok@d{#3}% -\@ltok@e{#4}% -\@ltok@f{#5}% -\@ltok@g{#6}% -\@ltok@h{#7}% -\@ltok@i{#8}% -\@ltok@j{#9}% - \expandafter\xdef\csname#1bridges\endcsname{% - \noexpand\global\noexpand\@ltok@atot\noexpand{\the\@ltok@c\noexpand}% - \noexpand\global\noexpand\@ltok@ttocone\noexpand{\the\@ltok@d\noexpand}% - \noexpand\global\noexpand\@ltok@conetop\noexpand{\the\@ltok@e\noexpand}% - \noexpand\global\noexpand\@ltok@conetopplural\noexpand{\the\@ltok@g\noexpand}% - \noexpand\global\noexpand\@ltok@ptop\noexpand{\the\@ltok@f\noexpand}% - \noexpand\global\noexpand\@ltok@ptoctwo\noexpand{\the\@ltok@h\noexpand}% - \noexpand\global\noexpand\@ltok@atbridge\noexpand{\the\@ltok@i\noexpand}% - \global\@ltok@atbridgeplural\noexpand{\the\@ltok@j\noexpand}}}% -\newif\if@law@specialbridges% -\def\@newcite#1#2#3#4#5#6#7#8{% -\message{=}% - {\@ltok@a={#4}\@law@clean\@ltok@a\@law@temp% -\expandafter\ifx\csname\@law@temp\endcsname\relax% -\expandafter\expandafter\expandafter\xdef\expandafter% - \csname\@law@temp\endcsname{1}% -\else% - \expandafter\expandafter\expandafter\xdef\expandafter% - \csname\@law@temp\endcsname{2}% -\fi}% -\def\@law@templistmacro{}% -\def\@law@tempplistmacro{}% -\setcounter{law@paranormal}{0} - \ifcat$\the\@ltok@useratbridgeplural$% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \else% - \@law@addtoken\@ltok@userconetop\tocitelist% - \@law@addtoken\@ltok@userconetopplural\tocitelist% - \@law@addtoken\@ltok@userptop\tocitelist% - \@law@addtoken\@ltok@userptoctwo\tocitelist% - \@law@addtoken\@ltok@useratbridge\tocitelist% - \@law@addtoken\@ltok@useratbridgeplural\tocitelist% - \fi% -\@law@addargument{#1}\tocitelist% -\@law@addtoken\@ltok@bigsourcepage\tocitelist% (not yet implemented) -\@law@addtoken\@ltok@bigsourcecite\tocitelist% (not yet implemented) -\@law@addtoken\@ltok@hereinafter\tocitelist% (not yet implemented) - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% -\@law@addtoken\@ltok@citetype\tocitelist% cite type -\@law@addargument{#8}\tocitelist% cite last part -\@law@addargument{#7}\tocitelist% cite page -\@law@addargument{#6}\tocitelist% cite first part -\@law@addargument{#5}\tocitelist% name of work -\@law@addargument{#4}\tocitelist% author -\expandafter\gdef\csname @law@#2@lab\endcsname{#3}% label -\@law@addargument{#2}\tocitelist% nickname -\def\@law@tempplistmacro{}% -\@law@paracheckone{#2}}% -\def\@law@paracheckone#1{% - \def\@law@temp{{#1}}% - \@ifnextchar{=}% - {\expandafter\expandafter\expandafter\@law@parachecktwo% - \expandafter\@law@temp\@gobble}% - {\@@newcite{#1}}}% -\def\@law@parachecktwo#1{\@ifnextchar[% - {\@law@getpara{#1}}% - {\@law@getpara{#1}[{}{}{}{}{}]}} -\def\@law@getpara#1[#2#3#4#5#6]#7#8#9{% - \addtocounter{law@parapin}{1} - \def\@law@temp{{#1}}% - \@law@addpargument{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}\tolist% - \@ifnextchar{=}% - {\expandafter\expandafter\expandafter% - \@law@parachecktwo\expandafter\@law@temp\@gobble}% - {\@@newcite{#1}}} -\def\@@newcite#1{% -\@law@addtoken\c@law@paranormal\tocitelist -\@ltok@a\expandafter{\@law@tempplistmacro}% -\@law@addtoken\@ltok@a\tocitelist% -\expandafter\global\expandafter\let\csname @ldata@#1\endcsname=\@law@templistmacro% -\@ltok@userconetop{}% -\@ltok@userconetopplural{}% -\@ltok@userptop{}% -\@ltok@userptoctwo{}% -\@ltok@useratbridge{}% -\@ltok@useratbridgeplural{}% -\@law@makecitenick{#1}% - \if@law@listinputting\def\@law@nick{}\else% - \def\@law@nick{\source[f]{#1}}\fi\@law@nick}% -\def\@law@addargument#1\tocitelist{% - \@law@leftappendargument#1\to\@law@templistmacro} -\long\def\@law@leftappendargument#1\to#2{\@ltok@a={\\{#1}}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@a\the\@ltok@b}} -\def\@law@addtoken#1\tocitelist{\@law@leftappendtoken#1\to\@law@templistmacro} -\long\def\@law@leftappendtoken#1\to#2{% - \xdef\@law@temp{\noexpand\\\noexpand{\the#1\noexpand}}% - \@ltok@a=\expandafter{\@law@temp}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@a\the\@ltok@b}} -\def\@law@cut#1\fromcitelist{\@law@lop\@law@templistmacro\to#1} -\def\@law@lop#1\to#2{\expandafter\@law@lopoff#1\@law@lopoff#1#2}% -\long\def\@law@lopoff\\#1#2\@law@lopoff#3#4{\global#4={#1}\gdef#3{#2}} -\def\@law@pincut#1\frompinlist{\@law@pinlop\@law@argtwolist\to#1} -\def\@law@pinlop#1\to#2{\expandafter\@law@pinlopoff#1\@law@pinlopoff#1#2}% -\long\def\@law@pinlopoff\@law@pingroup\@law@pinstart#1\@law@pinend#2\@law@pinlopoff#3#4{\global#4={#1}\gdef#3{#2}} -\def\@law@fetchparas{% - \ifnum\the\c@law@paranormal>\the\c@law@paracounter\relax% - \@law@pcut\@law@tempplist\fromlist% - \expandafter\@law@extractparas\@law@tempplist% - \fi} -\def\@law@extractparas#1#2#3#4#5#6#7#8{% - \ifcat$\the\@ltok@useratbridge$% - \else% - \@ltok@userconetop={#1}% - \@ltok@userconetopplural={#2}% - \@ltok@userptop={#3}% - \@ltok@useratbridge={#4}% - \@ltok@useratbridgeplural={#5}% - \fi% - \global\@ltok@usercitefirst={#6}% - \global\@ltok@usercitepage={#7}% - \global\@ltok@usercitelast={#8}} -\def\@law@shiftparas{% - \ifnum\the\c@law@paranormal>\the\c@law@paracounter\relax% - \ifcat$\the\@ltok@useratbridge$% - \else% - \global\@ltok@conetop\@ltok@userconetop% - \global\@ltok@conetopplural\@ltok@userconetopplural% - \global\@ltok@ptop\@ltok@userptop% - \global\@ltok@ptoctwo\@ltok@userptoctwo% - \global\@ltok@atbridge\@ltok@useratbridge% - \global\@ltok@atbridgeplural\@ltok@useratbridgeplural% - \fi% - \global\@ltok@citefirst\@ltok@usercitefirst% - \global\@ltok@citepage\@ltok@usercitepage% - \global\@ltok@citelast\@ltok@usercitelast% - \fi} -\def\@law@addpargument#1\tolist{% - \addtocounter{law@paranormal}{1}% - \@law@rightappendpargument#1\to\@law@tempplistmacro} -\long\def\@law@rightappendpargument#1\to#2{\@ltok@a={\\{#1}}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@b\the\@ltok@a}} -\def\@law@addptoken#1\tolist{\@law@leftappendptoken#1\to\@law@tempplistmacro} -\long\def\@law@leftappendptoken#1\to#2{% - \xdef\@law@temp{\noexpand\\\noexpand{\the#1\noexpand}}% - \@ltok@a=\expandafter{\@law@temp}% - \@ltok@b=\expandafter{#2}% - \xdef#2{\the\@ltok@a\the\@ltok@b}} -\def\@law@pcut#1\fromlist{\@law@plop\@law@tempplistmacro\to#1} -\def\@law@plop#1\to#2{\expandafter\@law@plopoff#1\@law@plopoff#1#2}% -\long\def\@law@plopoff\\#1#2\@law@plopoff#3#4{\gdef#4{#1}\gdef#3{#2}} -\def\@law@unstasheverything#1{% -\gdef\@law@gobble{}% -\if@law@infoot% - \addtocounter{citesinfoot}{1}% -\fi% -\expandafter\let\expandafter\@law@templistmacro\csname @ldata@#1\endcsname% -\global\c@law@footnote\c@footnote% -\@law@cut\@ltok@plistmacro\fromcitelist% -\xdef\@law@tempplistmacro{\the\@ltok@plistmacro}% -\@law@cut\@ltok@a\fromcitelist% -\expandafter\c@law@paranormal\the\@ltok@a% -\@law@cut\@ltok@nickname\fromcitelist% -\@law@cut\@ltok@author\fromcitelist% -\@law@cut\@ltok@name\fromcitelist% -\@law@cut\@ltok@citefirst\fromcitelist% -\@law@cut\@ltok@citepage\fromcitelist% -\@law@cut\@ltok@citelast\fromcitelist% -\@law@cut\@ltok@citetype\fromcitelist% -\@law@cut\@ltok@whereitsat\fromcitelist% -\@law@cut\@ltok@pageorfootno\fromcitelist% -\@law@cut\@ltok@hereinafter\fromcitelist% -\@law@cut\@ltok@bigsourcecite\fromcitelist%(not yet implemented) -\@law@cut\@ltok@bigsourcepage\fromcitelist%(not yet implemented) -\@law@cut\@ltok@stylename\fromcitelist% -\csname \the\@ltok@stylename bridges\endcsname% -\csname \the\@ltok@stylename faces\endcsname% -\@law@cut\@ltok@a\fromcitelist% - \ifcat$\the\@ltok@a$% - \else% - \@ltok@atbridgeplural\@ltok@a% - \@law@cut\@ltok@atbridge\fromcitelist% - \@law@cut\@ltok@ptoctwo\fromcitelist% - \@law@cut\@ltok@ptop\fromcitelist% - \@law@cut\@ltok@conetopplural\fromcitelist% - \@law@cut\@ltok@conetop\fromcitelist% - \@law@specialbridgestrue% - \fi% -\ifcat$\the\@ltok@whereitsat$% - \if@law@requiresubjects% - \@ifundefined{@law@\@law@citesubject @citelist}% - {\expandafter\gdef\csname @law@\@law@citesubject @citelist\endcsname{}}% - {\relax}% - \fi% - \@law@maybeaddcitesubject - \global\@law@firstuseofcitetrue% - \if@law@infoot% - \global\@ltok@whereitsat\@ltok@infoot% - \global\@ltok@pageorfootno=\expandafter{\the\c@law@footnote}% - \else% - \global\@ltok@whereitsat\@ltok@onpage% - \global\@ltok@pageorfootno=\expandafter{\the\c@page}% - \fi% - \if@law@specialbridges% - \@law@addtoken\@ltok@conetop\tocitelist% - \@law@addtoken\@ltok@conetopplural\tocitelist% - \@law@addtoken\@ltok@ptop\tocitelist% - \@law@addtoken\@ltok@ptoctwo\tocitelist% - \@law@addtoken\@ltok@atbridge\tocitelist% - \@law@addtoken\@ltok@atbridgeplural\tocitelist% - \else% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \@law@addargument{}\tocitelist% - \fi% -\@law@addtoken\@ltok@stylename\tocitelist% style name -\@law@addtoken\@ltok@bigsourcepage\tocitelist%(not yet implemented) -\@law@addtoken\@ltok@bigsourcecite\tocitelist%(not yet implemented) -\@law@addtoken\@ltok@hereinafter\tocitelist% (not yet implemented) -\@law@addtoken\@ltok@pageorfootno\tocitelist% (1)(b) stash the footnote bridge -\@law@addtoken\@ltok@whereitsat\tocitelist% (2)(b) footnote number -\@law@addtoken\@ltok@citetype\tocitelist% cite type -\@law@addtoken\@ltok@citelast\tocitelist% cite last part -\@law@addtoken\@ltok@citepage\tocitelist% cite page -\@law@addtoken\@ltok@citefirst\tocitelist% cite first part -\@law@addtoken\@ltok@name\tocitelist% name of work -\@law@addtoken\@ltok@author\tocitelist% author -\@law@addtoken\@ltok@nickname\tocitelist% nickname -\@law@addtoken\c@law@paranormal\tocitelist% parallels counter -\@law@addtoken\@ltok@plistmacro\tocitelist% parallels -\global\expandafter\let\csname @ldata@#1\endcsname\@law@templistmacro% -\fi% -} -\def\@law@makecitenick#1{% - \expandafter\xdef\csname @lnick@#1\endcsname{% - \noexpand\@law@unstasheverything\noexpand{#1\noexpand}% - \noexpand\@law@setup}} -{\catcode`\|=13% -\long\gdef\@law@setup{% -{\def\@law@firstslash{\begingroup\def\\{\@law@secondslash}% - \the\ltokspecialface}% - \def\@law@secondslash{\endgroup\def\\{\@law@firstslash}}% - \def\\{\@law@firstslash}% -\@law@justabovecheck% -\if@law@infoot% - \xdef\@law@currentcite{\the\@ltok@author\the\@ltok@name\the\@ltok@citefirst% - \the\@ltok@citepage\the\@ltok@citelast}% - \xdef\@law@lastpage{\the\@ltok@argtwo}% -\fi% - \begingroup% - \@law@tidybridges% - \ifx\@law@citesubject\empty% - \relax% - \else% - \if@law@bibentry% - \else% - \ifnum\the\c@law@paranormal=0\relax% - \csname write@one@\@law@citesubject @entry\endcsname% - \fi% - \fi% - \fi% - \endgroup% -\@law@print}}} -\def\@law@conetopsetup{% - \gdef\@law@temp{}% - \ifx\@law@argtwolist\@law@temp% - \else% - \@law@pincut\@ltok@argtwo\frompinlist% - \expandafter\@law@multicheck\the\@ltok@argtwo% - \@law@multiflag\query\end% - \fi} -\def\@law@tidybridges{% - \if@law@printauthor\else\global\@ltok@author{}\fi% - \if@law@printtitle\else\global\@ltok@name{}\fi% - \ifcat$\the\@ltok@author$% - \global\@ltok@atot{}% - \fi% - \ifcat$\the\@ltok@name$% - \global\@ltok@ttocone{}% - \fi% - \ifcat$\the\@ltok@citefirst$% - \global\@ltok@ttocone{}% - \fi% - \ifcat$\the\@ltok@citelast$% - \global\@ltok@ptoctwo{}% - \else% - \xdef\@law@temp{\the\@ltok@citelast}% - \gdef\@law@temptwo{()}% - \ifx\@law@temp\@law@temptwo% - \global\@ltok@citelast{}% - \global\@ltok@ptoctwo{}% - \fi% - \fi% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@ptop{}% - \fi% - \ifcat$\the\@ltok@argtwo$% - \global\@ltok@ptop{}% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@conetop{}% - \fi% - \fi% - \ifcat$\the\@ltok@argtwo$% - \global\@ltok@ptop{}% - \global\@ltok@atbridge{}% - \ifcat$\the\@ltok@citepage$% - \global\@ltok@conetop{}% - \fi% - \fi} -\def\@law@justabovecheck{% - \xdef\@law@temptwo{\the\@ltok@author\the\@ltok@name% - \the\@ltok@citefirst\the\@ltok@citepage% - \the\@ltok@citelast}% - \ifx\@law@lastcite\@law@temptwo% - \ifnum\the\c@citesinfoot=1\relax% - \@law@justabovecheckdetails% - \else% - \ifx\@law@currentcite\@law@temptwo% - \@law@justabovecheckdetails% - \else% - \@justabovefalse% - \fi% - \fi% - \else% - \ifnum\the\c@citesinfoot>1\relax% - \ifx\@law@currentcite\@law@temptwo% - \@law@justabovecheckdetails% - \else% - \@justabovefalse% - \fi% - \fi% - \fi} -\def\@law@justabovecheckdetails{% - \ifx\@law@lastpage\empty% - \@justabovetrue% - \@l@quiteexactfalse% - \else% - \ifcat$\the\@ltok@argtwo$% - \@justabovefalse% - \else% - \@justabovetrue% - \xdef\@law@temp{\the\@ltok@argtwo}% - \ifx\@law@temp\@law@lastpage% - \@l@quiteexacttrue% - \else% - \@l@quiteexactfalse% - \fi% - \fi% - \fi} -\def\@law@finish#1\@law@nomatch{} -\def\@law@slone#1#2{\def\@law@listitem{#1}% - \ifx\@law@optionitem\@law@listitem #2% - \let\\=\@law@finish\fi} -\def\@law@end{,} -\def\@law@slnomatch{\@camel@error{Citation Warning: Invalid - option `\@law@optionitem' - given to \string\citationsubject.^^J% - Valid options are:^^J - 2 (force a second-level header for a subject)^^J - p (to include pinpoints in an exported table)^^J - i=<extension> (use the three-letter extension in^^J - exporting a table)^^J - o=<volume> (use the three-letter extension in^^J - importing a table)^^J% -To avoid errors in formatting, use commas in the option string^^J% -only where they are logically necessary to the sense of the^^J% -string.}\@ehc} -\newlength{\templen} -\newlength{\lawlengthone} -\newlength{\lawlengthtwo} -\def\@law@getlabel#1{\settowidth\lawlengthone{\csname @law@#1@lab\endcsname}% - \ifnum\lawlengthone>\lawlengthtwo% - \settowidth\lawlengthtwo{\csname @law@#1@lab\endcsname}% - \fi} -\def\longestlabelfor#1{% - \setlength\lawlengthone{0pt}% - \setlength\lawlengthtwo{0pt}% - \let\\=\@law@getlabel% - \csname @law@#1@citelist\endcsname} -\def\@law@subjectoptionlist{% - \\{1}{\gdef\@law@level{1}}% - \\{2}{\gdef\@law@level{2}}% - \\{p}{\global\@law@usepinpointstrue}% - \\{P}{\gdef\@law@bibformat{\global\@law@usepagestrue}}% - \\{o}{\gdef\@law@parsemacro##1{\gdef\@law@outputext{##1}}% - \let\@law@parse\@law@slparsecomma}% - \\{i}{\gdef\@law@parsemacro##1{% - \ifcat$##1$\else% - \global\@law@maketabletrue% - \expandafter\gdef\csname\@law@temp inputext\endcsname{##1}% - \fi}% - \let\@law@parse\@law@slparsecomma}% - \\{=}{\let\@law@parse\@law@slparsebumequal}% - \\{,}{}% - \\{\end}{\let\@law@nomatch\relax\let\@law@parse\relax}% - \@law@nomatch} -\def\@law@slparsecomma=#1,{% - \@law@parsemacro{#1}\let\@law@parse\@law@slparseplain% - \@@parse} -\def\@law@slparsebumequal#1,{\let\@law@parse\@law@slparseplain\@@parse} -\def\@law@slparseplain#1{% - \let\@law@nomatch=\@law@slnomatch% - \def\@law@optionitem{#1}\let\\=\@law@slone\@law@subjectoptionlist\@@parse} -\def\citationsubject{% - \@ifnextchar[{\@citationsubject}{\@citationsubject[1]}} -{\catcode`\|=13% -\gdef\@citationsubject[#1]#2#3{% - \global\let\@law@level\relax% - \global\@law@usepinpointsfalse% - \global\@law@maketablefalse% - \global\@law@requiresubjectstrue% - \gdef\@law@bibformat{}% - \def\@law@temp{#2}% - {\let\@law@parse=\@law@slparseplain\@law@parse #1,\end}% - \expandafter\gdef\csname write@one@#2@entry\endcsname{}% - \if@law@maketable% - \expandafter\def\csname the#2table\endcsname{% - \@restonecoltrue% - \if@twocolumn\@restonecolfalse\fi% - \section*{#3}% - \@mkboth% - {\uppercase{#3}}% - {\uppercase{#3}}% - \thispagestyle{plain}% - \parindent\z@\parskip\z@ plus.3\p@\relax% - \let\item\citationtableitem} - \expandafter\def\csname endthe#2table\endcsname{% - \if@restonecol\onecolumn% - \else\clearpage% - \fi}% - \def\itemspace{% - \par\vskip 10\p@ plus5\p@ minus3\p@\relax} - \newindex{#2}{\@law@outputext}{\csname#2inputext\endcsname}{#3}% - \if@law@usepinpoints% - \expandafter\gdef\csname write@one@#2@entry\endcsname{% - {\ifcat$\the\@ltok@argtwo$\@ltok@argtwo{\@law@delim}\fi% - \@ltok@pagesstring\@ltok@argtwo% - \def\@law@comma{\@law@exportapage}% - \def\@law@ampersand{\@law@exportapage}% - \def\@law@dash{\@law@exportapage}% - \def|{\@law@exportapage}% - \def\@law@exportapage####1\@law@delim{% - \@ltok@argtwo{####1}% - \def\@law@temp{\index[#2]}% - \edef\@law@temptwo{% - \noexpand{\string\bibitem % - \string\source[b,Z=\the\@ltok@nickname]% - \noexpand{\the\@ltok@nickname\noexpand}% - \ifcat$\the\@ltok@argtwo$\else>####1\fi\string|maybe\noexpand}}% - \expandafter\@law@temp\@law@temptwo} - \expandafter\@law@exportapage\the\@ltok@pagesstring}}% - \else% - \expandafter\gdef\csname write@one@#2@entry\endcsname{% - \def\@law@temp{\index[#2]}% - \edef\@law@temptwo{% - \noexpand{\string\bibitem % - \string\source[b,Z=\csname @law@\the\@ltok@nickname @lab\endcsname]% - \string{\the\@ltok@nickname\string}\string|maybe\noexpand}}% - \expandafter\@law@temp\@law@temptwo}% - \fi% - \fi% - \@ltok@a=\expandafter{\@law@subjectlist}% - \@ltok@c=\expandafter{\@law@bibformat}% - \if@law@usepinpoints% - \edef\@law@temp{\noexpand\\\noexpand{#2\noexpand}% - \noexpand{p\noexpand}% - \noexpand{#3\noexpand} - \noexpand{\the\@ltok@c\noexpand}}% - \@ltok@b=\expandafter{\@law@temp}% - \else% - \edef\@law@temp{\noexpand\\\noexpand{#2\noexpand} - \noexpand{\@law@level\noexpand} - \noexpand{#3\noexpand} - \noexpand{\the\@ltok@c\noexpand}}% - \@ltok@b=\expandafter{\@law@temp}% - \fi% - \edef\@law@subjectlist{\the\@ltok@a\the\@ltok@b}}} -\def\printbibliography{\@ifnextchar[{\@printbibliography}{\@printbibliography[]}} -\def\@printbibliography[#1]#2{% - \global\@law@forcefootnotesfalse% - \gdef\@law@temp{#1}\gdef\@law@temptwo{labels=false}% - \let\camelrefname\refname% - \expandafter\ifx\csname#2inputext\endcsname\relax% - \global\@law@tablefalse% - \else% - \global\@law@tabletrue% - \fi% - \begingroup% - \def\refname{\@law@getsubjectheader{#2}}% - \@law@usepagesfalse% - \@law@getbibformat{#2} - \let\maybe\@gobble% - \let\camelfill\relax% - \let\camelarrow\relax% - \ifx\@law@temp\@law@temptwo% - \advance\@totalleftmargin -\labelsep% - \advance\linewidth \labelsep% - \def\@biblabel##1{}% - \fi% - \if@law@table% - \if@law@usepages% - \let\maybe\relax% - \let\camelfill\dotfill% - \let\camelarrow\rightarrow% - \fi% - \else% - \longestlabelfor{#2}% - \ifdim\lawlengthtwo=0pt% - \advance\@totalleftmargin -\labelsep% - \advance\linewidth \labelsep% - \def\@biblabel##1{}% - \fi% - \fi% - \if@law@requiresubjects% - \@law@dobibliography{#2}% - \else% - \gdef\@law@temp{#2}\gdef\@law@temptwo{all}% - \ifx\@law@temp\@law@temptwo% - \@law@dobibliography{#2}% - \else% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: without-subjects ^^J - Bibliography type: subject-specific (#2) ^^J - Action: impossible task, ignoring ...^^J% - ===================================================^^J} - \fi% - \fi% - \endgroup} -\def\@law@dobibliography#1{% - \begin{thebibliography}{\if@law@biblabels\longestlabelfor{#1}\rule{\lawlengthtwo}{5pt}\fi} - \if@law@table% - \if@law@usepages% - \addtolength{\parsep}{-.5\parsep}% - \addtolength{\itemsep}{-.5\itemsep}% - \fi% - \fi% - \if@law@requiresubjects% - \@law@requiresubjectsfalse% - \if@law@table - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: subject-classified cites ^^J - Bibliography type: subject-specific external (#1) ^^J - Action: generating^^J% - ===================================================^^J} - \@input{\jobname.\csname#1inputext\endcsname} - \else% - \gdef\@law@temp{#1}\gdef\@law@temptwo{all}% - \ifx\@law@temp\@law@temptwo% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: subject-classified cites ^^J - Bibliography type: all citations ^^J - Action: header only (not yet implemented)^^J% - ===================================================^^J} - \else% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: subject-classified cites ^^J - Bibliography type: subject-specific internal (#1) ^^J - Action: generating^^J% - ===================================================^^J} - {\let\\\@law@bibslash% - \csname @law@#1@citelist\endcsname} - \fi% - \fi% - \else% - \message{^^J===================================================^^J% - Camel bibliography ^^J - Document type: without-subjects ^^J - Bibliography type: all citations ^^J - Action: generating^^J% - ===================================================^^J} - {\let\\\@law@bibslash% - \csname @law@#1@citelist\endcsname}% - \fi% - \end{thebibliography}} -\def\@law@bibslash#1{\bibitem [\csname @law@#1@lab\endcsname] \source[b]{#1}. } -\endinput -%% -%% End of file `camel.sty'. |