summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-05-04 23:00:21 +0000
committerKarl Berry <karl@freefriends.org>2008-05-04 23:00:21 +0000
commite936f03b76d95e6241f79cbd2f2fde7bd425869d (patch)
tree2438598f499a1a20776dc1bc1686606e7ddeb943 /Master/texmf-dist
parent704a83857729bdf1546dfc8a61775587105ddaf8 (diff)
rm camel, nosell
git-svn-id: svn://tug.org/texlive/trunk@7852 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/bibtex/bib/camel/camel.bib154
-rw-r--r--Master/texmf-dist/bibtex/bst/camel/law.bst1685
-rw-r--r--Master/texmf-dist/doc/latex/camel/camel.dvibin312000 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/camel/index.dvibin19188 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/camel/law.dvibin86024 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/camel/sample.dvibin3248 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/camel/sample.tex128
-rw-r--r--Master/texmf-dist/doc/latex/camel/test.dvibin7608 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/camel/test.tex144
-rw-r--r--Master/texmf-dist/makeindex/camel/camel.ist65
-rw-r--r--Master/texmf-dist/source/latex/camel/CATALOG15
-rw-r--r--Master/texmf-dist/source/latex/camel/MANIFEST20
-rw-r--r--Master/texmf-dist/source/latex/camel/README87
-rw-r--r--Master/texmf-dist/source/latex/camel/bibtex.ch768
-rw-r--r--Master/texmf-dist/source/latex/camel/camel.dtx5872
-rw-r--r--Master/texmf-dist/source/latex/camel/camel.ins126
-rw-r--r--Master/texmf-dist/source/latex/camel/law.cit75
-rw-r--r--Master/texmf-dist/source/latex/camel/law.cst260
-rw-r--r--Master/texmf-dist/source/latex/camel/law.dtx1774
-rw-r--r--Master/texmf-dist/source/latex/camel/law.ins105
-rw-r--r--Master/texmf-dist/source/latex/camel/sample.adx6
-rw-r--r--Master/texmf-dist/source/latex/camel/sample.ldx2
-rw-r--r--Master/texmf-dist/source/latex/camel/sample.ndx4
-rw-r--r--Master/texmf-dist/tex/latex/camel/camel.sty1270
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
deleted file mode 100644
index 43f67212d33..00000000000
--- a/Master/texmf-dist/doc/latex/camel/camel.dvi
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/camel/index.dvi b/Master/texmf-dist/doc/latex/camel/index.dvi
deleted file mode 100644
index 3f2968776e5..00000000000
--- a/Master/texmf-dist/doc/latex/camel/index.dvi
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/camel/law.dvi b/Master/texmf-dist/doc/latex/camel/law.dvi
deleted file mode 100644
index 03f987bf0b5..00000000000
--- a/Master/texmf-dist/doc/latex/camel/law.dvi
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/camel/sample.dvi b/Master/texmf-dist/doc/latex/camel/sample.dvi
deleted file mode 100644
index 020f05e0484..00000000000
--- a/Master/texmf-dist/doc/latex/camel/sample.dvi
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 21354977456..00000000000
--- a/Master/texmf-dist/doc/latex/camel/test.dvi
+++ /dev/null
Binary files differ
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'.