The Law module for the Camel Bibliography Engine^{∗}

Frank G Bennett, Jr.^{†}

February 17, 1997

Abstract

The Law module for the 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.

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 tag, it is far more difficult, without logical markup, to identify its 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 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 primary legal authority from the face of any citation to it, without tracing down cross-references.

∗This file has version number 0.1d dated 1997/01/09. The documentation was last revised on 1997/01/09. The documentation and the code for Camel are \begin{matrix}c \\ ◯ \end{matrix} 1992–95 Frank Bennett, Jr. Distribution and use are freely welcomed, on the sole condition that acknowledgement of the Camel package, its Law module and of their author be made in any published using these utilities.

†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 Camel package itself are listed in the users’ guide to that software.

A first attempt to address this problem was made in the complementary LexITEX and LexiBib packages, for L^{A}TEX 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 Camel bibliography engine. The typesetting code was then used to assemble the Law module for 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 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 Camel manual. The same should apply to any other bibliography modules produced for 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 not a Camel module!

You are not under an obligation to enjoy this package. If you have complaints, you can contact me on fb@soas.ac.uk.

1 The style code

1.0.1 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.

build.bridges I’m not actually sure whether this function belongs in camel.dtx or in law.dtx. What it does is to insert (or not insert) an appropriate \bridges declaration into the .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

schedules, sections and articles. Season to taste.

1 ⟨∗bstfunctions⟩

 2 FUNCTION {build.bridges}
 3 { duplicate$ empty$
 4  { pop$ skip$ }
 5  { duplicate$ "sections" =
 6  { pop$ "\bridges{\ \S~}{}{\ \S\S~}{\ }{\ \S~}{\ \S\S~}"

 7  "" "" must.must.must
 8  }

9

10  { duplicate$ "articles" =
11  { pop$
12  "\bridges{\ art.~}{}{\ arts.~}{\ }{\ art.~}{\ arts.~}"
13  "" "" must.must.must

14 }

15  { "schedules" =
16  { "\bridges{\ sched.~}{}{\ scheds.~}{\ }{\ sched.~}{\ scheds.~}"
17  "" "" must.must.must

18 }

19  'skip$
20  if$
21  }if$
22  }if$
23  }if$

24 }

get.a.kinda.sort.key It is early days for the sorting of bibliographies in Camel. This will give a rough key.

25 FUNCTION { get.a.kinda.sort.key }
26 {     author empty$
27  { title empty$
28  { "0000" }
29  { title "*" "forward" gather.chars pop$
30  duplicate$ "l" change.letter.case "the" =
31  { pop$ "*" "forward" gather.chars pop$ swap$ pop$ }
32  { duplicate$ "l" change.letter.case "a" =
33  { pop$ "*" "forward" gather.chars pop$ swap$ pop$ }
34  { swap$ pop$
35  }if$
36  }if$
37  }if$

38 }

39  { author #1 "{ll}" format.name$
40  }if$

41 }

j.format.division This function assembles the various fields relevant to the division of a Japanese court into a single string.

42 FUNCTION {j.format.division}
43 { division empty$
44 'skip$
45 { dc.. court "end" first.in.second
46  { pop$ " No.~" 's := "endlabel" 't := }
47  { pop$ sc.. court "start" first.in.second
48  { pop$ "No.\ " 's := "frontlabel" 't := }
49  {  pop$ " " 's :=  "endlabel" 't :=
50  }if$
51  }if$
52 }if$
53 division s divno t field.tag.no.combine

54 }

1.0.2 Entry type functions

Now we define the type functions for all entry types that may appear in the *.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.^{1}

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.

55 FUNCTION {article}

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 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.

56 { volume empty$ not number empty$ not and
57 volume empty$ number empty$ year "mo.dd.yy" format.date
58 pop$ itemcount #1 = not and and or
59 { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}"
60  "" "" must.must.must
61  newline$

62 }

Second, the @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.

63 { title type.last.char "numeral" =
64  { "\bridges{,\ }{,\ }{,\ }{\ }{\ at~}{\ at~}"
65  "" "" must.must.must
66  newline$

67 }

68  'skip$
69  if$
70 }if$

Then we write the citation leader, to prepare for outputting the actual content of the citation text.

71 "\lexibib{article}{" cite$ "}{" must.must.must
72 get.a.kinda.sort.key
73 "}{" "" must.must.must

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, appropriatelyformatted 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.

1This comment by Oren Patashnik.

74 author  "lastonly" format.names
75 "}{"
76 ""
77 must.must.must

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.

78 title "title" check
79 "}{"
80 ""
81 must.must.must

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.

82 volume empty$ not number empty$ not and
83 { journal "journal" check ", v.~" volume must.must.must
84  ", n.~" number "}{" must.must.must }
85 { volume empty$ not
86  { volume "\ " journal "journal" check empty.to.null
87  might.ifone.must
88  "}{" "" "" must.must.must}
89  { year "mo.dd.yy" format.date itemcount #1 =
90  { "[" swap$ "] " iftwo.might.iftwo
91  number "\ " journal "journal" check might.ifone.must
92  "}{" "" "" must.must.must}
93  { pop$ number empty$
94  { "\\" journal "journal" check "\\" must.must.must
95  "}{" "" "" must.must.must }
96  { number "\ " journal "journal" check might.ifone.must
97  "}{" "" "" must.must.must
98  }if$
99  }if$
100  }if$
101 }if$

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.

102 pages "short" format.pages "pages" check
103 "}{"

104 ""

105 must.must.must

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, Commonwealthstyle. 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.

