summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/camel/law.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/camel/law.dtx')
-rw-r--r--Master/texmf-dist/source/latex/camel/law.dtx1774
1 files changed, 0 insertions, 1774 deletions
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