106 volume empty$ not
107 { "(" "" "" must.must.must
108  publisher ":\ " "" might.ifone.must
109  "" year "mo.dd.yy" format.date ")" must.must.must }
110 { year "mo.dd.yy" format.date itemcount #1 =
111  'pop$
112  { "" "" must.must.must
113  }if$
114 }if$

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.

115 crossref empty$

If there is no crossref, we just push a brace and a couple of nulls, and write. Done! Hurray!

116 { "}" "" "" must.must.must }

But if there 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.

117 { booktitle empty$

So if no booktitle is found, we whinge and format as for a no-cross-reference entry.

118 { "no booktitle (name of special issue) for "
119  cite$ "/" crossref ".  Why a crossref?" * * * * warning$
120  "}" "" "" must.must.must }

If there 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.

121 { volume empty$ {""} {") ("} if$ booktitle "}" must.must.must}
122 if$
123 }if$

Add a fresh new line in the export file, and we’re done! Whew!

124 newline$

125 }

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.

126 FUNCTION {book}

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.

127 { title type.last.char "numeral" =
128  { "\bridges{,\ }{}{,\ }{\ }{\ at~}{\ at~}"
129  "" "" must.must.must
130  newline$

131 }

132  { units empty.to.null "paras" =
133  { "\bridges{,\ para.~}{}{,\ paras.~}{\ }{,\ para.~}{,\ paras.}"
134  "" "" must.must.must
135  newline$

136 }

137  'skip$
138  if$
139  }if$

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.

140 "\lexibib{book}{" cite$ "}{" must.must.must
141 get.a.kinda.sort.key "" "}{" must.must.must

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}.
142 volume empty$
143 { "" }
144 { "\volno\ " }
145 if$

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.

146 author
147 "firstinitial" format.names "}{" must.must.must

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 “⟨title⟩: ⟨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.

148 booktitle empty$
149  { title "title" check "" ""  must.must.must }
150  { booktitle ": " title must.ifthree.might

151  }if$
152 type empty.to.null "cmnd" =
153 type empty.to.null "command" =
154 type empty.to.null "command papers" =
155 or or
156 { ", " year "mo.dd.yy" format.date
157  ", " "Cmnd. "
158  * * *
159  series empty$
160  { "no.~" }
161  { "Ser.~" series ", No.~" * *
162  }if$
163 number "number" check

164 * *

165 "" "" must.must.must

166 }

167 'skip$
168 if$
169 "}{}{}{" "(" "" must.must.must

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…

170  editor empty$ translator empty$ and

… 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.

171  { series empty$

If both series is empty, we’ve nothing to do.

172  'skip$

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.

173  { series " No.~" number
174  "endlabel" field.tag.no.combine ", " "" must.must.must }
175  if$

176 }

If either the editor or the translator fields were not empty, we format the editor or translator name instead, and put those details here.

177  { editor translator either.or "firstinitial" format.names

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.

178  translator empty$
179  { editor num.names$ #1 >
180  { " eds.\ " }
181  { " ed.\ " }
182  if$

183 }

184  { " trans.\ " }
185  if$
186  "" must.must.must
187  }if$

We also need to indicate the edition, if any.

188 edition " ed.\ " "" might.ifone.must

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.

189 type empty.to.null "cmnd" =
190 type empty.to.null "command" =
191 type empty.to.null "command papers" =
192 or or
193 { "" }
194 { year "mo.dd.yy" format.date
195 }if$
196 ")}" "" must.must.must

A new line for a new macro, and we’re done! Rejoice! On to the next function definition!

197 newline$

198 }

incollection This is for those nasty entries that are created when someone publishes an article in a collection of essays edited by someone else.

199 FUNCTION{incollection}
200 { "\lexibib{incollection}{" cite$ "}{" must.must.must
201 get.a.kinda.sort.key "" "}{" must.must.must
202 author "lastonly" format.names "author" check
203 "}{" "" must.must.must
204 title "title" check
205 "}{" "" must.must.must
206 chapter empty$
207  { "\\in \\" }
208  { "\\" type empty$
209  { "chapter " chapter "chapter" check " of \\" * * * }
210  { type " " chapter "chapter" check " of \\" * * * *
211  }if$
212  }if$
213 booktitle "booktitle" check
214 "}{" must.must.must
215 pages "short" format.pages "pages" check
216 "}{" "(" must.must.must
217 % We're now in the final ``field'' of the \LexiTeX{} entry.

218 % The coding here is the same as for a "book" entry; the
219 % reader is referred to that entry for the commentary
220 % on the following code.
221 %    \begin{macrocode}
222  editor empty$ translator empty$ and
223  { series empty$
224  'skip$
225  { series " No.~" number
226  "endlabel" field.tag.no.combine ", " "" must.must.must }
227  if$

228 }

229  { editor booktranslator either.or "firstinitial" format.names
230  booktranslator empty$
231  { editor num.names$ #1 >
232  { " eds.\ " }
233  { " ed.\ " }
234  if$

235 }

236  { " trans.\ " }
237  if$
238  "" must.must.must
239  }if$
240 edition " ed.\ " "" might.ifone.must
241 year "mo.dd.yy" format.date ")}" "" must.must.must
242 newline$

243 }

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.

244 FUNCTION{inbook}
245 { "\lexibib{inbook}{" cite$ "}{" must.must.must
246 get.a.kinda.sort.key "" "}{" must.must.must
247 author "firstinitial" format.names "author" check
248 "}{" "" must.must.must
249 title booktitle =
250  { chapter empty$
251  { "no chapter or separate title for inbook entry " cite$ * warning$

252 }

253  { "{\rm " "Chapter" type either.or.nowarning
254  " " chapter " of} " * * * *
255  }if$

256 }

257  { ""
258  }if$
259 title "title" check
260 "}{" must.must.must
261 title booktitle =
262  { "" }

263  { chapter empty$
264  { "{\rm in} " }
265  { type empty$
266  { "{\rm Chapter " chapter " of} " * * }
267  { "{\rm " type " " chapter " of} " * * * *
268  }if$
269  }if$
270  }if$
271 booktitle "booktitle" check
272 "}{" must.must.must
273 pages "short" format.pages "pages" check
274 "}{" "(" must.must.must
275 % We're now in the final ``field'' of the \LexiTeX{} entry.
276 % The coding here is the same as for a "book" entry; the
277 % reader is referred to that entry for the commentary
278 % on the following code.
279 %    \begin{macrocode}
280  translator empty$
281  { series empty$
282  'skip$
283  { series " No.~" number
284  "endlabel" field.tag.no.combine ", " "" must.must.must }
285  if$

286 }

287  { translator "firstinitial" format.names
288  " trans.\ "
289  "" must.must.must
290  }if$
291 edition " ed.\ " "" might.ifone.must
292 year "mo.dd.yy" format.date ")" "}" must.must.must
293 newline$

294 }

295 FUNCTION{booklet}
296 { "\lexibib{booklet}{" cite$ "}{" must.must.must
297 get.a.kinda.sort.key "" "}{" must.must.must
298 author "full" format.names "}{" "" must.must.must
299 "\\" title "\\}{}{}{(" must.must.must
300 howpublished ", " "" might.ifone.must
301 year "mo.dd.yy" format.date
302 ")}" "" must.must.must
303 newline$

304 }

305 FUNCTION {techreport}
306 {"\lexibib{techreport}{" cite$ "}{" must.must.must
307 get.a.kinda.sort.key "" "}{" must.must.must
308 institution author either.or.nowarning
309 "full" format.names "author & institution" check
310 "}{" title "title" check must.must.must
311 "}{}{}{" "(" "" must.must.must
312 author empty$
313  'skip$
314  {institution "\ "  "" might.ifone.must
315  }if$

316 type empty$
317  { "Technical report" }
318  { type
319  }if$
320 type empty.to.null "Cmnd" =
321 { "\ " }
322 { " No.~"
323 }if$
324 number "endlabel" field.tag.no.combine
325 ", " "" must.must.must
326 year "mo.dd.yy" format.date
327 "" ")}" must.must.must
328 newline$

329 }

330 FUNCTION {mastersthesis}
331 {"\lexibib{mastersthesis}{" cite$ "}{" must.must.must
332 get.a.kinda.sort.key "}{" "" must.must.must
333 author
334 "full" format.names "author" check
335 "}{" title "title" check must.must.must
336 "}{}{}{("
337 type empty$
338  { "Master's Thesis" }
339  { type
340  }if$
341 ", " must.must.must
342 institution "institution" check ", " "" might.ifone.must
343 year "mo.dd.yy" format.date
344 ")" "}" must.must.must
345 newline$

346 }

Cases Law cases are all entered using the @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.

347 FUNCTION {clear.cite.vars}

348 {

349 "" 'volume.var :=
350 "" 'number.var :=
351 "" 'journal.var :=
352 "" 'pages.var :=
353 "" 'year.var :=

354 }

355 FUNCTION {case}

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.

356 { cites empty.to.null "=" *
357 journal empty$
358 { parse.one.cite }

359 { volume empty.to.null 'volume.var :=
360  number empty.to.null 'number.var :=
361  journal 'journal.var :=
362  pages empty.to.null 'pages.var :=
363  year empty.to.null 'year.var :=
364 }if$
365 volume.var empty$ not number.var empty$ not and
366 { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}"
367  "" "" must.must.must
368  newline$ }
369 'skip$
370 if$
371 "\lexibib{case}{" cite$ "}{" must.must.must
372 get.a.kinda.sort.key "" "}{}{" must.must.must
373 title empty$
374 {  "Decision of the " court "court" check "" must.must.must
375  " (" j.format.division ")" iftwo.might.iftwo
376  ", " "" "" must.must.must
377  casedate "month.dd.yy" format.date "" "" must.must.must
378  "}{" "" "" must.must.must

379 }

380 { title "}{" "" must.must.must }
381 if$
382 volume.var empty$ not number.var empty$ not and
383 { journal.var "journal" check ", v.~" volume.var must.must.must
384  ", n.~" number.var "}{" must.must.must }
385 { volume.var empty$
386  { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo
387  number.var "\ " journal.var "journal" check might.ifone.must
388  "}{" "" "" must.must.must }
389  { volume.var "\ " journal.var "journal" check empty.to.null
390  might.ifone.must
391  "}{" "" "" must.must.must
392  }if$
393 }if$
394 pages.var "short" format.pages "pages" check
395 "}{"
396 "("
397 must.must.must
398 volume.var empty$
399 'skip$
400 { year.var "mo.dd.yy" format.date "" "" must.must.must
401 }if$
402 crossref empty$
403 { ")}" "" "" must.must.must }
404 { booktitle empty$
405 { "no booktitle (name of special issue) for "
406  cite$ "/" crossref * * * warning$
407  ")}" "" "" must.must.must }
408 { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must}
409 if$
410 }if$
411 { duplicate$ "=" = not }
412 { parse.one.cite

413 "={" "" "" must.must.must
414 volume.var empty$ not number.var empty$ not and
415 { journal.var "journal" check ", v.~" volume.var must.must.must
416  ", n.~" number.var "}{" must.must.must }
417 { volume.var empty$
418  { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo
419  number.var "\ " journal.var "journal" check might.ifone.must
420  "}{" "" "" must.must.must }
421  { volume.var "\ " journal.var "journal" check empty.to.null
422  might.ifone.must
423  "}{" "" "" must.must.must
424  }if$
425 }if$
426 pages.var "short" format.pages "pages" check
427 "}{"

428 ""

429 must.must.must
430 volume.var empty$
431 'skip$
432 { "(" year.var "mo.dd.yy" format.date ")" must.must.must
433 }if$
434 crossref empty$
435 { "}" "" "" must.must.must }
436 { booktitle empty$
437 { "no booktitle (name of special issue) for "
438  cite$ "/" crossref * * * warning$
439  "}" "" "" must.must.must }
440 { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must}
441 if$
442 }if$
443 }while$
444 pop$
445 clear.cite.vars
446 newline$
447 annote empty.to.null write$ newline$

448 }

The following item adds annotations; this may be eliminated by stripping with

 noannotes.

449 ⟨∗!noannotes⟩

450 % annote empty.to.null write$ newline$

451 ⟨/!noannotes⟩ 452 % }

j.statute This function applies to Japanese statutory materials.

453 FUNCTION {j.statute}
454 { "\lexibib{jstatute}{" cite$ "}{" must.must.must
455 get.a.kinda.sort.key "" "}{}{" must.must.must
456 title "title" check empty.to.null "}{}{}{" "" must.must.must
457 title empty$ {""} {"("} if$
458 "" "" must.must.must
459 number empty$
460  'skip$
461  { type empty$
462  { "Law" }

463  { type
464  }if$
465  "\ no.~" *
466  number "number" check " of "
467  iftwo.might.iftwo

468 }

469  if$
470 year "yy" format.date
471 title empty$ {""} {")"} if$
472 "}" must.must.must
473 newline$

474 }

s.statute This function formats a statute entry for Singapore.

475 FUNCTION { s.statute }
476 { "\lexibib{statute}{" cite$ "}{" must.must.must
477 get.a.kinda.sort.key "" "}{}{" must.must.must
478 title "title" check ", No.~" number
479 "endlabel" field.tag.no.combine
480 number empty$
481  { "\ " * }
482  { "\ of " * }
483  if$
484 year "mo.dd.yy" format.date "}{}{}{}" must.must.must
485 newline$

486 }

487 FUNCTION { e.statute }
488 { "\lexibib{statute}{" cite$ "}{" must.must.must
489 get.a.kinda.sort.key "" "}{}{" must.must.must
490 title "title" check "\ "
491 year "mo.dd.yy" format.date must.must.must
492 "}{}{}{}" "" "" must.must.must
493 newline$

494 }

statute This function selects the correct statute entry function.

495 FUNCTION { statute }
496 { type build.bridges
497 jurisdiction empty.to.null duplicate$
498 "japan" =
499 { pop$ j.statute }
500 { duplicate$ "singapore" =
501  { pop$ s.statute }
502  { duplicate$ "england" =
503  { pop$ e.statute }
504  { pop$ "IMPORTANT: unknown jurisdiction for " cite$ * warning$
505  }if$
506  }if$
507 }if$

508 }

unpublished

A hastily drafted function type for unpublished materials.

509 FUNCTION {unpublished}

510 { "\lexibib{book}{" cite$ "}{" must.must.must
511 get.a.kinda.sort.key "" "}{" must.must.must
512 author "firstinitial" format.names "}{" "" must.must.must
513 title "title" check "" ""  must.must.must
514 "}{}{}{" "(" "" must.must.must
515 note
516 ")}" "" must.must.must
517 newline$

518 }

default.type We use the book type as our default type. When manual is completed, we should probably use that type instead.

519 FUNCTION {default.type} { book }

520 ⟨/bstfunctions⟩

1.1 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 need to spell out journal and reporter names?

1.2 Execution

With all preliminaries out of the way, our first act is to read in the entries from

*.bib..

521 ⟨∗bstfunctions⟩

522 READ

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.

523 EXECUTE {hello}

524 ⟨/bstfunctions⟩

2 Camel style code

525 ⟨∗lawcitestyle⟩

526 \ProvidesFile{law.cst}[1995/01/08]

2.1 Word list

A list of inter-words and their corresponding expansions must be provided.

527 {\catcode`\_=13%
528 \catcode`\^=13%
529 \gdef\@law@wordlist{%
530 \\{\item}{\item}%
531 \\{and}{_\ ^And }%
532 \\{but-see}{_\ ^But see }%
533 \\{,}{_; }%
534 \\{;}{_; }%

535 \\{:}{_; }%
536 \\{eg}{_; ^E.g.~}%
537 \\{accord}{_; ^Accord }%
538 \\{see}{_; ^See }%
539 \\{see-also}{_; ^See also }%
540 \\{cited-in}{ cited in }%
541 \\{citing}{ citing }%
542 \\{cf}{_; ^Cf.~}%
543 \\{compare}{_; ^Compare }%
544 \\{with}{ with }%
545 \\{contra}{_; ^Contra }%
546 \\{but-cf}{_\ ^But cf.~}%
547 \\{see-generally}{_. See generally }%
548 \\{affirmed}{_, ^aff'd }%
549 \\{reprinted-in}{_; ^Reprinted in }%
550 \@law@nomatch}

551 }

2.2 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 Camel engine allow a high degree of refinement in the formatting of citations. For the styles currently used in publishing with L^{A}TEX, 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.

552 \gdef\@law@print{%

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.

553 \xdef\@law@argtwolist{\the\@ltok@argtwo}%
554 \if@law@firstuseofcite\@law@longcitetrue\fi%

This toggles the printing on and off. This toggle is set by the n option to the \source command.

555 \if@law@printcite%
556 \begingroup%
557 \def\@law@firstslash{\begingroup\def\\{\@law@secondslash}%
558 \the\ltokspecialface}%
559 \def\@law@secondslash{\endgroup\def\\{\@law@firstslash}}%
560 \def\\{\@law@firstslash}%

There are two halves to the macro; one for long cite forms, the other for short. Long cite forms are in the first half.

561 \if@law@longcite%

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 |.

562 \global\ltokspecialface=\@ltok@authoroptionface%
563 {\the\@ltok@authormainface%
564 \@law@barinfull\the\@ltok@author}\the\@ltok@atot%

Next comes similar treatment for the title.

565 \global\ltokspecialface=\@ltok@titleoptionface%
566 {\the\@ltok@titlemainface%
567 \@law@barinfull\the\@ltok@name}\the\@ltok@ttocone%
568 \@law@longrecurse%

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.

569 \else%

The footnote number and the accompanying bridge should not appear in a shortform citation if the citation being printed first occurred in the current footnote. Rather than suppressing printing, we just set the relevant tokens to nil.

570 \ifnum\the\@ltok@pageorfootno=\the\c@law@footnote\relax%
571  \xdef\@law@temp{\the\@ltok@whereitsat}%
572  \xdef\@law@temptwo{\the\@ltok@infoot}%
573  \ifx\@law@temp\@law@temptwo%
574  \global\@ltok@whereitsat{}%
575  \global\@ltok@pageorfootno{}%
576  \fi%
577 \fi%

Special forms of tidying-up may be appropriate to each of the four classes of citation. An appropriate cleaning macro is called here.

578 \csname @law@\the\@ltok@citetype preformat\endcsname%

If it has been found that the same citation has been used immediately previous to this instance, we use Id. If the \@justabove test showed that 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.

579 \if@justabove%
580 {\def\,{,}%
581  \Id%
582  \if@l@quiteexact%
583  \gdef\@law@gobble{\@ifnextchar.{\@gobble}{}}%
584  \else%
585  \ifcat$\the\@ltok@argtwo$%
586  \gdef\@law@gobble{\@ifnextchar.{\@gobble}{}}%
587  \else%

588

589  \the\@ltok@atbridge{\@law@barkill\the\@ltok@argtwo\relax}%
590  \@law@fetchparas%
591  \@law@shiftparas%
592  \@law@shortrecurse%
593  \fi%
594  \fi}%

If Id. was not called for, we have to create a proper short-form reference. This \else corresponds with the \@justabove toggle, above.

595 \else%

The author will be used in any case. Note that the author and its following bridge may have been set to nil, above.

596 \global\ltokspecialface=\@ltok@authoroptionface%
597 {\the\@ltok@authormainface%
598 %  print whatever there if for the author
599 \@law@barinshort\the\@ltok@author}\the\@ltok@atot%

The title information is also used, if it is present.

600 \global\ltokspecialface=\@ltok@titleoptionface%
601 {\the\@ltok@titlemainface%

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¿

602 \@law@barinshort\the\@ltok@name}%

At this point, we must make decisions concerning whether to use the supra crossreferencing 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.

603 \xdef\@law@temp{\the\@ltok@citetype}%
604  \ifx\@law@temp\@law@case%
605  \@nosupratrue%
606  \else%
607  \ifx\@law@temp\@law@statute%
608  \@nosupratrue%
609  \else%
610  \@nosuprafalse%
611  \fi%
612  \fi%

Now we put the result of the above test to work. First, the citation form for cases or statutes, which do not permit the supra form.

613  \if@nosupra%
614  \the\@ltok@ttocone%
615  \@law@shortprint%
616  \@law@shortrecurse%
617  \else%
618  \supra\the\@ltok@whereitsat\the\@ltok@pageorfootno%
619  \the\@ltok@atbridge%
620  {\def\,{,}%
621  {\@law@barkill\the\@ltok@argtwo\relax}}%
622  \fi%
 In order, these close \if@justabove, \if@law@longcite and \if@law@printcite.
623  \xdef\@law@temp{\the\@ltok@citetype}%
624  \ifx\@law@temp\@law@statute%
625  \ifcat$\the\@ltok@citefirst$%
626  \the\@ltok@ptoctwo{\@law@barinshort\the\@ltok@citelast}%
627  \fi%
628  \fi%
629 \fi%
630 \fi%
631 \endgroup%
632 \fi%  <- end of if@law@printcite

The \@law@gobble here will consume a period inserted automatically after a forced footnote, if the printed form turned out to be an Id.. See the concluding code of

 \@law@setup.
633 \global\@law@longcitefalse\gdef\volno{\message{(No volume %
634  for \the\@ltok@nickname)}}}%

\@law@longrecurse This macro prints the tail end of long citations until parallels are exhausted.

635 \def\@law@longrecurse{%
636 \@law@longprint%
637 \ifnum\the\c@law@parapin>0\relax%
638  \loop%
639  \addtocounter{law@paracounter}{1}%
640  \ifnum\the\c@law@paracounter<\the\c@law@parapin\relax%
641  ; \@law@longprint%
642  \repeat%
643 \else%
644  \loop%
645  \addtocounter{law@paracounter}{1}%
646  \ifnum\the\c@law@paracounter>\the\c@law@paranormal\relax%
647  \else%
648  ; \@law@longprint%
649  \repeat%
650 \fi%

Finally, we print the last date item, which might be blank if it’s already been printed inside .

651 \@law@temp}
652 \def\@law@shortrecurse{%
653 \ifnum\the\c@law@parapin>0\relax%
654  \loop%
655  \addtocounter{law@paracounter}{1}%
656  \ifnum\the\c@law@paracounter<\the\c@law@parapin\relax%
657  \@law@pincut\@ltok@argtwo\frompinlist%
658  ; \@law@shortprint%
659  \repeat%
660 \else%
661  \loop%
662  \addtocounter{law@paracounter}{1}%
663  \ifnum\the\c@law@paracounter>\the\c@law@paranormal\relax%
664  \else%
665  ; \@law@shortprint%
666  \repeat%
667 \fi}
\@law@longprint
668 \def\@law@longprint{%
669 \begingroup%
670 \@law@fetchparas%
671 \@law@tidybridges%

If for some reason either the pinpoint argument is nil, or it and the location page token register is nil, we set the accompanying bridges to nil.

672 \ifcat$\the\@ltok@argtwo$%
673 \global\@ltok@ptop{}%

674 \global\@ltok@atbridge{}%
675 \ifcat$\the\@ltok@citepage$%
676  \global\@ltok@conetop{}%
677  \fi%
678 \fi%
679 \global\ltokspecialface=\@ltok@citefirstoptionface%
680 {\the\@ltok@citefirstmainface%
681 \@law@barinfull\the\@ltok@citefirst}%
682 \@law@conetopsetup%
683 \the\@ltok@conetop%

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.

684 \the\@ltok@citepage\the\@ltok@ptop%

A special use of \, is defined before we expand the optional argument stuff.

685 {\def\,{,}\@law@barkill%
686 \expandafter\the\@ltok@argtwo%
687 \relax}%

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.

688 \xdef\@law@temp{%
689  \the\@ltok@ptoctwo%
690  \noexpand\@law@barinfull%
691  \the\@ltok@citelast}%
692 \xdef\@law@temptwo{%
693  \the\@ltok@ptoctwo%
694  \noexpand\@law@barinfull%
695  \the\@ltok@usercitelast}%
696 \ifx\@law@temp\@law@temptwo%
697 \else%
698  {\@law@temp}%
699  \gdef\@law@temp{}%
700 \fi%
701  \@law@shiftparas%
702 \endgroup}%
\@law@shortprint
703 \def\@law@shortprint{%
704 % If {\sc Camel} sees more than one pinpoint page or section,
705 % the bridges preceding
706 % the page references must be set to their plural form.
707 % This change applies to both long and short form citations.
708 % It has to be cloned in each, however, because the decision has
709 % to be taken with respect to each cite in a string of parallels.
710 %    \begin{macrocode}
711 \begingroup%
712 \@law@fetchparas%
713 \@law@tidybridges%

The actual recursive printing works.

714  \global\ltokspecialface=\@ltok@citefirstoptionface%
715  {\the\@ltok@citefirstmainface%
716  \@law@barinshort\the\@ltok@citefirst}%

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!!!!

717  \@law@conetopsetup%
718  \the\@ltok@conetop%
719  \ifcat$\the\@ltok@argtwo$%
720  \the\@ltok@citepage%
721  \else%
722  {\@law@barkill\the\@ltok@argtwo}%
723  \fi%
724  \@law@shiftparas%
725 \endgroup}%

Print format subroutines

\@law@casepreformat This is empty; no special preparations are necessary for the printing of a case citation.

726 \gdef\@law@casepreformat{}%

\@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.

727 \gdef\@law@statutepreformat{%
728 \if@law@statuteverbose%
729 \else%
730 \ifcat$\the\@ltok@citefirst$%
731 \else%
732 \global\@ltok@name{}%
733 \global\@ltok@ttocone{}%
734 \fi%
735 \fi%

736 }%

\@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.

737 \gdef\@law@articlepreformat{%
738 \ifcat$\the\@ltok@author$%
739 \else%
740 {\@law@clean\@ltok@author\@law@authortracing%
741 \expandafter\expandafter\expandafter\if\expandafter%
742 \csname\@law@authortracing\endcsname2%
743 \else%
744 \global\@ltok@atot{}\global\@ltok@name{}%
745 \fi}\fi}%

\@law@bookpreformat This provides the same treatment given to articles.

746 \gdef\@law@bookpreformat{%
747 \ifcat$\the\@ltok@author$%
748 \else%
749 {\@law@clean\@ltok@author\@law@authortracing%
750 \expandafter\expandafter\expandafter\if\expandafter%
751 \csname\@law@authortracing\endcsname2%
752 \else%
753 \global\@ltok@atot{}\global\@ltok@name{}%
754 \fi}\fi}%

755 ⟨/lawcitestyle⟩

2.3 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.

2.3.1 Books

The styles used for citing books and book-like things follow.

756 ⟨∗lawcite⟩

757 \ProvidesFile{law.cit}[1994/12/07]
758 \newcitestyle{book}%
759 {srsrrrB}
760 {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]}

761 %

762 \newcitestyle{booklet}%
763 {riririB}
764 {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]}

765 %

766 \newcitestyle{techreport}%
767 {riririB}
768 {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]}

769 %

770 \newcitestyle{mastersthesis}%
771 {riririB}
772 {[a],\ [t][c]\ [p](pl)\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]}

2.3.2 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 L^{A}TEX and BibTEX.

773 \newcitestyle{article}%
774 {rsirsrA}
775 {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\
776 at~[xrf]}
777 \newcitestyle{incollection}%
778 {rsirsrA}
779 {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\
780 at~[xrf]}
781 \newcitestyle{inbook}%

782 {srirsrA}
783 {[a],\ [t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\
784 at~[xrf]}

2.3.3 Cases

There are several styles for cases; we pretty much need a separate style for each jurisdiction.

785 \newcitestyle{case}%
786 {rrirrsC}
787 {[a][t],\ [c]\ [p],\ (pl),\ [rp]\ [e]:[id]\ at~(pl)\ at~[xrf]}

2.3.4 Statutes

There are several of these. More may need to be added on an ad hoc basis.

788 \newcitestyle{statute}%
789 {rrrsrsS}
790 {[a][t],\ [c]\ \S~[p](pl)\ \S\S~[rp]\ [e]:[id]\ \S~(pl)\
791 \S\S~[xrf]}

792 %

793 \newcitestyle{jstatute}%
794 {rrrsrsS}
795 {[a][t][c]\ \S~[p](pl)\ \S\S~[rp]\ [e]:[id]\ \S~(pl)\
796 \S\S~[xrf]}

797 ⟨/lawcite⟩

3 Extraction utilities

3.1 The Driver

Here is a simple driver for extracting the files in the package.

798 ⟨∗installer⟩

799 \def\batchfile{law.ins}
800 \input docstrip.tex
801 \preamble

802

803 Copyright (C) 1992--97 Frank Bennett, Jr.
804 All rights reserved.

805

806 This file is part of the Law module for the Camel package.
807 \endpreamble

808

809 \def\batchfile{camel.dst}      % ignored in distribution
810 \input docstrip.tex              % ignored in distribution

811

812 \keepsilent

813

814 \preamble
815 This file is part of the Law module of the Camel package.
816 ---------------------------------------------------------
817 This is a generated file.
818 IMPORTANT NOTICE:

820 You are allowed to change this file, subject to the following
821 conditions.  Under any circumstances, new macro definitions
822 should not be added to this file.  You are welcome to modify
823 the macro definitions contained in this file for your own
824 use.  If you pass a copy of the modified version to someone
825 else, you should (a) let me know about the change on
826 fb@soas.ac.uk, and (b) put a note of the changes and of your
827 own contact details in the file.  Furthermore, you must
828 acknowledge Camel and its author(s) in the new file (if it
829 is distributed to others), and you must attach these same
830 conditions to the new file.

831

832 You are not allowed to distribute this file alone.  You are not
833 allowed to take money for the distribution or use of this file
834 (or a changed version) except for a nominal charge for copying
835 etc.

836

837 You are allowed to distribute this file under the condition that
838 it is distributed with all of its contents, intact.

839

840 For error reports, or offers to help make this a more powerful,
841 friendlier, and better package, please contact me on
842 `fb' at soas.ac.uk

843

844 \endpreamble

845 846

847 \generate{\file{law.cst} {\from{law.dtx}{lawcitestyle}}
848  \file{law.cit} {\from{law.dtx}{lawcite}}}

849 850

851 \postamble
852 \endpostamble

853

854 ⟨installer⟩% Change eng to jse below for JBibTeX support

855

856 \generate{\file{law.bst} {\from{camel.dtx}{bstheader,eng}
857  \from{law.dtx}{bstheader,eng}
858  \from{camel.dtx}{bstlibrary,eng}
859  \from{law.dtx}{bstfunctions,eng}
860  \from{camel.dtx}{bsttrailer,eng}}}

861

862 \keepsilent

863 864

865 \ifToplevel{
866 \Msg{***********************************************************}
867 \Msg{*}
868 \Msg{* To finish the installation you have to move the following}
869 \Msg{* file into a directory searched by TeX:}
870 \Msg{*}
871 \Msg{* \space\space law.cst}
872 \Msg{* \space\space law.cit}

873 \Msg{*}
874 \Msg{* You should also move the following file into a directory}
875 \Msg{* searched for style files by BibTeX:}
876 \Msg{*}
877 \Msg{* \space\space law.bst}
878 \Msg{*}
879 \Msg{* Other style modules can be found on CTAN in the `styles'}
880 \Msg{* subdirectory below Camel itself.}
881 \Msg{*}
882 \Msg{***********************************************************}

883 } 884 ⟨/installer⟩

Index

Numbers written in italic refer to the page where the corresponding entry is described, the ones underlined to the code line of the definition, the rest to the code lines where the entry is used.

Symbols

\@ifnextchar . . 583, 586
\@law@argtwolist . . 553
\@law@articlepreformat

. . . . . . . . . . . \underline{737}

\@law@authortracing

. 740, 742, 749, 751

\@law@barinfull 564,

567, 681, 690, 694

\@law@barinshort . .

. 599, 602, 626, 716

\@law@barkill . . . . .

. 589, 621, 685, 722

\@law@bookpreformat  \underline{746}
\@law@case . . . . . . . 604
\@law@casepreformat  \underline{726}
\@law@clean . . . 740, 749
\@law@conetopsetup .

. . . . . . . . 682, 717

\@law@fetchparas . .

…. 590, 670, 712

\@law@firstslash . .

…. 557, 559, 560

\@law@gobble . . 583, 586
\@law@longcitefalse 633
\@law@longcitetrue . 554
\@law@longprint . . .

. 636, 641, 648, \underline{668}

\@law@longrecurse .

. . . . . . . . 568, \underline{635}

\@law@nomatch . . . . . 550
\@law@pincut . . . . . . 657
\@law@print . . . . . . . 552

                          \@law@secondslash .

. . . . . . . . 557, 559

                          \@law@shiftparas . .

…. 591, 701, 724

                          \@law@shortprint . .

. 615, 658, 665, \underline{703}

                          \@law@shortrecurse .

…. 592, 616, 652

                          \@law@statute . 607, 624
                          \@law@statutepreformat

. . . . . . . . . . . \underline{727}

                          \@law@temp 571, 573,

603, 604, 607, 623, 624, 651, 688, 696, 698, 699

                          \@law@temptwo . . . . .

. 572, 573, 692, 696

                          \@law@tidybridges .

. . . . . . . . 671, 713

                          \@law@wordlist . . . . 529
                          \@ltok@argtwo . . . . .

…. 553, 585, 589, 621, 657, 672, 686, 719, 722

                          \@ltok@atbridge . . .

…. 589, 619, 674

                          \@ltok@atot . . . . . . .

. 564, 599, 744, 753

                          \@ltok@author . . . . .

…. 564, 599, 738, 740, 747, 749

                          \@ltok@authormainface

. . . . . . . . 563, 597

                                                   \@ltok@authoroptionface

. . . . . . . . 562, 596

                                                   \@ltok@citefirst . .

. 625, 681, 716, 730

                                                   \@ltok@citefirstmainface

. . . . . . . . 680, 715

                                                   \@ltok@citefirstoptionface

. . . . . . . . 679, 714

                                                   \@ltok@citelast 626, 691
                                                   \@ltok@citepage . . .

…. 675, 684, 720

                                                   \@ltok@citetype . . .

…. 578, 603, 623

                                                   \@ltok@conetop . . . .

…. 676, 683, 718

                                                   \@ltok@infoot . . . . . 572
                                                   \@ltok@name . . . 567,

602, 732, 744, 753

                                                   \@ltok@nickname . . . 634
                                                   \@ltok@pageorfootno

…. 570, 575, 618

                                                   \@ltok@ptoctwo . . . .

…. 626, 689, 693

                                                   \@ltok@ptop . . . 673, 684
                                                   \@ltok@titlemainface

. . . . . . . . 566, 601

                                                   \@ltok@titleoptionface

. . . . . . . . 565, 600

                                                   \@ltok@ttocone . . . .

…. 567, 614, 733

                                                   \@ltok@usercitelast 695
                                                   \@ltok@whereitsat .

…. 571, 574, 618

                                                   \@nosuprafalse . . . . 610

\@nosupratrue . 605, 608

A

\addtocounter . . . . .

. 639, 645, 655, 662 article (environment) 4

B

\batchfile . . . 799, 809

book (environment) … 6 \bridges . . 6, 12, 16,

59, 64, 128, 133, 366

build.bridges (envi-

ronment) . . . . . 2

C

\c@law@footnote . . . 570
\c@law@paracounter .

. 640, 646, 656, 663

\c@law@paranormal .

. . . . . . . . 646, 663

\c@law@parapin . . . .

. 637, 640, 653, 656

D

default.type (environ-

ment) . . . . . . . 16

E

\endpostamble . . . . . 852
\endpreamble . . 807, 844

environments:

article . . . . . . . . 4 book . . . . . . . . . . . 6

build.bridges . . . 2
default.type . . . 16
get.a.kinda.sort.key

. . . . . . . . . . . . . 3 inbook . . . . . . . . 10

incollection . . . . 9

   j.format.division

. . . . . . . . . . . . . 3

   j.statute . . . . . . 14
   s.statute . . . . . . 15

statute . . . . . . . 15

   unpublished . . . . 15

F

\file . . . . . 847, 848, 856 \from . 847, 848, 856–860

\frompinlist . . . . . . 657

G

\generate …. 847, 856

get.a.kinda.sort.key

(environment) . . 3

I

\Id . . . . . . . . . . . . . 581

\if@justabove . . . . . 579
\if@l@quiteexact . . 582
\if@law@firstuseofcite

. . . . . . . . . . . 554

\if@law@longcite . . 561
\if@law@printcite . 555
\if@law@statuteverbose

. . . . . . . . . . . 728

\if@nosupra . . . . . . . 613
\ifToplevel . . . . . . . 865

inbook (environment) 10

incollection (environ-

ment) . . . . . . . . 9

J

j.format.division

(environment) . . 3

j.statute (environ-

ment) . . . . . . . 14

K

                          \keepsilent . . . 812, 862

L \lexibib … 71, 140,

200, 245, 296, 306, 331, 371, 454, 476, 488, 510

\LexiTeX . . . . . 217, 275

                          \ltokspecialface . .

. 558, 562, 565, 596, 600, 679, 714

M \message . . . . . . . . . 633 \Msg . . . . . . . . . 866–882

N

                          \newcitestyle . . . . .

. 758, 762, 766, 770, 773, 777, 781, 785, 788, 793

P

                          \postamble . . . . . . . 851

\preamble …. 801, 814

                          \ProvidesFile . 526, 757

S

                          s.statute (environ-

ment) . . . . . . . 15 statute (environment) 15 \supra . . . . . . . . . . . 618

U

                          unpublished (environ-

ment) . . . . . . . 15

V \volno . . . . . . . 144, 633