Home
User's Guide to the Camel Citator
Contents
1. 79 tracingmacros type last char environment 62 usepackage volno so that the short scan stops at a character rather than a non integer Simpler and more ro DUSb s mad E EN 71 1 0m General function 104 type last char added to cope hence exceptionally requiring a with titles ending in a numeral comma in the Blue Book style 63 105
2. 58 environments ENTRY 3 i ge A as potas Ode 57 FUNCTIONS 59 INTEGERS oia eye s 59 STRINGS ia a ys Ae Rs 58 and eee oa edt Ce oe m Are 59 change letter case 67 character length 60 Check A Rede ut uses 63 either or nowarning 64 eithe f or ei i c iw 63 empty to null vemm 63 entry integers 58 entry strings 58 extract date TT field names 58 field tag no combine 66 fillout a year 74 first in second 60 format date 80 format jdate 79 format month name 75 format month year 73 format names 71 format pages 70 gather chars 68 get character type 62 ifthree ifthree might 66 iftwo might iftwo 65 might ifone must 65 must must must 65 n dashify i004 656 2 cee 04d 68 MO Gr A a ad 59 Of Wels saw lion eS 59 parse month 74 tie or space connect 70 times ten 59 topup date ooo o 79 type last char 62 Nerrhelp ise te ee Wee eru 1338 errmessage o o ooooo oo 1341 etalchar 2206 2219 2466 Nexcladm xeu Ec 60 613 extract date environment TT F if justabove oooooo 11 if l quiteexact 11 if law firstuseofcite 11 if law in
3. 4 bibout 468 533 534 ifnch 128 374 camel error ifnchcareful 367 368 180 186 224 495 509 519 1092 ifmextchar 313 citationsubject 1142 1144 360 424 787 791 798 970 1142 currentlabel 415 ifnextcharcareful 361 364 demo end 2798 ifoverword 119 119 376 385 demo finish 2797 2799 ifowd 122 123 129 demo listitem 2795 2796 justabovefalse 1057 1065 1075 demo nomatch 2799 2820 2821 2827 justabovetrue 1071 1077 demo optionitem 2796 2801 2828 l quiteexactfalse 1072 1082 97 1 quiteexacttrue 1080 latex error 2800 latex warning 461 law abandonbibformatsearch 168 172 law abandoncitesubjectcheck ls 208 213 law abandonheadersearch 156 161 law abandonsubjectsearch 191 196 law addargument 755 7060 769 773 774 776 780 782 816 940 945 law addpargument 797 833 865 law addptoken 833 871 law addtoken 762 767 770 772 775 803 805 821 933 938 947 961 law alfinish 279 280 law alitem 278 282 286 289 295 298 305 307 314 317 324 law allist 285 285 324 law allistitem 277 278 law alnomatch 280 280 281 303 314 320 32
4. 250 1 message lowcase 251 f global law longcitetrue 252 h global law intextcitetrue 253 b global law bibentrytrue global law longcitetrue 254 Z gdef law parsemacro 1 255 let law parse law parsecomma 256 s if law requiresubjects 257 gdef law parsemacro 1 gdef law citesubject 1 258 let law parse law parsecommay 259 else 260 def law parsemacro 1 261 Mid 262 v gdef law parsemacro 1 gdef volno 1 263 let law parse law parsecomma 264 let law parse law parsebumequal 265 NC HO 266 end let law nomatch relax let law parse relax 267 law nomatch This is fun Explanations will be added later 268 def law parsecomma 1 260 law parsemacro 1 let law parse law parseplain 270 parse 271 def law parsebumequal 1 let law parse law parseplain parse 272 def law parseplain 1 273 let law nomatch law plnomatch 274 def law optionitem 1 let law plone law sourceoptionlist parse Now comes the fun bit Control is passed back and forth between law parse 25 law alone law alnomatch law allist law get ul law getcarat law getbar and parse with the behaviour of those functions altering depending on what is chewed up into them Amazingly enough it works Whatta concept 275 def parse law parse 276 let law parse law parseplain A cop
5. 395 def lexicite i 2 3 396 ltok a expandafter law citestack 397 ltok b realcite 1 2 3 398 ltok c expandafter SBSword 399 edef law citestack the ltok a the ltok b the 1ltok c We need a flag to tell us whether we are in a footnote This allows us to prevent footnote forcing if we re already in a footnote IATEX itself should probably take care of this but for now we need to give it a helping hand by reinvoking the critical command with Apologies to the IXTEX3 team and everything but I really truly do need these hooks Some thoughts on the tracking of previous citations This is hardly transparent and even I the author have trouble following it Something for tidying up someday Currentcite is set only at the top of a footnote The idea apparently is that we need to remember the last cite in the last footnote always Problems to watch here are a what happens for the very first footnote and b what happens in the main text There should probably be complete isolation of these context records for main text references and footnote references 400 long def footnotetext 1 insert footins 401 law infoottrue 4 Hooks for citation manager 402 NMifnumNtheNcOcitesinfoot 1Nrelax 403 global let law lastcite law currentcite 29 404 else 405 gdef law lastcite dummy 406 Mfi 407 global setcounter citesinfoot 0 End of hooks 408 reset font footnotesize 409
6. 120 p global law usepinpointstrue 121 P gdef law bibformat global law usepagestrue 122 o gdef law parsemacro 1 gdef law outputext 1 123 let law parse law slparsecomma 124 i gdef Claw parsemacro 1 125 ifcat 1 else 126 global law maketabletrue 127 expandafter gdef csname law temp inputext endcsname 1 128 Mr 129 let law parse law slparsecomma 130 let law parse law slparsebumequal 131 43 132 end let law nomatch relax let law parse relax 133 law nomatch We switch between three possible forms for the law parse macro and we also need to have a special way of ending when the delimiter is found in the list 134 def law slparsecomma 1 135 law parsemacro 1 let law parse law slparseplainy 136 parse 137 def law slparsebumequal 1 let law parse law slparseplain parse 138 def law slparseplain 1 139 let law nomatch law slnomatch 141 def citationsubject 142 ifnextchar citationsubject citationsubject 1 143 catcode 13 144 gdef citationsubject 1 2 3 145 global let law level relax global law usepinpointsfalse global law maketablefalsey global law requiresubjectstrue gdef law bibformat 150 def law temp 2 151 let law parse law slparseplain law parse 1 end 152 expandafter gdef csname write one 2 entry endcsname 153 if law m
7. 2316 1 nameptr 2317 uL 2318 s num names numnames 2319 numnames namesleft 2320 namesleft 0 gt 2321 nameptr 1 gt 2322 x 2323 gt skip 2324 if 2325 s nameptr vv H114 ff t jj format name t 2326 nameptr numnames t others and 2327 et al 2328 t sortify 2329 if 2330 nameptr 1 nameptr 2331 namesleft 1 namesleft 2332 F 86 2333 while 2334 2335 2336 FUNCTION sort format title 2337 t 2338 A 42 2339 An 3 2340 The 4 t chop word 2341 chop word 2342 chop word 2343 sortify 2344 1 global max substring 2345 2346 2347 FUNCTION author sort 2348 author empty 2349 key empty 2350 to sort need author or key in cite warning 2351 a 2352 2353 key sortify 2354 if 2355 2356 author sort format names 2357 if 2358 2359 2360 FUNCTION case sort 2361 4 title empty 2362 key empty 2363 to sort need title or key in cite warning 2364 e 2365 2366 key sortify 2367 if 2368 Y 2369 title sort format title 2370 if 2371 2372 2373 FUNCTION author editor sort 2374 author empty 2375 editor empty 2376 key empty 2377 to sort need author editor or key in cite warning 2378 M 2379 2380 key sortify 2381 if 2382 87 2383 editor sort format names 2384 if 2385
8. 700 swap duplicate empty 701 pop pop 702 swap duplicate short 703 pop 704 as i 705 s 706 s 1 1 substring 707 not 708 s 1 1 substring 709 s 2 global max substring s 710 s 1 1 substring 711 duplicate 712 pop 713 gt skip 714 if 715 716 while 717 h 718 full 719 pages n dashify 720 invalid switch fed to the format pages function 721 warning 722 Jif 723 Jif 724 Jif 725 Names The code for parsing and formatting names is extremely economical thanks to the powerful built in functions that BIBIEX supplies for this purpose This is based on Oren Patashnik s original function of the same name His comment was as follows The format names function formats the argument which should be in BiBTEXname format into First Von Last Junior separated by commas and with an and before the last but ending with et al ifthe last of multiple authors is others This function s argument should always contain at least one name The format authors function returns the result of format names author if the author is present or else it returns the null string This function is used to format any name field that is thrown at it It is based 71 on the 1988 release but with modifications to permit toggling since the Blue Book requires different author formats for different types of material The toggling strategy should
9. ltok citepage 12 99 656 863 895 955 985 1026 1031 1042 1048 ltok citetype 92 682 683 693 775 897 953 ltok conetop 18 107 660 734 855 914 933 1032 1036 1043 ltok conetopplural 18 108 735 856 913 934 1036 ltok d 715 724 733 ltok e 716 725 734 ltok f 717 726 736 100 ltok g o 718 727 135 ltok h 719 728 737 ltok hereinafter Videt su ee fa 102 772 900 950 974 MOltok i cir 720 729 738 ltok infoot 16 926 ltok j 721 730 739 ltok name 12 97 655 893 957 984 1012 1047 ltok nickname 12 95 207 562 572 583 593 891 959 1184 1185 1194 1195 ltok onpage 17 18 929 ltok pageorfootno NE 12 101 899 927 930 951 ltok pagesstring 84 1174 1188 ltok plistmacro 113 887 888 961 ltok proofauthor 27 28 ltok proofcitelast 19 20 ltok proofciteone 23 24 ltok proofpage 21 22 ltok prooftitle 25 26 ltok ptoctwo 13 110 737 858 911 936 1019 1023 ltok ptop 13 109 662 736 857 912 935 1027 1030 1040 1tok stylename 12 94 903 905 947 ltok titlemainface 12 87 652 674 675 689 ltok titleoptionface 12 88 653 676 677 690 ltok
10. 158 def law temptwo 1 159 ifx law temp law temptwo 160 let law headersearchend relaxy 161 let law abandonheadersearch 162 37 163 fi 164 def lawOgetsubjectheader 1 22 law confirmsubject law maybeaddcitesubject 165 def law temp 1 166 let law headersearch law subjectlist law headersearchend 167 let law bibformatsearchend relax 168 def law abandonbibformatsearch 1 law bibformatsearchend 169 def Glaw bibformatsearch 1 2 3 4 7 170 def law temptwo 1 171 ifx law temp law temptwo 172 let law abandonbibformatsearch 173 OMM 174 fi 175 NdefNOlawOgetbibformatiti 176 MdefXClawOtemp1tt1 177 let law bibformatsearch law subjectlist law bibformatsearchend This parser checks whether a given subject exists in the list of declared subjects It takes no action only issues a warning 178 def law subjectsearchend 179 ifx law citesubject empty 180 camel error No subject declared J 181 After declaring a subject or subjects using 182 string citationsubject J 183 you have neglected to give a subject using the s option J 184 for one of your string source space commands ehc 185 Nelse 186 camel error Undeclared subject NVOlawOcitesubject J 187 An undeclared subject has been given as an argument to 188 a string source space command J You must first 7 189 declare subjects using string citationsubject ehc
11. 2386 author sort format names 2387 if 2388 2389 2390 FUNCTION author organization sort 2391 author empty 2392 organization empty 2393 key empty 2394 to sort need author organization or key in cite warning 2395 me 2396 2397 key sortify 2398 if 2399 2400 The 4 organization chop word sortify 2401 if 2402 2403 author sort format names 2404 if 2405 2406 2407 FUNCTION feditor organization sort 2408 editor empty 2409 organization empty 24 key empty 24 to sort need editor organization or key in cite warning 24 my 24 24 key sortify 24 if 24 24 The 4 organization chop word sortify 24 if 24 2420 editor sort format names 2421 if 2422 2423 2424 FUNCTION presort 2425 type book 2426 type inbook o o 100 PR Q9 tn 5o 2427 or 2428 author editor sort 2429 type proceedings 2430 editor organization sort 2431 type manual 2432 author organization sort 88 2433 type case 2434 gt case sort 2435 type 2 global max substring statute 2436 case sort 2437 author sort 2438 if 2439 244 if 244 244 if 244 244 244 244 244 244 244 2450 2451 2452 2453 title empty to null 2454 sort format title 2455 2456 1 entry max substring 2457 sort key 2458 2459 2460 ITERATE presort 24
12. 88 NnewtoksVOltokOtitleoptionface 89 NnewtoksNOltokOcitefirstmainface 90 NnewtoksNOl1tokOcitefirstoptionface 91 newtoks ltokspecialface One token register is needed to store the name of the current cite type as declared using Nnewcitestyleinthe cit file With this string in hand all of the typeface and punctuation bridge information can be recovered for that type of citation 92 newtoks ltok citetype Tokens to store info on whether a cite is in a footnote or in the main text and the name of the cite style in case we need it 93 newtoks ltok whereitsat 94 newtoks 1tok stylename Ho hum Now we re going to need a bunch of token registers to stash the informa tion for a cite Token registers have to be used in processing in order to provide expansion control 95 newtoks 1tok nickname 96 newtoks 1tok author 97 NnewtoksNOltokOname 19 ifoverword 98 newtoks ltok citefirst 99 newtoks 1tok citepage 100 newtoks ltok citelast 101 newtoks 1tok pageorfootno 102 newtoks ltok hereinafter 103 newtoks 1tok bigsourcecite 104 newtoks 1tok bigsourcepage We also need token registers for citation bridge information 105 newtoks 1ltok atot 106 newtoks 1tok ttocone 107 newtoks 1tok conetop 108 newtoks 1tok conetopplural 109 newtoks 1tok ptop 110 newtoks 1tok ptoctwo 111 newtoks 1tok atbridge 112 newtoks ltok atbridgeplural 113 newtoks ltok plistmacro A counter is required to k
13. This macro is defined and kept on the shelf as a definition of that checks through the list of paired aliases and associated text If it finds a match it gives the text one level of expansion to fix the current definition of _ and This allows one entry to serve both between citations and at the start of a citation string In addition to these macros a law wordlist macro must be defined in the cst file used with CAMEL 325 def law scanlist 1 2 long def law temp 1 326 1ltok a 2 327 ifx law temp overword xdef SBSword noexpand em the ltok a 328 let law finish fi 329 def lawQwlnomat ch message J J 330 There is an unregistered inter citation word overword on 331 line no the inputlineno See the LexiTeX documentation 332 for more information Please email fb soas ac uk if 333 you want a word added to the inter citation list This macro works with the ifoverword macro it checks the contents of the overword macro defined during the leap to see if it corresponds to anything in a list of aliases The alias list could be defined as a set of prefixed macros to speed things up or as a single list macro to conserve string space I have adopted the latter strategy If anyone feels strongly that speed is more important or that somehow the integrity of TEX demands that macros be used it s not much of a job to change things be my guest 27 source 334 catcode _ active
14. ifowd ifx reserved c sptoken 124 gdef preoverwordspace 20 125 let reserved d Oxifowdy 126 else long def reserved d 1 long def overword 1 Q ifowd 127 fi reserved d 128 def ifowd futurelet reserved c ifnch 129 def xifowd expandafter def futurelet reserved c ifowd 3 1 9 If initializations We need a toggle so we can turn the print routine on and off this is necessary for list inputting and for making phantom references to sources in order to handle weird citation forms 130 newif if law usepages 131 newif if law table 132 newif if law usepinpoints 133 newif if law maketable 134 newif if law printcite The next one is used by the list input environment 135 newif if law listinputting 136 newif if law bibentry We also need to know whether a citation is being used for the first time In some styles the first citation is treated specially 137 newif if law firstuseofcite The next if will be used to toggle the print routine between long and short citation forms 138 newif if law longcite Similar to the above is the following toggle used to force a long citation used in the text This should prevent the creation of footnotes if they are being forced 139 newif if law intextcite This will tell us whether we are in a footnote or not 140 newif if law infoot The next if will let us know if the same work was cited immediately before the current cite and if so whether we sh
15. law pinlop law argtwolist to 1 831 def law pinlop 1 to 2 expandafter law pinlopoff 1 law pinlopoff 1 2 7 832 long def law pinlopoff law pingroup law pinstart 1 law pinend 2 law pinlopoff 3 4 global The following nine macros are used to manipulate a list macro containing parallel citation details and sets of token registers into which the list is extracted 833 def law fetchparas 834 ifx law tempplistmacro empty 835 gdef law tempplist O0 OO OO HO 836 Nelse 837 law pcut law tempplist fromlist 838 Mfi 839 expandafter law extractparas law tempplist 840 def law extractparas 1 2 3 4 5 6 7 8 9 7 841 ifcat the ltok useratbridge 2 else 3 1tok userconetop 1 4 1ltok userconetopplural 2 7 5 ltok userptop 3 846 ltok useratbridge 4 7 ltok useratbridgeplural 5 8 Mif 9 global ltok usercitefirst 6 850 global ltok usercitepage 7 851 global ltok usercitelast 8 852 def law shiftparas 853 ifcat the ltok useratbridge 854 else 855 global 1tok conetop ltok userconetop 856 global 1tok conetopplural ltok userconetopplural 857 global 1tok ptop ltok userptop 858 global 1tok ptoctwo ltok userptoctwo 859 global ltok atbridge ltok useratbridge 860 global 1tok atbridgeplural ltok useratbridgeplural 861 Mfi 862 global ltok citefirst ltok usercitefirst 863 global ltok citepage ltok usercitepage 864 global lto
16. law showcomment 567 567 574 law showfacts 588 588 595 law showholding 557 557 564 law showquestions 577 578 585 law slnomatch 1092 1092 1139 law slone 1088 1140 law slparsebumequal 1130 1137 law slparsecomma 1123 1129 1134 law slparseplain 1135 1137 1138 1151 law sourceoptionlist 246 246 274 1117 law specialbridgestrue 915 law statute 601 law statuteverbosefalse 35 law statuteverbosetrue 34 law subjectlist 166 177 199 474 476 479 1199 1214 law subjectoptionlist 1117 1140 law subjectsearch 192 199 law subjectsearchend 178 191 195 199 1218 law tablefalse law tabletrue law temp 165 312 537 564 595 645 743 744 749 786 789 796 800 823 824 873 874 1017 1018 1022 1078 1079 1127 1150 1181 1187 1191 1196 1202 1206 1208 1212 1249 1250 1281 1282 549 583 553 585 law templistmacro 598 751 806 817 821 827 885 962 law tempplist 835 837 839 law tempplistmacro 599 752 783 804 834 867 871 877 888 law tempthree 338 341 343 347 law temptwo 158 159 170 201 203 210 540 541 544 552 553 563 564 584 585 594 595 1021 1022 1047 1050 1054 1062 1182 1187 1192 1196 1249 1250 1281 1282 law tidybridges 989 1007 law titlemainfacetemp 652 law titl
17. 190 fi 191 def law abandonsubjectsearch 1 law subjectsearchend 192 def law subjectsearch 1 2 3 4 193 def law temptwo 1 7 194 NifxlClawlcitesubjectillawOtemptuo 195 MetNOlawGsubjectsearchendNrelax 196 MetM 1ClawCabandonsubjectsearch 197 Mil 198 def law confirmsubject 199 let law subjectsearch law subjectlist law subjectsearchend This macro adds the nickname of the current citation to the list of nicknames under the current citation subject It will only do this if the nickname does not already exist in the list The effect is to keep the lists in citation order Note that a citation may be listed under more than one citation subject This may be useful so it is not prevented 200 def law citesubjectcheckend 201 expandafter let expandafter law temptwoh 202 csname law law citesubject Ccitelistlendcsname 203 ltok a expandafter law temptwo 204 expandafter xdef 23 law plone law end law finish law plnomatch 205 csname law law citesubject citelist endcsname 206 the 1tok a noexpand 207 noexpand the ltok nickname noexpand 208 def law abandoncitesubjectcheck 1 law citesubjectcheckend 209 def law citesubjectcheck 1 7 0 def law temptwo 1 1 ifx law nickname law temptwo 2 let law citesubjectcheckend relax 3 let law abandoncitesubjectchecky 4 Mil 5 def law maybeaddcitesubject 6 let law citesubjectch
18. 532 both items in an either or pair are non empty in cite 533 warning 534 I m using only ONE of these items the second passed by the function 535 warning 536 pop 537 Jif 538 Jif 539 either or nowarning This does the same thing as either or but does not issue a warning if both items exist As with that function the second item pushed is preferred Expected A string A string Left A single string Toggles 540 FUNCTION either or nowarning 541 duplicate empty 542 pop duplicate empty 543 empty to null 544 gt skip 545 if 546 547 swap pop 548 if 549 4 3 3 Output In the interest of transparency I have tried to make the output functions as simple to use and as flexible in their operation as possible Every output routine expects to find three items on the stack and the name of each routine describes how it 64 will react to what it finds there To keep things tidy the empty field marker is replaced with the null string only by the output routines The names are sometimes coincidentally comical but I hope informative as well must must must The simplest output routine is the must must must routine it simply cate nates the three strings replacing any empty field markers it finds with the null string Expected A string A string A string Left Toggles 1 none 1550 FUNCTION must must must 1551 empty to null t
19. Left lt A string toggle showing the character type of the first homogenous substring in the string for parsing A string of characters from the front of the given string which are letters or numbers only The remainder of the string 632 FUNCTION gather chars 633 1 634 forward 635 swap duplicate character length a 636 toe 637 duplicate 638 t 1 1 substring swap get character type 639 other 640 t empty not and 641 t 42 global max substring t duplicate 642 while 643 duplicate t 1 1 substring swap get character type 644 t 1 1 substring swap 645 swap duplicate u 646 t 2 global max substring t 647 ur 648 swap 649 u u 650 u 1 1 substring swap 651 u 1 1 substring 652 u 42 global max substring u 653 t 1 1 substring swap get character type 654 t 1 1 substring swap 655 duplicate u 656 t 2 global max substring t 657 swap pop 658 if 659 Jwhile 660 swap pop t swap u 661 Y 662 swap duplicate character length a 663 tie 664 duplicate 665 t a 1 substring swap get character type 666 other 667 t empty not and 668 a 1 a 669 t 1 a substring t 670 while 671 duplicate t a 1 substring swap get character type 69 tie or space connect format pages 672 t a 1 substring swap 673 swap duplicate u 674 a 1 a 6
20. law templistmacro 963 Xfi 964 3 2 4 Calling citation nicknames The nickname macro defined by this routine 1lnick nickname is immensely more compact than in the first release law argscheck eventually leads to law setup after a series of checks for optional arguments For the longest time I used a Nthe statement for the contents of law argscheck noexpand works just as well and is much simpler to arrange 965 def law makecitenick 1 7 966 expandafter xdef csname lnick 1 endcsname 7 967 noexpand law unstasheverything noexpand 1 noexpand 968 noexpand law setup The following code will be used to kick off the existing Qnewcite routine when hereinafter style references come to be supported 969 hereinafters 970 def law newcitefirst ifnextchar catcode A 971 catcode 972 expandafter law newcitesecond law grabhereinafter 973 law newcite 974 def lawOgrabhereinafter 1 ltok hereinafter 1 975 hereinafters 3 2 5 Table writes and preliminary formatting Once the printing information has been stashed the lnick nickname macro can be used to extract and print it After extracting the information and storing it in token registers this looks forward to gather any pinpointing argument that has been appended to the macro in the text Once all the the necessary information has been collected the Glaw setup macro tidies up the formatting of the cite and writes it
21. mean dead easy Since the design goal of CAMEL is to make bibliography management as easy as fool proof and as robust as possible this cross lingual pun seems fitting iv e David Rhead David Rhead vme ccc nottingham ac uk A programmer s reference guide for drafting CAMEL styles is included in this manual Don t delay start coding today 1 Introduction This guide explains the use of the CAMEL Citator It covers all commands available in the style This should be the only user manual that you need to prepare a document for use with any CAMEL bibliography style The package provides eight commands listed in the table at the bottom of this page The opening commands may be combined in a variety of ways but a typical document heading might look like this documentclass article usepackage camel Ncitationsubject english Materials in English citationsubject german Materials in German begin document citationstyleflaw citationdata gorp slush fodder forcefootnotes You should be careful to decide on the subject classification if any that you wish to apply to your citations before you begin your writing With that in hand you can begin entering source commands into the document adjusting the style parameters at print time A detailed description of command usage follows Throughout this guide it is assumed that the reader has a general familiarity with BIBTEX and its use in preparing bibliographies with st
22. tocitelist7 774 law addargument tocitelist7 775 Law addtoken ltok citetype tocitelisty cite type 776 law addargument 8 tocitelist7 cite last part 777 law addargument 7 tocitelist cite page 778 law addargument 6 tocitelist7 cite first part 779 law addargument 5 tocitelist name of work 780 law addargument 4 tocitelist7 author 781 expandafter gdef csname law 2 lab endcsname 3 label 782 law addargument 2 tocitelist nickname 783 def law tempplistmacro 784 law paracheckone 2 The following three macros look ahead after the initial arguments to a cite dec laration have been digested but before the cite information has been stored to the list macro for a sign which signals parallel citation details If a sign is found a further check is made for a which signals a set of special bridges for the upcoming parallel citation Note the use of two signs in braces as the first argument to ifnextchar This is required because of the internal syntax of the ifnextchar macro 785 def law paracheckone 1 786 def law temp 1 787 ifnextchar 788 expandafter expandafter expandafter law parachecktwo 789 expandafter law temp gobble 7 790 newcite 1 791 def law parachecktwo 1 ifnextchar 792 law getpara 1 793 law getpara 1 The following add a single set of parallel citation details into a list macro used as a holding
23. 1 to the end of list macro law templistmacro This and the other list handlers are modelled on the examples in Knuth s TeXbook 378 This and the other macros in this set do their work on one list macro law templistmacro in order to avoid the need for lots of expandafters 816 def law addargument 1 tocitelist Z 817 law leftappendargument 1 to law templistmacro 818 long def law leftappendargument 1 to 2 ltok a 1 819 ltok b expandafter 2 820 xdef 2 the ltok a the ltok b This macro adds the contents of one token register to the temporary list macro 821 def law addtoken 1 tocitelist law leftappendtoken 1 to law templistmacro 822 long def law leftappendtoken 1 to 2 823 xdef law temp noexpand noexpand the 1 noexpand 824 1tok a expandafter law temp 825 ltok b expandafter 2 826 xdef 2 the ltok a the ltok b This macro cuts one token register item 1 from the end of list macro law templistmacro The lopoff portion is almost straight out of the TeXbook except that it stores the lopped element in a token register instead of a macro 15D KNUTH supra note 1 42 law addpargument law addptoken law pcut 827 def law cut 1 fromcitelist law lop law templistmacro to 1 828 def lLaw lop 1 to 2 expandafter law lopoff 1 law lopoff 1 2 829 long def law lopoff 1 2 law lopoff 3 4 global 4 1 gdef 3 2 830 def lLaw pincut 1 frompinlist
24. 1552 empty to null swap empty to null swap t 1553 1554 write 1555 Y might ifone must This output routine is heavily used for conditional output If the deepmost of the three stack items is an empty field marker the only the topmost item is written to the output file If this is not the case then the three items are written in order Expected A string A string A string Left Toggles 1 none 556 FUNCTION might ifone must 557 empty to null t 558 swap duplicate empty 559 pop pop t 560 swap empty to null t 561 if 562 write 563 iftwo might iftwo This function is typically used to output a formatted item in enclosing braces where the entire item and its braces should be suppressed if the item is empty 65 Expected A string A string A string Left Toggles 1 none 564 FUNCTION iftwo might iftwo 565 t 566 duplicate empty 567 pop pop 568 empty to null swap empty to null swap 569 t empty to null 570 write 571 if 572 Y ifthree ifthree might This outputs a pair of prefixes if the suffix to which they are to be attached exists Otherwise it outputs a null string Expected A string A string A string Left Toggles 573 FUNCTION must ifthree might 574 t r 575 duplicate empty 576 pop write 577 swap empty to null 578 swap empty to null 579 t write 580 if 581 F 4
25. 1957 1 All ER 371 10Cross references are complex to format but they work correctly Id In a competition for speed and accuracy between typists equipped with IATEX CAMEL and with WordPerfect who do you reckon would win run of ATEX Because CAMEL absorbs all citation information at the start of the document at the point of the citationdata or bibliographymanager commands there is no need for the third TEX run required in the standard IATEX setup You may however need additional runs of IXTEX to resolve other cross references in the document or to work out misspellings and other errors Producing tables When the o and i options are used for one or more declared citation sub jects those subjects will be excluded from the bibliography Instead CAMEL will write an external table file according to the specifications given in the citationsubject command Any such files must then be processed into properly formatted lists using makeindex before they will appear in the printed document On a UNIX or DOS system you would type the following for a table declared with the export extension atb and the input extension art makeindex s camel ist o file name art file name atb If the subject associated with this table is article the table can then be placed in the document for the next IXTEX run using the command e printcitationtablefarticle When the option p is used with the Ncitationsubject command and the i and o op
26. 2 3 7 45 ifcat 1 else 46 let law parse law parseplain law parse 1 end 47 M 48 if law requiresubjects 49 law confirmsubject 50 fik 51 global ltok argtwo 7 52 ifcat 3 else 53 let law parse law alparseplain law parse 3 54 Mfi 55 let law parse law clparseplain law parse 2 56 The law onerealcite macro writes the citation key on the aux file for onward use by BIBTEX and initiates citation expansion 57 def law onerealcite 1 58 ifundefined lnicko 1 59 expandafter def csname lnick 1 endcsname 60 small bf tt lt undefined 1 gt 61 latex warning 62 Citation 1 on page thepage space undefined 63 relax 64 NifOfilesw 65 immediate write auxout string citation 1 66 ifundef ined law managerouthook 67 relax 68 immediate write bibout law managerouthook 1 69 Mfi 70 global law firstuseofcitefalse 71 Ncsname lnick 1 endcsname 31 bibitem The bibitem subcommands are redefined since we don t need to export the nick bibliographymanager name a second time when using CAMEL 472 def lbibitem 1 item biblabel 1 hfil1 ignorespaces 473 def bibitem item ignorespaces This macro provides support for external bibliography managers If a known man ager is declared the key is written on an ephemeral file with the name camel bib If the manager is then set up to replace keys with va
27. 24 ltok proofciteone Source 25 newtoks ltok prooftitle 26 ltok prooftitle Title of work 27 newtoks 1tok proofauthor 28 ltok proofauthor Author s name 3 1 3 User selectable switches The Blue Book allows us to refer to statutes in a long form or a short form in subsequent references The long form consists of the name of the Act if any plus its source details and the section number The short form consists of the source details alone Pm all in favour of saving ink the default is for short form statute citations You can have long form subsequent cites by setting statuteverboseon at the top of your document If you need some other form let me know statutes are complex and rather than trying to do everything from the get go this really has to be demand led 29 global let law delim relax 30 global let law pingroup relax 31 global let law pinstart relax 32 global let law pinend relax 33 newif if law statuteverbose 34 def statuteverboseon law statuteverbosetrue 35 def statuteverboseoff law statuteverbosefalse 36 statuteverboseoff This fun little item is used to toggle the lexicite macros to create a footnote if none was typed literally into the text Great finger saver for shortie footnotes Conceived on a whim implementing this turned out to be non trivial I hope you find it useful 37 newif if law forcefootnotes 38 def forcefootnotes global law forcefootnotestrue 3 1 4 S
28. 266 269 271 275 275 276 299 321 446 453 455 1123 1129 1130 1132 1135 1137 1151 law parsebumequal 264 271 law parsecomma 255 258 263 268 268 1134 law parsefaces 668 686 law parselastcheck 268 1134 law parselastoption 693 705 law parsemacro 254 257 260 262 269 1122 1124 1135 law parseoneoption 687 692 695 law parseplain 268 269 271 272 276 446 1134 law pcut 833 837 877 law pincut 830 1004 law pinend 32 290 314 832 law pingroup 30 291 310 832 law pinlop 830 831 law pinlopoff 831 832 law pinstart 31 292 310 832 law plnomatch 224 224 273 law plone 219 219 274 law plop 877 878 law plopoff 878 879 law print 0 1006 law printauthorfalse 247 law printauthortrue 354 law printcitefalse 249 law printcitetrue 353 law printtitlefalse 248 law printtitletrue 355 law ptoptemp 662 law requiresubjectsfalse 1271 law requiresubjectstrue 1148 law rightappendpargument 867 868 law savecat 484 488 law scanlist 325 325 340 346 law secondslash 12 978 980 law setup 968 977 law shiftparas 852
29. This was designed by trial and error there may be a better way 149 def normcase def law lettercase 150 def lowcase def law lettercase 1 151 aftergroup normcase lowercase 1 152 normcase The CAMEL nickname macros are now kept out of the name space by executing them via csname endcsname and adding a prefix that makes the macro inac cessible by direct reference within the document This change was recommended by a user sorry out there I can t remember who Note that any nickname can now contain numbers and other stuff which is handy for cases which should be organized according to deciding court and date If in text references are being forced into footnotes the footnote toggles are set to true here the footnote it self is created later after any optional arguments have been gobbled Note that footnote forcing will only take effect for lexicite citations not for in text decla rations We need a new counter for footnotes so that we can keep track of footnote numbers while processing forced footnotes outside of the footnote environment 153 newcount c law footnote 154 def volno This macro is used to grab the header appropriate to a given declared subject The subjects headers and other related information are kept in a single list macro for quick access 155 def law headersearchend camelrefname 156 def law abandonheadersearch 1 law headersearchend 157 def law headersearch 1 2 3 4 Y
30. also make modification of this style a pretty simple matter Expected The contents of one name field string toggle either firstinitial lastonly or full Left A single string containing a formatted name or names or empty Toggles firstinitial Yields the form F Bennett Jr lastonly Yields the form Bennett full yields Frank Bennett Jr 726 FUNCTION format names 727 swap duplicate empty 728 swap pop 729 s 730 us 731 1 nameptr 732 s num names numnames 733 numnames namesleft 734 namesleft 0 gt 735 u lastonly 736 s nameptr vv 11 format name t 737 u firstinitial 738 s nameptr f vv ll jj format name t 739 u full 740 s nameptr ff vv ll jj format name t 741 style error invalid or non existent toggle warning 742 if 743 744 if 745 Y 746 if 747 nameptr 1 gt 748 namesleft 1 gt 749 xt 750 numnames 2 gt 751 Ut 752 gt skip 753 if 754 t others 755 1 etal 756 and t 757 if 758 759 if 760 761 t 72 format month year 762 if 763 nameptr 1 nameptr 764 namesleft 1 namesleft 765 766 while 767 768 if 769 Dates The style code for parsing and formatting dates is much more complex than that for names This is due to the need to build the ne
31. and efficiently Concerning the law wordlist macro it is best to examine the existing macro in law dtx and read the user documentation on the newinterword com mand With this information you should be able to make any changes you require in the behaviour of the list to suit your new style You should not omit items from the list this is important to maintain compatibility between styles You may want to add to the list and this is welcomed drop a note to Frank Bennett on fb soas ac uk to assure that your new addition is incorporated into the law dtx list which is used as a model so others will include it in their styles too Drafting the law print macro may be difficult to approach at first If you examine the example in the law dtx file you may be somewhat intimidated by the size and complexity of the macro listed there But in fact for most styles this macro should be reasonably simple to write the law dtx example is complex because it automates a very complex set of style rules applying to legal materials Essentially what law print does is print a citation in a particular form according to a set of conditions that can be recognized from toggles in effect when the macro is run by the CAMEL engine The toggles that may be drawn upon are described here For further information study the example in law dtx bearing in mind that your own macro will probably be simpler to draft 2 3 Toggles and hooks for the cit file 2 3 1 Cit
32. are citing two subsections of the same statute An example might look as follows Nsource LawofPropertyAct 7O 1 f amp _70 1 _ g Finally there is one more feature that applies only to parallel citations to law cases If a law case to which you are referring is reported in more than one location see below and you want to give a pinpoint to each location you can do so by using the the sign between the pinpoint strings For example source bloggvkermit 20 25 125 26 If more parallel pinpoints are given than exist in the BIBIEX entry for the case nicknames bloggvkermit the extra pinpoints will be ignored Similarly if you give fewer pinpoints than there are parallels in the BIBTEX entry the portions of the entry with no matching pinpoints will be omitted No fuss no muss 1 2 BibTpX features A number of enhancements for processing BIBTEX entries have been incorporated into the CAMEL BIBTEX programmer s library These enhancements are drawn upon by the law bst style and should also be used by subsequent CAMEL style modules These features are described briefly here Please see the BIBIEX docu mentation for more information on the format of BIBTEX entries et cetera Cases A new entry type CCASE has been added This entry type should be used for reported law cases Although citation forms vary widely between jurisdictions CAMEL bases the formatting of the citation on the information contained in the citation
33. are token registers that must be expanded using the ltok authoroptionface This is the typeface selected by enclosing text in the author portion of the citation within commands in the current citation s type i e as defined in its newcitestyle entry ltok titlemainface The typeface used for the title portion of the citation ltok titleoptionface The alternative typeface within the title argument to lexibib ltok citefirstmainface The typeface used for the source portion of the citation ltok citefirstoptionface The alternative for the source portion of the citation law firstslash These two commands should be defined as follows in your law print com law secondslash mand before citation elements are expanded This could be done within CAMEL itself but this gives you a little more hands on control in style design maybe def law firstslash begingroup def law secondslash 7 the ltokspecialface def law secondslash endgroup def law firstslash def law firstslash 2 3 4 Citation details ltok whereitsat This actually contains the text that is used to flag either a note or a page num ber ie note or X page This is used only where citation cross referencing is required ltok stylename This stores the citation type used to declare the citation with lexibib This is mainly used for internal purposes by CAMEL but if you re printing a style or proof sheet or are just trying to
34. area for this purpose 794 def lawOgetpara 1 H2 3 4 5 6 7 8 9 7 795 addtocounter law parapin 1 796 def law temp 1 797 law addpargument 2 3 4 5 6 7 8 9 tolist7 7908 ifnextchar 41 799 expandafter expandafter expandafter 800 law parachecktwo expandafter law temp gobble 801 newcite 1 802 def newcite 1 A counter indicating how many parallel citations are stored for the current citation and the list macro of parallel citation details built by the routines above is stored as a single item in the general list macro of citation details 803 law addtoken c law paranormal tocitelist 804 ltok a expandafter law tempplistmacro 805 law addtoken 1ltok a tocitelist 806 expandafter global expandafter let csname ldata 1 endcsname law templistmacro 807 1ltok userconetop 808 ltok userconetopplural 809 ltok userptop 810 ltok userptoctwo 811 ltok useratbridge 812 ltok useratbridgeplural Having stashed everything we re ready to make the nickname macro itself and print the long form of the cite We set law temp equal to the nickname macro and expand after the condition so that arguments can be examined otherwise the first thing the nickname sees will be the fi 813 law makecitenick 1 814 if law listinputting def lawQnick else 815 def law nick source f 1 fi law nick This macro adds one argument item
35. between two citations Two special characters are used to control the appearance of the word in these two positions A leading punctuation mark should be preceded by a _ character This will suppress such a punctuation mark and the space following it if the connecting word is used as a prefix to an initial citation in a string The character should precede the first word of the phrase associated with the connecting word and that character should be capitalized The first character of the phrase will then be forced to lower case if the connecting word is used between two Nsource commands The following examples may be useful for guidance e newinterword cf _ C f e newinterword see generally _ See generally Place a printbibliography command in your document wherever you would like the bibliography to appear If no citationsubject commands are used at 6The syntax of these options is the same as for options to the source command discussed above source the top of the document printbibliography al1 will produce a full bibliogra phy of all references made in the document up to that point If citationsubject has been used then Nprintbibliographyiall will produce the same bibliogra phy but classified by subject with the headers specified in the citationsubject commands at the top of the document You may also specify a subject to the Nprintbibliography command in stead of all This will produce a bibliography
36. debug a style you may have a use for it MOltokOnickname This stores the nickname of the citation ltok author This stores the author portion of the citation 1tok name This stores the title portion of the citation ltok citefirst This stores the source portion of the citation ltok citepage This stores the page number not the pinpoint of the citation ltok citelast This stores the citation trailer 1tok pageorfootno This stores either the page or the footnote number at which the citation first occurred 12 ltok atot ltok ttocone ltok conetop ltok conetopplural NOltokOptop MOltokOptoctwo ltok atbridge ltok atbridgeplural law barkill 2 3 5 Bridges This contains the punctuation bridge declared in the cit file for the current citation type that is to be placed between the author and the title elements of the citation This contains the bridge that is to be placed between the title and the source This contains the singular bridge that goes between the source and the page number This contains the alternative plural bridge that goes between the source and the page number This contains the bridge that goes between a page reference giving the location of an article for example and the pinpoint reference This contains the bridge that goes between any page numbers and the citation trailer This contains the bridge that goes between an abbreviated citation i e Id or somesuch and a pi
37. formatted as requested in the citationsubject command Note that if the i and o options are used with Ncitationsubject makeindex must be used to generate the input file that will be expected for that subject Note also that such external tables will be ignored by printbibliography all where citation subjects are used The most common command for CAMEL users is the Nsource command which replaces the Ncite command of standard TEX It is used to identify the citation in the bib data files and to provide a logical description of any fine tuning of the citation form that the user might desire Because it is frequently used and must be accessible to authors with more interest in the content of what they are writing than the inner workings of ATEX much effort has gone into making the command as simple to use as possible Options The valid options that may be placed inside the first set of square braces are shown below Single character options a Supress printing of author s name in the document t Suppress printing of the title in the document l Force automatically generated abbreviations to lower case n Suppress printing of the citation in the document equivalent to Nnocite in standard 4TpX f Force the full form of the citation to be printed in the document h Suppress automated footnote generation and the use of interwords for the cur rent and following citations This option should not be u
38. global ltok ptop 1041 global ltok atbridge 48 lLaw justabovecheck 1042 ifcat the ltok citepage 1043 global 1tok conetop 1044 M And here the law setup routine comes to an end punt to the print routine possibly followed by a gobble if d is printed 1045 fi 3 3 Output routines Once the citation has been unpacked and the basic tidying up appropriate to all appearances of the citation has been carried out it is time to ship its contents to the various output routines 3 3 1 The print macro This section contains the code for the print routine and its supporting macros We begin with the supporting stuff Check if immediately preceding cite is the same as this one This macro is called immediately before the citation is printed There are lots of conditions but the structure is just a straightforward nesting of if statements each of which sets a toggle or toggles appropriately In the end this macro tells us e Whether the immediately preceding citation is to the same work and if it is e Whether the preceding cite had no pinpoint page reference and if it had one e Whether the pages referred to by the two cites are exactly identical Try that with WordPerfect If CAMEL isn t getting the decisions right let me know 046 def law justabovecheck 047 xdef law temptwo the 1ltok author the ltok name 048 the ltok citefirst the ltok citepage 049 the ltok citelast 050 if
39. noexpand 1tok ptoctwo noexpand the 1tok h noexpand noexpand global noexpand 1tok at bridge noexpand the ltok i noexpand global ltok atbridgeplural noexpand the 1tok j noexpand 3 2 3 Declaration of citation nicknames The following macros are called by the macros generated by the newcitestyle macro and its arguments Their effect is to create nickname macros which can then be called by the user with the source command with the nickname as a single argument in braces This macro is called by new citation type name While this macro always takes seven arguments some of these may be masked off from the user if fewer than the full possible six arguments were called for in the final argument fed to newcitestyle in creating the particular new citation type name macro that is doing the calling The arguments are there the user just can t put anything into them The law authortracing macro is actually just a temporary macro I gave it 39 a descriptive name because it was a struggle to keep my head around what it does as I was programming this What happens is that a token assignment of the author s name followed by a trip to the cleaning routine is used to store a harmless string consisting of the entire contents of the author s name field in the law authortracing macro Then this name is defined as a macro expanding to 1 or 2 depending on whether it has been defined once already The macro may look something like NJ
40. noexpand j 679 the ltok citefirstmainface noexpand 680 noexpand global noexpand ltok citefirstoptionface noexpand 681 the ltok citefirstoptionface noexpand 682 noexpand global noexpand ltok citetype noexpand 683 the ltok citetype noexpand 684 expandafter gdef csname new 1 endcsname t 1 2 3 4HHSHHOHHT N 685 Gnewcite 1 1 2 43 UBI UHES RS HO KUBIT The following are parsing routines that are called by newcitestyle In law parsefaces the seven arguments are the string of letters in the second argument of newcitestyle This function has been drastically simplified over the first release I should have done it this way in the first place and saved myself a lot of aggravation The code should run a lot faster to boot 686 def law parsefaces 1 2 3 4 5 6 7 7 687 law parseoneoption ltok authormainface 1 688 NOlawOparseoneoptionMOltokO0authoroptionfacett2 689 law parseoneoption ltok titlemainface 3 690 law parseoneoption ltok titleoptionface 4 691 law parseoneoption ltok citefirstmainface 5 692 law parseoneoption ltok citefirstoptionface 6 693 law parselastoption ltok citetype 7 694 695 def law parseoneoption 1 2 696 if 2s global 1 sc fi 697 if 2i global 1 em fi 698 Nifit2bNXglobalii Nbf Nf if 699 if 2r global 1 rm fi 700 if 2S global 1 sc fi 701 if 2I global 1 em fi 702 if 2B global 1 bf fi 703 if 2R global 1 rm fi 7
41. styles This code and the table writing code is provisional this should be made more general Less of a hack than the original LEX IEX code though 313 xcamelindex 314 actual it 315 quote 316 level 317 preamble 318 An 319 postamble 320 An 321 item O Nn 322 item x1 An subitem 323 item x2 in subsubitem 324 delim n rightarrow 325 delim O camelfill 326 delim 1 camelarrow 327 The next lines will produce some warnings when 328 running Makeindex as they try to cover two different 329 versions of the program 3301lethead prefix bf hfil 331 lethead suffix hfil nopagebreak n 332 lethead_flag 1 333 heading_prefix bf hfil 334 heading suffix hfil nopagebreak n 335 headings_flag 0 336 NifxlonClineXundefined 337 def on line on input line the inputlineno 338 errhelp Support for input line numbers has been added 339 to latex tex dec91 J JA 340 Please update to a newer LaTeX release 341 errmessage Obsolete LaTeX release older than Dec 91 342 Mi 343 camelindex 56 4 A BibTfX Library Considerable modification of an existing bst file may be required to make it give output that can be digested by CAMEL You may find that it is actu ally easier to draft you entry type functions from scratch using the follow ing library of BIBTEX functions See the file law dtx for an example of en try types based on this li
42. to the export file if the creation of tables for that type of citation has been toggled on It then invokes the print routine This macro assumes that all citation information stored for the cite has already been retrieved to appropriate token registers The redefinition of the backslash character here allows it to be used to select the alternate typeface within a citation 46 argument The alternate typeface can be changed for all documents by editing the relevant cst file Grouping braces enclosing all operations within law setup mean than weird stuff turned on the sole purpose of exporting to tables and printing the citation will turn itself off when the print routine is finished A routine law justabovecheck is run to figure out what the citation context is how a cross reference should be formatted and once it s found out what it needs to know about the last citation information on the current citation is tucked away for reference by this the context checking routine next time around A series of checks is performed so that superfluous bridges for which there is no corresponding argument can be erased Then a file write is performed to the appropriate export file if creation of that table has been toggled on And finally the print routine is called The law gobble that follows the end of the group is used to eat a superfluous period if necessary It is brought to life if appropriate by the print routine Note the special catcode o
43. 04 705 NdefNOlawOparselastoptiontit2 706 if 2a global 1 article fi 707 if 2b global 1 book fi 38 708 709 713 if 2c global 1 case fi if 2s global 1 statute fi7 if 2A global if article fi Z if 2B global 1 book fi if 2C global i case fiz if 2S global i statute fi Bridges are stored literally without parsing so it s easy to stash them directly in a single macro that is fed the arguments The assignments here are stored by the same method outlined in the description of newcitestyle above 714 newtoks 1ltok c 715 newtoks ltok d 716 newtoks ltok e 717 newtoks 1tok f 718 newtoks l1tok g 719 newtoks 1tok h 720 newtoks 1tok i Z 721 newtoks 1tok j 722 def newcitebridges 1 a 2 t 3 c 4 p 5 p1 6 rp 7 e id 8 p1 9 xrf 723 1ltok c 2 724 1ltoked 3 725 ltok e 4 726 NO1tokQf 35 727 ltok g 6 728 1ltok h 7 729 1ltok i 8 730 1tok j 9 731 732 733 734 735 736 737 738 739 expandafter xdef csname 1bridges endcsname noexpand global noexpand 1tok at ot noexpand the ltok c noexpand noexpand global noexpand 1tok ttocone noexpand the 1tok d noexpand noexpand global noexpand 1tok conetop noexpand the 1tok e noexpand noexpand global noexpand 1tok conetopplural noexpand the 1tok g noexpand noexpand global noexpand 1tok pt op noexpand the ltok f noexpand noexpand global
44. 19 title Court and Constitution in Japan Selected Supreme Court 2520 1948 1960 2521 publisher Washington University Press 2522 year 1964 2523 2524 booklet sansom constitution 2525 author Sansom Sir George Bailey 2526 title The First Japanese Constitution A Lecture 2527 note delivered before the 2528 Asiatic Society of Japan 90 Decisions 2529 year 1938 2530 2531 Cincollectionthaley land lease 2532 title Japan s New Land and House Lease Law 2533 author John Owen Haley 2534 crossref policy failure 2535 pages 149 2536 2537 book policy failure 2538 title Land Issues in Japan A Policy Failure 2539 booktitle Land Issues in Japan A Policy Failure 2540 year 1992 2541 2542 article appleyard heed 2543 author Bryan Appleyard 2544 title Why Major should heed the press 2545 pages 21 2546 journal The Independent 2547 date 7 jul 1995 2548 place London 2549 2550 statute sga 2551 title Sale of Goods Act 2552 year 1979 2553 jurisdiction england 2554 2555 casefheap 2556 title Heap v Motorists Advisory Agency Ltd 2557 year 1923 2558 journal KB 2559 number 1 2560 pages 577 2561 2562 case halsall v brizell 2563 title Halsall v Brizell 2564 cites 1957 Ch 169 1957 1 All ER 371 2565 2566 bib 6 The Driver File 2567 install
45. 2795 def Gdemo plone 1 2 def demo listitem 1 2796 ifx demo optionitem demo listitem 2 2797 let demo finish fi 2798 def demo end 2799 def demo f inish 1 demo nomatch 2800 def Gdemo plnomatch latex error Invalid 2801 option demo optionitem 2802 given to NstringNparsedemo J7 2803 Valid options are J 2804 a reports selection of a to terminal J 2805 b lt string gt reports selection of b and the option string J 2806 to terminal J 2807 To avoid errors in formatting use commas in the option string J 2808 only where they are logically necessary to the sense of the J 2809 string Therefore NstringNMparsedemo ab birds and 2810 Astringlparsedemo b birds aj J 2811 are correct while NstringNparsedemo a b birds is NOT 2812 correct ehc 2813 def demo sourceoptionlist 2314 f a message a was selected 2815 b gdef demo parsemacro 1 message string option to b 2816 was Hi 1 2817 let demo parse demo parsecomma 2818 let demo parse demo parsebumequal 2819 NN 6 30 2820 end let demo nomatch relax let demo parse relax 96 2821 demo nomatch 2822 def demo parsecomma 1 2823 demo parsemacro 1 let demo parse demo parseplain 2824 parse 2825 def demo parsebumequal 1 let demo parse demo parseplain parse 2826 def Gdemo parseplain 1 2827 let demo nomatc
46. 3 law alone 277 277 324 law alparseplain 313 321 322 453 law alparsesavecomma 299 313 313 law ampersand 44 288 1176 law argtwolist 830 1003 law argtwotemp 654 law article 602 law authormainfacetemp 649 law authoroptionfacetemp 650 law authortemp 651 law barinfull 48 law barinshort 49 law barkill 13 43 law barnil 47 612 law bblfile 492 505 law bibentrytrue 253 law bibfile 529 law bibformat 1121 1149 1200 law bibformatsearch 169 177 law bibformatsearchend 167 168 177 law bibslash 1296 1307 1311 law book 0 603 law cas ramas pa ath epe 600 law checkins 334 336 376 385 428 law checkpre 342 law citedump 380 389 431 law citefirstmainfacetemp 657 law citefirstoptionfacetemp 658 98 law citefirsttemp 659 law citelasttemp 661 law citeload 665 666 law citepagetemp 656 law citestack 393 396 399 433 436 438 441 law citesubject 179 186 194 202 205 217 257 351 477 919 920 990 996 law citesubjectcheck 209 216 law citesubjectcheckend 200 208 212 218 law clean 604 605 649 662 743
47. 3 4 Parsing and conversion eee 66 5 A bib file 89 6 The Driver File 91 iii Now comes the fun part Donald Knuth Preface to release 1 0 Welcome to CAMEL a comprehensive bibliography manager developed as a pro totype citation engine for the IATEX3 project The CAMEL engine offers a highly flexible yet straightforward syntax for entering citation keys into a IATEX docu ment The CAMEL engine is designed to support a wide range of citation styles Documents prepared for CAMEL can be converted into virtually any supported bibliography or citation style usually by editing only a few toggles at the top of the document Within the IATEX3 project an extensive survey of bibliographic styles was carried out by David Rhead Pedro Aphalo Task Coordinator for bibliographic support on the IATEX3 Project first proposed adopting a unified syntax for all bibliographic styles CAMEL itself is the brainchild of Frank Bennett and is based upon his earlier work on the LEX IEX style engine for legal materials This package completely supercedes LEX I EX and that earlier style package will no longer be supported The new package should be referred to as the CAMEL citator 3 The core CAMEL package provides hooks for the development of style options that satisfy all bibliographic requirements that have come to the attention of the IATEX3 bibliography team The foundation has been laid but much work remains to be done in drafting CAM
48. 3 4 Parsing and conversion field tag no combine The no here stands for number This function is typically used to simplify the task of building a numbered label for something e g a technical report It provides facilities for handling blank entries so that these error handling routines do not need to be drafted from scratch for every such situation 66 Expected A string toggle An identifier i e a report number A text prefix for the identifier A string label i e Technical Report or somesuch A single string endlabel Combines the text items in the same order in which they are found frontlabel Places the label in front followed by the identifier followed by the first item pushed 582 FUNCTION field tag no combine 583 endlabel 584 duplicate empty 585 pop pop empty to null 586 empty to null s empty to null 587 swap empty to null swap s 588 if 589 Y 590 duplicate empty 591 pop pop empty to null 592 empty to null s empty to null 593 swap empty to null s swap 594 if 595 Jif 596 change letter case This is a simple front end to the change case built in function used to change characters in a string from upper to lower case It slightly enhances the built in function by providing an option that leaves the string alone Expected A single character either ann a t an 1 or a u A string for conversion Left One string convert
49. 335 catcode activey 336 gdef law checkins 7 337 def 1 lowercase 1 def_ 1 em 1 338 let law tempthree 339 let law nomatch law wlnomatch 340 let law scanlist law wordlist 341 let law tempthree 342 gdef law checkpre 7 343 let law tempthree 344 let relax let_ gobble 345 let law nomatch law wlnomatch 346 let law scanlist law wordlist 347 let law tempthree 348 The front end of the cite command is very much la typical LaTeX optional command definition stuff We just carry things a little further because there are two possible options to the cite command 349 NgdefXsourcet 350 MifOlawGrequiresubjects 351 gdef law citesubject 352 Mti 353 law printcitetrue 354 law printauthortrue 355 MOlawOprinttitletrue 356 law intextcitefalse 357 law multipagesfalse 358 setcounter law parapin 0 359 setcounter law paracounter 0 360 ifnextchar lexicite lexicite 361 def lexicite 1 2 ifnextcharcareful 362 addtocounter law parapin 1 lexicite 1 2 363 lexicitenobrace 1 2 Once we ve gathered up any optional arguments it s time to use the ifoverword command If we find a Ncite command after the next word we stash the current cite we check the word separating the two Ncite commands against an internal list return the result to SBSword and push the raw citation det
50. 6 556 561 571 582 592 Nlexicite coos ee prin 443 XLexiTeX 24 264 5 sei 69 641 linewidth 1231 1242 longestlabelfor 1105 1112 1239 1263 Lowcease pak ee ope eed 8 150 250 Mtokspecialface 91 979 M Amaybe ci cat 1226 1234 message 79 250 329 666 742 1253 1273 1283 1290 1301 2814 2815 might ifone must environment 65 Ms ising ond RAE ERE 2640 2645 2650 2655 2660 2670 2687 must must must environment 65 N n dashify environment 68 NeedsTeXFormat 2 newcitestyle 663 newcommand 2466 newcounter 114 118 newif 33 37 130 148 740 newindex 1170 newinterword s s 3 newlength 1105 1107 newwrite ooo oo 533 normalcolor 4 418 103 normcase 149 151 152 not environment 59 O NOE jes Des 634 NO A A tute ee 630 on line 1336 1337 Nopenout stench tn eA Be 534 or environment 59 P p LexiBib o o oooo 70 77 p LexiTeX 62 69 parse month environment Te parsedemo 2802 2809 2811 2830 2835 NparsSep nado equos ly 1266 preamble 2570 2607 printbibliography Veiis odd 3 1215 1215 2785 2788 Mprintthebibliography 500 524 XProvidesPackage 2 Q questi
51. 61 2462 SORT 2463 2464 FUNCTION begin bib 2465 et al char used Oo Oo 10 CU P WN KF o v 2466 newcommand etalchar 1 1 write newline 2467 gt skip 2468 if 2469 preamble empty 2470 skip 2471 preamble write newline 2472 if 2473 Y 2474 2475 EXECUTE begin bib 2476 2477 ITERATE call type 2478 bsttrailer 5 A bib file 89 2479 bib 2480 book bluebook 2481 title A Uniform System of Citation 2482 edition 19th 2483 year 1989 2484 Y 2485 book knuth 2486 title The TeX book 2487 year 1990 2488 author D E Knuth 2489 2490 book leunen 2491 author M C van Leunen 2492 title A Handbook for Scholars 2493 year 1979 2494 2495 book latex book 2496 title LaTeX a document preparation system 2497 year 1994 2498 author Leslie Lamport 2499 2500 book latex companion 2501 author M Goosens and Frank Mittelbach and A Samarin 2502 title The LaTeX Companion 2503 year 1994 2504 2505 techreport oren user 2506 author Oren Patashnik 2507 title BibTeX ing 2508 year 1988 2509 type CTAN document 2510 2511 techreport oren hackers 2512 author Oren Patashnik 2513 title Designing BibTeX Styles 2514 type CTAN document 2515 year 1988 2516 2517 book maki constitution 2518 author Maki John McGilvrey 25
52. 63 begin itemize 2764 item source fs case bradshaw v us 2765 item source fs case bradshaw v us 145 366 2766 end itemize 2767 end itemize 2768 Titles that end in a numeral are a special treat Msc Camel 2769 is not tricked by them 2770 beginfitemize 2771 item source s statutes maki constitution 23 2772 item source fs statutes maki constitution 2773 end itemize 95 2775 testtex If you uncomment the citationsubject lines above 2776 testtex you can comment out the all entry below run 2777 testtex makeindex in the appropriate way over the output 2778 testtex files uncomment the three special bibliography 2779 testtex declarations below and print a whole different sort 2780 testtex of document There are a few bugs in the way 2781 testtex bibliographies are set up Sorting them out will 2782 testtex best be done once BibTeX 1 0 is available since 2783 testtex integrating with the new BibTeX will affect the same 2784 testtex portions of the code 2785 printbibliography all 2786 testtex 4 printbibliography statutes 2787 testtex 4 printbibliography case 2788 testtex 4 printbibliography second 2789 end document 2790 testtex The following code makes a demo file for the parsing routines contained in CAMEL Just a sales gimmick 2791 parseonly 2792 documentclass article 2793 begin document 2794 makeatletter
53. 75 t 1 a substring t 676 u 677 swap swap 678 u u 679 u 1 1 substring swap 680 u 1 1 substring 681 u 42 global max substring u 682 t a 1 substring swap get character type 683 t a 1 substring swap 684 duplicate u 685 a 1 a t 1 a substring t 686 swap pop 687 Jif 688 Jwhile 689 swap pop t swap u 690 Jif 691 We use this function from the standard styles It adds a tie if the string it is applied to is three characters or less in length Expected 1 A string 2 lt A second string Left 1 One string Toggles 1692 FUNCTION tie or space connect 1693 duplicate text length 3 lt 1694 TES 1695 WS 1696 if 1697 swap 1698 This function accepts one toggle option currently but it is open to expansion If the short toggle is fed to this function it reads through the field until it hits a non integer character Otherwise it n dashifys the whole field This needs robustification the page number might be a roman numeral Might it be simplest to just drop the scan when we hit a Deserves some thought 70 format names Expected lt A toggle string page number or possibly a range of pages Left One string constituting a finished page number or empty Toggles Short will return only the first number given in the string full will return the page number n dashified 699 FUNCTION format pages
54. 9 894 Sept 895 duplicate 10 896 Oct 897 duplicate 11 898 Nov 899 duplicate 12 900 Dec 901 wn 902 if 903 if 904 if 76 extract date 905 if 906 if 907 if 908 if 909 if if if if if if swap pop if o o o o o ooo 1005 wWnr OO This function takes a labelled stack of numeric items and places its contents in a formatted string on the stack It is a subroutine called by format date and is not intended for use directly in entry type functions The behaviour of this function is a little too complex to describe its input and output behaviour using our usual description box so we revert to prose here The expectation of what will appear on the stack depends on the contents of the integer variable itemcount For each date item counted the function expects to find two items on the stack a string possibly flagging the variable into which the item should be placed and a numerical string If itemcount is 0 we check to see whether the streamlined format for parallel citations has been used If not a warning of an empty date is issued If itemcount is 1 the flag string is ignored and the numerical item is assumed to be a year If itemcount is 2 the flag strings are both ignored and the numerical items are assumed to be a year and a month in that order If itemcount is 3 the first item is assumed to be a year The assignm
55. EL modules to meet all known bibliographic requirements in all fields and in all languages for which IATEX is used This work will involve the drafting or modification of bst files in the reverse polish notation used by BIBTEX and of CAMEL style modules written in TEX If you want to contribute to a project that will dramatically enhance the utility of IXTEX as an author s productivity tool get involved The developers email addresses are as follows e Frank Bennett fb soas ac uk e Pedro Aphalo aphalo cc joensuu fi 1D KNUTH THE TEX Book 176 1990 2This is potentially exciting he said but as of this writing only one module law dtx the legal citation module used for beta testing the CAMEL engine exists Some followers of CAMEL development have expressed serious interest in developing other modules however so a claim to broadening support for this package is legitimate 3Why CAMEL I can offer several reasons users may take their pick The style operates by gathering citation details that it carries with it through the desert of plain text until the bibliography engine reaches its oasis at document s end Alternatively in his daily work the author uses the multi lingual enchancement of Emacs which is called Mule It s nice for one critter to have the company of another in the stable A third arbitrary explanation is that the Japanese word for camel is rakuda These syllables with a different intonation
56. TeX space 641 def LexiTeX string LexiTeX space 642 def BibTeX string BibTeX space def string 643 xdef law temp the 1 7 644 xdef 2 expandafter expandafter expandafter gobble 645 expandafter string csname law temp endcsname 646 fi 647 DD DO0Oo0o gt oo Na o OA 100 amp WN o N This routine runs the cleaning routine on every token register that we want to send to the external files The result is stored in a macro since we need the registers for the next citation and because it will be safe to fully expand the contents after cleaning 648 def law cleanup 649 law clean ltok authormainface law authormainfacetemp 650 law clean ltok authoroptionface law authoroptionfacetemp 651 law clean ltok author law authortemp 652 law clean ltok titlemainface law titlemainfacetemp 653 law clean ltok titleoptionface law titleoptionfacetemp 654 law clean ltok argtwo law argtwotemp 655 law clean ltok name law nametemp 36 656 law clean ltok citepage law citepagetemp 657 law clean ltok citefirstmainface law citefirstmainfacetemp 658 law clean ltok citefirstoptionface law citefirstoptionfacetemp 659 law clean ltok citefirst law citefirsttemph 660 law clean ltok conetop law conetoptemph 661 law clean ltok citelast law citelasttemp 662 law clean 1ltok ptop law ptoptemp 3 2 2 Declaration of citation types This section co
57. User s Guide to the CAMEL Citator Frank G Bennett Jr July 12 1995 Abstract This is the core documentation for CAMEL a IATEX macro package that drastically simplifies the typesetting of citations and bibliographies in a wide variety of styles and formats CAMEL is similar in look and feel to standard BIBTEX but introduces a number of long desired enhancements When the document is printed CAMEL allows the generation of subdivided bibliographies separate bibliographies for each subdivision of a larger work in footnote cross referenced citations bibliographies indexed to the pages where citations to the relevant work occur and much else This is the only fully supported bibliography package for IXTEX that provides full support for legal citations The package also provides genuinely helpful error messages and an extremely simple syntax for adding details like page numbers and the like to citation tags CAMEL provides the logical engine and skeleton macros that make these things possible a separate style package is required to actually typeset documents For an example of a working style package see law dtx in the camel subdirectory on CTAN Contents 1 Introduction LI Commands ty iG sre ote tee do bey M M ber e rede dde deb d od 1 2 BIBTpX feat res acto boca omo bu m Xo afe po eee eas 1 3 Processing documents 000000000004 This file is version number 1 0m The documentation was last revised on 95 06 24 The t
58. a single macro permits theholding and its friends to work more simply 556 def lexibib 1 csname new 1 endcsname law showholding These macros allow database storage of itemized details of a case holding and law hideholding their recall using theholding holding theholding 33 law showcomment law hidecomment comment thecomment law showquestions lawCGhidequestions questions thequestions law showfacts law hidefacts facts thefacts 557 def law showholding 1 def holding law hideholding 558 begin enumerate 1 end enumerate 559 def law hideholding 1 560 def holding law hideholding 561 def theholding def lexibib 1 2 3 4 5 6 7 CJ 562 edef law temp the ltok nickname 563 def law temptwo 2 564 ifx law temp law temptwo def holding law showholding 565 else def holding law hideholding fi 566 input jobname bb1 These macros allow database storage of comments on a case and their recall using thecomment 567 def law showcomment 1 def comment lawGhidecomment 568 1 569 def law hidecomment 1 570 def comment law hidecomment 571 def thecomment def lexibib 1 2 3 HGHH5HH6HHT UJ 572 edef law temp the ltok nickname 573 def law temptwo 2 574 ifx law temp law temptwo def comment law showcomment 575 else def comment law hidecomment fi 576 input jobname bb1 These macros allow database stor
59. age of itemized questions on a case and their recall using thequestions 577 4 begin macrocode 578 def law showquestions 1 def questions lawGhidequestions 579 begin enumerate 1 end enumerate 580 def law hidequestions 1 581 def questions law hidequestions 582 def thequestions def lexibib 1 2 3 4 54 6 7 7 583 edef law temp the ltok nickname 584 def law temptwo 2 585 ifx law temp law temptwo def questions law showquestions 586 else def questions law hidequestions fi 587 input jobname bb1 These macros allow database storage of the facts of a case and their recall using thefacts 588 def law showfacts 1 def facts law hidefacts 580 1 590 def law hidefacts 1 591 def facts law hidefacts 34 law unstashparas law clean law cleanup 592 def thefacts def lexibib 1 2 3 GHHS HHGHHT UJ 593 edef law temp the ltok nickname 594 def law temptwo 2 595 ifx law temp law temptwo def facts law showfacts 596 else def facts law hidefacts fi 597 input jobname bb1 We need to initialize the list macro used as a workspace by the list macro handlers 598 def law templistmacro 599 def law tempplistmacro These macros are used for if branching in various formatting routines 600 def law case case 601 def law statute statute 602 def law articlefarticle 603 def law book book 3 2 Main macros 3 2 1 U
60. ails and the SBSword bridge onto a temporary stack Otherwise we clear the SBSword push the current cite details dump the stack and put the word we found together with any separating space back on the output stream 364 def ifnextcharcareful 1 2 3 365 NgdefNOprenextcharspacei 366 let reserved e 1 def reserved a 2 def reserved b 3 futurelet 367 reserved c ifnchcareful 368 def ifnchcareful ifx reserved c sptoken let reserved d xifnchcareful 369 else ifx reserved c reserved e let reserved d reserved a else 370 let reserved d reserved b fi 28 footnote 371 fi reserved d 372 def xifnchcareful 373 expandafter def 4 374 gdef prenextcharspace futurelet reserved c ifnch 375 def lexicite 1 2 3 376 ifoverword cite law checkins 0 lexicite 377 OH D GI 378 gdef SBSword lexicitey 379 1 2 3 380 law citedump 381 preoverwordspace 382 expandafter law gobble 383 overword 384 def lexicitenobrace 1 2 385 ifoverword cite law checkins lexicite 386 1 2 3 387 gdef SBSword lexicitey 388 1 2 3 389 law citedump 390 prenextcharspace 391 expandafter law gobble 392 overword To push citation details we use a token assignment with expandafter then an edef of the register contents to get one level of expansion into a macro 393 def law citestack 394 gdef SBSword
61. aketable 154 expandafter def csname the 2table endcsname um p oO NQ 155 MOrestonecoltrue 156 if twocolumn restonecolfalse fi 157 section 3 158 mkboth 159 uppercase 3 7 52 140 def law optionitem 1 let law slone law subjectoptionlist parse 160 161 162 164 165 166 168 169 170 171 172 173 174 175 176 177 178 179 198 204 206 207 209 uppercase 3 thispagestyle plain parindent z parskip z plus 3 p relax let item citationtableitem expandafter def csname endthe 2table endcsname NifCrestonecollonecolumn else clearpage ML def itemspace par vskip 10 p plus5 p minus3 p relax newindex 2 lawGoutputext csname 2inputext endcsname 3 if law usepinpoints expandafter gdef csname write one 2 entry endcsname ifcat the ltok argtwo ltok argtwo law delim fiZ ltok pagesstring ltok argtwo def law comma law exportapage def law ampersand law exportapage def law dash law exportapage def law exportapage def law exportapage t 1 law delim 7 ltok argtwo 1 def law temp index 2 7 NedefNOlawOtemptwoi noexpand string bibitem string source bZ the ltok nickname noexpand the 1ltok nickname noexpand 7 ifcat the ltok argtwo else gt 1 fi string maybe noexpand expandafter law temp law temptwo expandafter law exportapage the ltok pagesstr
62. andard issue IXTEX If you need to learn more about BIBIEX a number of excellent sources of information are available The treatment given to the programming language tends to be quite brief but you should not be put off by this the language is in fact quite simple to use and the CAMEL programming library makes things even easier L LAMPORT IATEX A DOCUMENT PREPARATION SYSTEM 1994 M GoosENS F MITTEL BACH AND A SAMARIN THE IATEX COMPANION 1994 Oren Patashnik BiBTgXing CTAN document 1988 and Oren Patashnik Designing BIBTEX Styles CTAN document 1988 CAMEL commands citationsubject options nickname Ht heading text optional preamble citationstyle style package name required doc top citationdata bib1 bib2 alternative doc top bibliographymanager product name alternative doc top forcefootnotes optional doc top newinterword nickname text optional doc top printbibliography nickname optional anywhere source options nickname page numbers n a anywhere Ncitationstyle Ncitationdata bibliographymanager citationsubject 1 1 Commands The Ncitationstyle command is used to tell both BIBTEX and the CAMEL engine how your citations should be formatted its argument is the name of a CAMEL module contained in a cst a cit and a bst file such as law In this respect it is similar to a document class but for citations instead of whole docum
63. ard heed 2726 item source fs second appleyard heed 21 A silly example 2727 since there s only one page to the piece 2728 end itemize 2729 item Articles in collections of essays 2730 begin itemize 2731 item source s second haley land lease 2732 item source fs second haley land lease 152 2733 end itemize 2734 item Books 2735 begin itemize 2736 Nitem source fs second latex companion 2737 item source fs second latex companion 371 2738 end itemize 2739 item Sections of books 2740 begin itemize 2741 item source fs second companion bibs 2742 item source fs second companion bibs 374 75 The BibTeX 2743 processing flow shown here is simplified for sc Camel users 2744 end itemize 2745 item Ephemeral booklets 2746 Nbeginfitemize 2747 item source fs second sansom constitution 2748 item source fs second sansom constitution 2 2749 end itemize 2750 item Masters theses 2751 begin itemize 2752 item source fs second homma derivative 2753 item source fs second homma derivative 23 2754 end itemize 2755 item Commonwealth law cases 2756 begin itemize 2757 item source fs case heap 2758 Nitem source fs case heap 578 footnote Notice how the 2759 pinpointed citation gives only as many parallel as are 2760 specified in the pinpoint Compare this with the next example 2761 end itemize 2762 item US law cases 27
64. ate written in a fixed syntax into the LEXIBIB internal date stack for onward handling by extract date 79 Expected A string in the form s57 9 27 where the first letter indicates the Imperial reign of the year given the first numeric item is the year the second the month and the third the day Any non alphabetic non numeric character may be used as Separator itemcount is set to 2 one more is added by the format date function in which is function is nested Six stack items are output see extract date for details on stack syntax 2007 FUNCTION format jdate 2008 duplicate 2 global max substring forward gather chars 2009 pop t swap 2010 1 1 substring duplicate s 2011 pop t 1925 topup date 2012 duplicate m 2013 pop t 1867 topup date 2014 duplicate t 2015 pop t 1911 topup date 2016 n 2017 t 1988 topup date 2018 invalid Imperial calendar code in cite warning 2019 Jif 2020 Jif 2021 if 2022 if 2023 swap 2024 forward gather chars 2025 pop swap 2026 forward gather chars 2027 pop swap pop t swap default swap t swap default 2028 swap default 2029 42 itemcount 2030 format date This function makes use of gather chars and other supporting functions to build a stack of date items which it then parses using extract date The syntax for entering dates is described in the user gu
65. ation history This is true during the first expansion of a citation nickname in the text This is set to true where a the author title source page and citation trailer are identical in the last citation used in a footnote and in the current citation b the last citation used in a footnote was the only citation in that footnote and c a pinpoint was not used in the previous citation or if there was such a pinpoint a pinpoint is also used in the current citation This is set to true where a law justabove is set true and b a pinpoint was used in both citations and c the pinpoints match exactly 2 3 2 Formatting toggles This is set true by the h option to the source command Use it to select a 11 special in text form for the citation if law multipages This is set true if more than one pinpoint reference is used i e any of amp or occur in the pinpoint argument if law printcite If this is true the citation should print Otherwise it should not It should also trigger suppression of footnote forcing if law printauthor If this is true the name of the author prints if law printtitle If this is true the title of the work prints if law longcite If this is true the citation should be printed in its full form This is set true by the f option to the source command 2 3 3 typefaces ltok authormainface This is the typeface set in the cit file for author names It and all other 1tok control strings
66. ayeff Huggins Jr Drastic but effective Try doing that with a WordPerfect macro 740 newif if law specialbridges 741 NdefNOnewcitedid24344454564 7188 742 message 743 ltok a 4 law clean ltok a law temp 744 expandafter ifx csname law temp endcsname relax 745 expandafter expandafter expandafter xdef expandafter 746 csname law temp endcsname 1 747 Nelsef 748 expandafter expandafter expandafter xdef expandafter 749 csname law temp endcsname 2 750 X iM The law stasheverything macro creates the list macro that can be used to retrieve all citation details at a later point in the document law makecitenick creates the short macro that knows how to unstash the stored information Note that this is where things end if we are inside the lexilist environment 751 def law templistmacro 752 def law tempplistmacro 753 setcounter law paranormal 0 754 ifcat the ltok useratbridgeplural 755 law addargument tocitelist 756 law addargument tocitelist 757 law addargument tocitelist 758 law addargument tocitelist 759 law addargument tocitelist 760 law addargument tocitelist 761 else 762 law addtoken ltok userconetop tocitelist 763 lLaw addtoken 1ltok userconetopplural tocitelist 14The previous release used a law stashinfo macro that took nine arguments The last two were just toggles in effect for the creation of a long and a sho
67. brary and for an example of how to tie the library and your own functions together through a driver file entry Each function defined using the FUNCTION operator is accompanied by a brief de scription of what it is intended to do followed by a box in the following form Expected What the function expects to find on the stack numbered from the top most recently pushed to the bottom item Left What the function will leave on the stack numbered in the same fashion Toggles toggle name What the effect of any toggles is on the behaviour of the function Happy reading 4 1 Hello As ever we start by telling the world who we are 344 bstheader 345 FUNCTION hello 3461 Ss s o 347 bibliography package version 1 0k or later 348 Use with LaTeX2e and the Camel prototype BAG A E enc mer 350 documentation last updated 5 December 1994 351 code last updated 22 March 1995 352 style version 1 0i 353 bstheader 354 xbstlibrary 355 356 stack 357 4 2 Variable initializations ENTRY This command takes three braced arguments which in order are 1 A list of field names 2 A list of integer variables and 3 A list of string variables 57 field names entry integers entry strings STRINGS The field names created here include some not found in the standard BIBTEX styles The us
68. cessary tools out of BIBTEX primitives since no built in tools for this task are supplied There are two date formatting routines below The simpler of the two is format month year This is basically just the function supplied with the standard BIBTEX styles under a new name The LEXIBIB version of format date is underpinned by a whole set of new functions and allows great flexibility in the syntax for entering dates Old format routine The format date function is for the month and year but we give a warning if there s an empty year but the month is there and we return the empty string if they re both empty This is not changed over the format date function in the original standard BIBTEX styles It is retained although the distributed LEXIBIB styles won t be making use of it Expected Left 1 A single string Toggles 1 none 770 FUNCTION format month year 771 year empty 772 month empty 773 QUEE 774 there s a month but no year in cite warning 775 month 776 777 if 778 779 month empty 780 gt year 781 month year 782 if 783 h 784 if 785 17 This comment by Oren Patashnik 73 New date parsing routines The format date function depends upon a number of supporting functions Some of these are of general utility and are presented above Those presented here are specific to this particular function fillout a year This adds a leading 19 to a year entered in tw
69. cial issue and type this defaults to Special issue book This cross reference is not recognized by the law dtx style It could logi cally be used for a series but this is little trouble to type into the original book entry itself and a series is not something that should appear sepa rately on the reference list inbook This is used for cross referencing a chapter or other subdivision within a work by a single author to that work 15 supra incollection This is used for cross referencing a work by multiple authors The typeface conventions used in the Blue Book style differ for inbook and incollection citations as defined here so this distinction should be hon ored in building a database inproceedings This is used only cross referencing articles appearing to a pro ceedings volume to that volume 3 The Citation Engine camel sty 3 1 Initialization 3 1 1 Hello To start things off on the right foot we tell the world who we are 1 xlexitex 2 NeedsTeXFormat LaTeX2e 1994 12 01 ProvidesPackage camel 3 1995 13 01 v1 0 General bibliography engine Frank Bennett 4 ifclassloaded 1txdoc RequirePackage indexdmj 3 1 2 Customizable text elements The following definition specifies the string used to refer to a cite that occurs in a previous footnote or in a preceding citation to the same source within the same footnote It is not used in cross referencing cases and statutes The extra internal brace
70. ck in through the external table 604 catcode _ 13 catcode 13 catcode 13 605 gdef Claw clean 1 2 606 def protect 1 string 1 space 607 ifcat the 1 7 608 edef 2 609 else 610 def string 35 def_ string_ law barnil def exclaim string exclaim def hbox string hbox def amp string k def Z string Z def hskip string hskip def jintercharskip string jintercharskip def char string char def string def string def string def string def sc string sc space 621 def rm string rm space def bf string bf space 622 def em string em space 623 def string 624 def string def string 625 def string def string def string 626 def string def u string u def v string v 627 def H string H space def t string t space 628 def c string c space 629 def d string d space def b string b space 630 def oe string oe space 631 def ae string ae space def aa string aa space 632 def o string o space 633 def 1 string l space def ss string ss space 634 def 0E string 0E space def AE string AE space 635 def AA string AA space 636 def 0 string 0 space def L string L space 637 def dag string dag space def ddag string ddag space 638 def S string S space 639 def P string P space 640 def TeX string TeX space def LaTeX string La
71. dth Mlabelsep 232 def biblabel 1 233 if lawQusepages 234 let maybe relax 235 let camelfill dotfill 236 let camelarrow rightarrow 237 Ml 238 else 239 longestlabelfor 1 240 ifdim lawlengthtwo 0pt7 241 advance totalleftmargin Mlabelsep 242 advance linewidth Mlabelsep 243 def biblabel 1 244 ML 245 ML 246 NifOlawOrequiresubjects 247 law dobibliography 1 248 else 249 gdef lawOtemp 1 gdef law0temptwofall 250 ifx law temp law temptwo 251 law dobibliography 1 252 Nelse 253 message J J 254 Camel bibliography J 255 Document type without subjects J 256 Bibliography type subject specific 1 J 257 Action impossible task ignoring J 54 258 259 260 261 289 293 294 296 297 298 300 301 302 303 304 305 306 fi ML endgroup def law dobibliography 11 begin thebibliography longestlabelfor 1 rule lawlengthtwo 5pt if law table if law usepages addtolength parsep 5 parsep addtolength itemsep 5 itemsep 7 MR MR MifOlawOrequiresubjects law requiresubjectsfalse if law table message J J Camel bibliography J Document type subject classified cites J Bibliography type subject specific external 41 J Action generating J input jobname csname 1inputex
72. e following list of integers is probably also larger than it needs to be Again optimization of stack usage will lead to the elimination of some of these variables 1396 INTEGERS itemcount date specials charcount a b c 1397 nameptr namesleft numnames a logical These functions provide strings used in the parsing of Japanese legal citations If the language of such citations is not English these strings may need to be edited 1398 FUNCTION dc District Court 1399 FUNCTION sc Supreme Court 4 3 Function definitions 4 3 1 Logic and measurement These have been copied verbatim from Oren Patashnik s 1988 release His com mentary on these functions reads These three functions pop one or two integer arguments from the stack and push a single one either O or 1 The skip in the and and or functions are used because the corresponding if would be idempo tent Expected The result of a logical test The result of a second logical test Left A single logical test result Toggles 400 FUNCTION not 401 0 gt 402 1 403 if 404 y 405 FUNCTION and 406 i skip 407 pop 0 408 if 409 410 FUNCTION or 411 1 pop 1 gt 412 gt skip 413 if 414 y One of the date calculation routines requires string to integer conversion 59 BIBTgX primitives can only convert in this direction for single characters Ac cordingly we need to be able to raise by a
73. e of both the standard and these new items is fully documented elsewhere so no commentary is given here Suffice to say that each item in the list creates a field that subsequent code can work on 358 ENTRY 359 address 360 annote 361 author 362 booktitle 363 chapter 364 edition 365 editor 366 howpublished 367 institution 368 journal 369 key 370 month 371 note 372 number 373 organization 374 pages 375 publisher 376 school 377 series 378 title 379 type 380 volume 381 year 382 date 383 jurisdiction 384 court 385 division 386 divno 387 casedate 388 translator 389 booktranslator 390 cites 391 None are defined Note that any integers or strings defined with the ENTRY command are created for each entry in the citation list 1392 There are no general string variables either Such variables might be defined for use in building key labels for use in sorting or in an end of document bibliog raphy style 1393 4 label extra label sort label A few string macros are needed to hold things temporarily removed from the 58 INTEGERS FUNCTIONS not times ten stack BIBIEX only allows ten such string variables the named variables in this list will slowly be reduced in number through redesign of the functions that require them Meanwhile let s hope we don t find a sudden need for more 1394 STRINGS s t u v scrubdate 1395 volume var year var number var journal var pages var Th
74. eck 7 csname law law citesubject citelist endcsname 8 2 2 2 2 2 2 2 2 2 law citesubjectcheckend There are to be three sets of specialized parsing macros in LexiTeX all three of which are used on the options to the lexicite command One parser reads a list of options The second reads a comma and delimited list and writes the contents as a macro argument The third reads the same comma amp and delimited list and prints it directly on the output after a slight amount of formatting work Does a comparison executes the associated option if there is a match 219 def law plone 1 2 def law listitem 1 220 ifx law optionitem law listitem 2 221 let law finish fi The internal ending character is also common to all parsers 222 def law end If there is a match we want to ignore the rest of the list This is macro is defined and kept on the shelf until such time as we need to cut off the rest of the executable list macro below 223 def law finish 1 law nomatch If when we execute the list of options we do not find a match we want an error message to go to the terminal This is the macro that gives the appropriate error message 224 def law plnomatch camel error Citation Warning Invalid 225 option law optionitem 226 given to NstringNsource J 227 Valid options are J 228 a supresses printing of author s name in main text J 229 t suppresses prin
75. ed according to the option toggle pushed after the string Toggles m yields the string unchanged t yields all lower case letters except for the first yields all lower case letters u yields all upper case letters 597 FUNCTION change letter case 598 gt t 599 duplicate empty 600 skip 601 t chr to int n chr to int 602 skip 603 t change case 604 if 67 1605 1606 if 1607 n dashify The n dashify function makes each single in a string a double if it s not already Expected A single string for conversion Left A single converted string Toggles 608 FUNCTION n dashify 609 t 610 n 611 t empty not gt 612 t 1 1 substring 613 t 1 2 substring not 614 EM 615 t 2 global max substring t 616 Y 617 t 1 1 substring 618 5 o 619 t 2 global max substring t 620 621 while 622 623 if 624 625 t 1 1 substring 626 t 2 global max substring t 627 628 if 629 630 while 631 gather chars The following function was designed for date parsing but may find other uses as well It finds the first letter or numeral in a given string then proceeds to build a substring until it hits a different character type or the end of the string at which point it stops parsing and terminates 16This comment by Oren Patashnik 68 Expected lt A string for parsing
76. eep track of the number of cites in a footnote and to store the number that occurred in the previous footnote 114 newcounter citesinfoot 115 newcounter citeslastfoot 116 newcounter law paranormal 117 newcounter law parapin 118 newcounter law paracounter 3 1 8 Peek word ahead macro This macro will not work if it is placed after the string of Nnewifs below I haven t a clue as to why I m leery of whether this will cause problems with other styles If you have problems contact me on fb soas ac uk To provide inter cite nicknames and to handle the bracketing or forcing of multiple citations we need a macro that can peek one word ahead as opposed to one character All we need is something to fetch the next word with leading and trailing spaces cut off then call the IATEX ifnch routine that does the work of ifnextchar After execution the next word is stored in law word and any space immediately preceding the word is stored in law space These can be used in the two alternative arguments to the macro to restore the status quo ante if desired During the debugging of this I noticed that a preceding space was never found even when it existed I m puzzled by this but solving any problems it might give rise to will have to wait for another day 119 long def ifoverword 1 2 3 let reserved e 1 120 def reserved a 2 def reserved b 3 121 gdef preoverwordspace 122 futurelet reserved c ifowd 123 def
77. ent of the second two items depends first upon the contents of the integer variable date specials If this is 0 then the flags are ignored and the numerical items are assumed to be a day and a month in that order If date specials is 1 true then the flag of the first item is checked to see whether it is month If so the first item is assigned to the themonth variable and the next to the theday variable Otherwise the assignments are reversed 918 FUNCTION extract date 919 Lay Se g ee MI E M nie 920 itemcount 0 921 cites empty 922 some date or other is COMPLETELY empty in cite 923 warning 924 skip 925 if 926 927 itemcount 1 928 pop fillout a year s u t 929 itemcount 2 77 930 pop swap pop swap duplicate character length 4 931 swap swap s t 932 swap fillout a year s t 933 Jif 934 MSc id 935 Y 936 itemcount 3 937 date specials 938 pop fillout a year s 939 month 940 tis 941 pop u 942 lu 943 pop t 944 Jif 945 Y 946 pop fillout a year s 947 pop u 948 pop t 949 Jif 950 Y 951 too many items for date in cite warning 952 Jif 953 Jif 954 if 955 if 956 v duplicate month dd yy 957 pop s u V t long format month name 958 duplicate dd month yy 959 pop s V t lon
78. ents This declaration may be make more than once This command is used to indicate the bib files from which citation entries should be drawn As in the bibliography command of standard LXTEX the citationdata command takes one option which is a comma separated list of bibliographies for use in the documents Each refers to a bib file each of which should be in the path of your local BIBTEX While we hope that you find BIBIEX the most satisfactory means of formatting your citations you might prefer to use some other software product for the separate task of managing a large citation database CAMEL has been designed so that it can be used with a number of such utilities If you are using an external bibiliography manager you should declare the name of the package at the top of the document using the bibliographymanager command Supported managers and their corresponding nicknames for this command are e Reference Manager referencemanager e Papyrus papyrus e ProCite procite e EndNote endnote The details on how to join external bibliography managers with CAMEL are below at page 9 If you use the bibliographymanager command you should not use the citationdata command This is not felt to be a serious limitation if you use a bibliography manager you might as well put all of your citations into it anyway and use it as the sole source of citations in your documents You may wish to produce a bibliography classified into s
79. eoptionfacetemp 653 law unstasheverything 880 967 law unstashparas 604 law usepagesfalse 1224 lawQusepagestrue 1121 law usepinpointsfalse 1146 law Qusepinpointstrue 1120 law wlnomatch 329 339 345 law wordlist 340 346 N Ibibitem sogo daa on 472 NOlexicite cirios 360 361 ltok a 81 203 206 282 283 310 311 326 327 396 399 743 804 805 818 820 824 826 868 870 874 876 889 890 906 907 909 1199 1214 ltok argtwo 83 283 284 311 312 451 654 986 1001 1003 1004 1029 1039 1074 1078 1173 1174 1180 1186 ltok atbridge 13 111 738 859 910 937 1037 1041 ltok atbridgeplural 13 112 739 860 909 938 1037 ltok atot 13 105 732 1015 ltok author 12 96 651 892 958 984 1008 1047 ltok authormainface 12 85 649 670 671 687 1ltok authoroptionface DO dk 12 86 650 672 673 688 1tok b 82 397 399 819 820 825 826 869 870 875 876 1206 1212 1214 ltok bigsourcecite 103 771 901 949 ltok bigsourcepage 104 770 902 948 NOLtok0C wee tice in 398 399 714 723 732 1200 1205 1211 ltok citefirst 12 98 659 862 894 956 984 1009 1048 ltok citefirstmainface 12 89 657 678 679 691 ltok citefirstoptionface B rats 12 90 658 680 681 692 ltok citelast 12 100 661 864 896 954 985 1017 1024 1049
80. er 2568 def batchfile camel ins 2569 input docstrip tex 2570 preamble 2571 2572 Copyright C 1992 95 Frank Bennett Jr 2573 All rights reserved 2574 91 2575 This file is part of the Camel package 2576 Nendpreamble 2577 2578 def batchfile camel dst ignored in distribution 2579 Ninput docstrip tex ignored in distribution 2580 2581 Ask answer 7 2582 kakak 3k ak ak k ak 3k ak ak 3k ak 3K ak ak 3k ak 3K ak ak 3K ak 3K 3K ak 3K 3K ak 3K aK ak 3k ak ak 3K aK gt k 3K aK ak 3K aK 2K 3K aK 2K 3K K 2K 3K ak 3K 3K K 2K K K K K K 2583 J PLEASE NOTE 2584 77 Ix 2585 J Camel requires a large BibTeX with a wizard defined 2586 J function space of over 6 000 The function space in 2587 J standard BibTeX is only 3 000 so if your BibTeX has never 2588 J been enlarged it will probably need to be recompiled 2589 7 J 2590 J If this seems terribly cryptic just go ahead and give 2591 J it a go Feel free to write me on fb soas ac uk if you 2592 J have problems 2593 7 J 2594 J Also to print the dtx files in the Camel bundle you 2595 J should use the usual gind ist file for making the indexes 2596 J camel ist is used for special purposes outlined in the 2597 J manual 2598 7 J 2599 J Shall I unpack my things 2600 7 J 2601 J If you want me to go ahead answer y below otherwise n 2602 77 J 2603 Jwkokokokekokokekelokeleleloleke
81. erateFile camel ist t from camel dtx camelindex 2648 2649 2650 Msg Generating BibTeX data file for the manual bib 2651 2652 generateFile camel bib t from camel dtx bib 2653 2654 2655 Msg Generating sample text file to mess around with tex 2656 2657 generateFile test tex t from camel dtx testtex 2658 2659 2660 Msg Generating parser demonstration file tex 2661 2662 generateFile parsdemo tex t from camel dtx parseonly 2663 2664 fi 2665 2666 keepsilent 2667 2668 2669 ifToplevel 2670 MMsg Diokookoekkolelokokokokoelolelololokekokokokololelelelololokolololololelolololollolelelelololololelelelelololoior 2671 Msg 2672 Msg To finish the installation you have to move the following 2673 Msg file into a directory searched by TeX 2674 Msg 93 2675 Msg NspaceNspace camel sty 2676 Msg 2677 Msg You also need to move the following file into a directory 2678 Msg searched by makeindex 2679 Msg 2680 Msg space space camel ist 2681 Msg 2682 Msg Note that Camel does not work by itself style modules 2683 Msg such as law dtx are supplied separately They can 2684 Msg be found on CTAN in the styles subdirectory below 2685 Msg Camel itself 2686 Msg 2687 MMsg xokookokokokokokokokokokokokokokokekokokokokekokokokekokokokokekokokekokokokokeokeokokokokeokeokokeokeokokeokeokekeokoe
82. ermined by BIBTEX The tasks of punctuation and typeface selection are carried out on the second run of IATEX on the document using the details specified in the cit file for the CAMEL citaton style being used It is worth spending some time pondering this programming flow there are good reasons for spreading the formatting work over a number of different modules in this way and it is important to understand the design before embarking on the drafting of a style 2 2 The cst file The cst file should contain at least the following macros law print This is the macro that actually prints the citations in the document and in the bibliography Its structure is discussed below in the commented 10 if law firstuseofcite if justabove if 1 quiteexact if law intextcite code listing of the default law print command which draws on most of the conditional handles provided by CAMEL law wordlist This is a list macro consisting of paired interword nicknames and corresponding punctuation text sets Possible changes you may wish to make to this file are discussed in the commented code description of this macro Additional macros including re definitions of the macros contained in the CAMEL engine may be included in the cst file Be sure to document your work how ever CAMEL is among the more complex packages written for use with TEX and documentation is essential if problems that arise are to be sorted out quickly
83. essed input file Optionally you may also include arguments of p or P With p the output file will be passed the page or section numbers given in pinpoint arguments to the source command With P index style page references to the main text are turned on With or without the P or p the export file should be processed with makeindex using CAMEL s own camel ist file to produce the import file This table creation feature exists principally for typesetting tables of statutes If you are preparing a document that is to be or may be prepared with citations in footnotes at the bottom of the page you can save yourself some typing and make it easier to produce the same document in other formats by using the forcefootnotes command at the top of the document In some styles this command has no effect since for example a footnote containing only 2 would look rather peculiar In a string citation you may want to use a connecting word that is not already in CAMEL s internal list You can add a word to this list with the newinterword command This command takes two mandatory arguments The first is the nick name you wish to give to the word and its associated punctuation The second is the text to be inserted when you use the new connecting word between two source commands The connecting word may appear either at the beginning of a citation string as the argument to a option in the first source command of a string or in the middle
84. et al char used 2186 2187 FUNCTION initialize et al char used 2188 4 0 et al char used 2189 2190 2191 EXECUTE initialize et al char used 2192 2193 FUNCTION format lab names 21944 s 2195 s num names numnames 2196 numnames 1 gt 2197 numnames 4 gt 2198 3 namesleft 2199 numnames namesleft 2200 if 2201 1 nameptr 2202 q 2203 namesleft 0 gt 2204 nameptr numnames 2205 s nameptr ff vv 11 jj format name others 2206 etalchar 2207 1 et al char used 2208 2209 s nameptr v 1 format name 2210 if 2211 2212 s nameptr v 1 format name 2213 if 2214 nameptr 1 nameptr 2215 namesleft 1 namesleft 2216 2217 while 2218 numnames 4 gt 2219 etalchar 2220 1 et al char used 2221 2222 gt skip 2223 if 2224 2225 s 1 v 1 format name 2226 duplicate text length 2 lt 2227 pop s 1 11 format name 3 text prefix 2228 gt skip 2229 if 2230 2231 if 2232 84 2233 2234 FUNCTION author key label 2235 author empty 2236 key empty 2237 cite 1 3 substring 2238 key 3 text prefix 2239 if 2240 Y 2241 author format lab names 2242 if 2243 2244 2245 FUNCTION author editor key label 2246 author empty 2247 editor empty 2248 key e
85. ext and source code contained in this file are 1992 1995 by Frank G Bennett Jr oo ANA This file can be freely distributed the sole condition of use is that acknowledgement to the author be made in any published work produced using CAMEL The author wishes to thank Pedro Aphalo Steve Bellovin George Greenwade and Boris Pevzner and David Rhead for their helpful comments on versions of LEX TEX the predecessor to CAMEL In addition David Rhead provided a mass of information on bibliographic conventions which was used in shaping the options supported by this package Gratitude is also owed to Marcia Elliot and Yoshiko Makino LL B finalists in the Law Department of the School of Oriental and African Studies in 1993 and 1994 respectively who prepared extended essays using early releases of LEX I EX 2 Notes for Implementors 2 1 Getting started Ro ae ee Yu xU WO E WS 2 25 Th cst les x TN 2 3 Toggles and hooks for the cit file 2 3 1 Citation history sik wk RR Rs Room moy Se a LA 2 8 2 Formatting toggles 2 2 0 2 0 e 2 3 3 cbypetaces cu use e e EN ws dir 2 3 4 Citation details pi p s a a 22e 2 3 5 Bridges 3 6 55 E ge A A ET E a as ad 8 2 3 6 Pinpoint printing ooo eA 244 Phe evt ile aia rana eee en di iA et Mul lo dU ik ah uid T a Bey 2 5 The best tl x cr a a e eee d 2 5 1 Entfy typeS 4 eo bb iR Ree 2 5 2 About cross referencing een 3 The Citation Engine camel sty Sil i
86. f the character during this definition 976 catcode 13 977 long gdef law setup The following operations restash the citation details if necessary by this point we will have grabbed any parallel citation details that we needed The backslash character is redefined as a self resetting font switching macro 978 NdefNOlawOfirstslash NbegingroupNdef law secondslash 979 the ltokspecialface 980 def law secondslash endgroup def law firstslash 981 def law firstslash This carries out the necessary checks on the context of the current citation 982 law justabovecheck Now that the law justabovecheck macro has been run it is time to set up for the next comparison Take note that this source was cited and of any specific page reference it contains IF we are in a footnote 983 if law infoot 984 xdef law currentcite the ltok author the ltok name the ltok citefirst 985 the 1ltok citepage the ltok citelast 986 xdef law lastpage the ltok argtwo 987 fi 988 Nbegingroup 989 MOlawOtidybridges 990 ifx law citesubject empty 991 Xrelax 992 Nelse 993 NMifOlawObibentry 994 Nelse 995 ifnum the c law paranormal 0 relax 996 csname write one law citesubject Centrylendcsname 997 Md 998 ML 999 fik 1000 Nendgroup 47 1000 ifcat the ltok argtwo 1002 else 1003 xdef law argtwolist the ltok argtwo 1004 law pincut ltok argtwo frompinlis
87. fields pushed onto the stack in the entry type functions themselves This approach increases the transparency of your code because you can see in the entry type function itself exactly what fields are being used and what logical and formatting operations are being carried out on them Using the library is highly recommended If you find that you require functions that are not presently available in the library you can make your solutions available to others by adhering to a few design guidelines and passing the function on to fb soas ac uk for inclusion in the CAMEL distribution The guidelines are actually quite simple No library function should directly manipulate a field but should instead expect to find the field on the stack when it is invoked No library function should make assumptions about the setting of variables any parameters should also be passed to the stack before the library function is invoked When 14 finished a library function should always leave a fixed number of items on the stack in a fixed order And a library function should not pass data to subsequent functions in the form of variables Finally a function should be documented concerning a the number of items it expects to find on the stack and in what order b the number of items it leaves on the stack and in what order and c the effect of any toggle strings that may be fed to the function You may find it necessary in drafting a function to divide its o
88. g format month name X u 960 duplicate mo dd yy 961 pop s u NV t short format month name 962 duplicate dd mo yy 963 pop s V t short format month name NV u 964 duplicate dd mm yy 965 pop s t u 966 duplicate mm dd yy 967 s 7 uM at 968 yy 969 me ee a 970 invalid date toggle in style file warning 971 if 972 if 973 Jif 974 Jif 975 Jif 976 if 977 Jif 978 AS 979 duplicate empty T8 980 pop pop gt 981 swap v 982 if 983 duplicate empty 984 pop pop 985 swap v swap v 986 if 987 duplicate empty 988 pop v gt 989 v swap 990 if 991 topup date This is used to perform an addition operation on a string of numerals Expected An integer to be added A string consisting of numerals only Left A string consisting of the sum of the integer and the numeric string Toggles 992 FUNCTION topup date 993 a 994 duplicate character length 2 995 duplicate 1 1 substring chr to int 48 996 times ten swap 2 1 substring chr to int 48 997 998 999 duplicate character length 1 2000 chr to int 48 2001 pop 0 I can t cope with more than two Japanese year digits in 2002 cite warning 2003 if 2004 jif 2005 a int to str 2006 format jdate This rather specialized function converts a Japanese Imperial d
89. g court Statutes Support for statutes is still in its infancy You need at minimum to enter title year and jurisdiction Supported jurisdictions are japan singapore and england Dates The entry of dates has been considerably simplified in CAMEL BIBTEX entries Always use the year field or if appropriate the casedate field Months may be entered as numbers or as a three character string The following date forms are all valid year 10 jun 1995 year jun 10 1995 year jun 1995 year 1995 year 10 06 95 Parallel citations For CASE entries it is possible to enter multiple citations in a single BIBTEX entry using a short form of citation in a field called cites separating entries with a character There are several valid syntaxes for this field which closely follow the citation format used in the Blue Book for the relevant sources They are cites 1995 1 All ER 25 1995 2 WLR 125 cites 123 Cal 3d 237 1995 124 S W 2d 235 1995 You can create an arbitrary number of parallel citations in this way Be sure to read the notes on pinpointing above for details on how to specify pinpoint references to parallel citations 1 3 Processing documents Ordinary processing For a simple document containing no cross references other than those produced by CAMEL printing requires one run of IATEX one run of BIBTEX and a second 9Tt actually does work Halsall v Brizell 1957 Ch 169
90. h demo plnomatch 2828 def demo optionitem 1 let demo plone demo sourceoptionlist parse 2829 def parse demo parse 2830 MdefXparsedemott14 2831 let demo parse demo parseplain demo parse 1 end 2832 2833 makeatother 2834 tracingmacros 2 2835 parsedemo a b Whoopie 2836 end document 2837 parseonly Index The italic numbers denote the pages where the corresponding entry is described numbers underlined point to the definition all others indicate the places where it is used Symbols demo parse 2817 lexicite 376 378 385 387 395 2818 2820 2823 2825 2829 2831 Q ifowd Lo ooo 126 128 demo parsebumequal 2818 2825 lexicite 362 375 demo parsecomma 2817 2822 lexicitenobrace 363 384 demo parsemacro 2815 2823 newcite 790 801 802 demo parseplain parse ITO DTI OTA e r e A 2823 2825 2826 2831 275 275 321 324 430 1136 demo plnomatch 2800 2827 1137 1140 2824 2825 2828 2829 demo plone 2795 2828 NOMM ta Ln tax rom na VES 411 demo sourceoptionlist 2813 2828 SBSword 327 378 387 394 398 429 dummy 405 auxout 465 482 502 526 finalstrut 421 NXObibitem cx bere EReIS 473 footnotetext 400 biblabel 472 1232 1243 ifclassloaded
91. h cited section of the statute are made in the text If your citation includes references to more than one section of the statute CAMEL will produce a table entry for each cited section automatically But what if you are citing a range of sections CAMEL cannot know whether the range is continuous or has gaps in it where provisions have been repealed You therefore need to tell CAMEL explicitly about each section number but you don t want the numbers to be printed in the text To feed citation numbers to the table but suppress printing in the document separate the numbers to hidden from the rest with a fence in the form of the character A typical citation of this kind might look like this source SaleofGoodsAct 19 25 20 21 22 23 24 There are two other situations also related only to the production of tables where special markings may need to be included in the pinpointing string These are a where you want material to appear only in the text and b where you want material to appear only in the table The first case may arise where you are citing subsections of a statute In this situation you can enclose in characters any text that you want to withhold from the table A simple citation of this kind might look as follows source VehicleCode 23 A 7 3 a 1 Where material should appear only in the table enclose that pinpoint material in _ characters This might be necessary where for example you
92. he Camel manual for explanation 516 2T 517 518 def bibliographymanager 1 7 519 def citationdata camel error string citationdata space 520 following NstringNbibliographymanager J 521 You can use only one of string citationdata space and 522 NstringVbibliographymanagerNspace J at the start of a 523 document or after a 524 string printthebibliography space command ehc 525 MfOfilesw 526 immediate write auxout string bibdata camel 527 fik 528 ifundefined law wordlist 529 gdef law bibfile jobname bb1 530 begin lexilist 531 input jobname bbl 532 end lexilist 533 newwrite bibout 534 immediate openout bibout camel bib 535 gdef lawGtemp 1 536 gdef law temptwo procite 537 ifx law temp law temptwo 538 def law managerouthook 1 G1 539 Mfi 54 gdef law temptwo endnote 54 ifx law temp law temptwo7 54 def law managerouthook 1 1 543 Mif 54 gdef law temptwo papyrus 7 54 ifx law temp law temptwo7 54 def law managerouthook 1 Z A 1 Z ZF 547 Mfi 54 NgdefXClawOtemptwolreferencemanager 54 ifx law temp law temptwo7 550 def law managerouthook 1 1 551 Mfi 552 gdef law temptwo tib 553 ifx law temp law temptwo 554 def law managerouthook 1 1 555 fi OANA A BR WHY FrH O lexibib This is used by LEXIBIB to declare citations in a lexilist environment Use of
93. horthanding essentials The following definitions are established as a means of cutting text using the _ and characters Although we make them active here they are not read as 12A UNIFORM SYSTEM OF CITATION 19th ed 1989 13 See Id at 25 17 active characters CAMEL should in no way interfere with styles that require these characters to be set active The active characters created here are used only for internal purposes 39 40 Ncatcode N 13 41 catcode 13 42 catcode 13 43 gdef law barkill def law comma 44 def law ampersand Me YA 45 def law dash 46 def law delim def_ 1_ def 1 relax def 47 gdef law barnil def_ def 1 def 48 gdef law barinfull def 49 gdef law barinshort def 17 50 51 def bridges 1 2 3 4 5 6 52 ltok userconetop 1 53 ltok userconetopplural 2 54 ltok userptop 3 55 ltok userptoctwo 4 7 56 ltok useratbridge 5 57 ltok useratbridgeplural 6 58 3 1 5 Miscellaneous other macros Sometimes it might be nice to avoid using for some reason so a macro is defined here Same thing for exclamation points One possible use for the latter is to avoid errors when an exported table is sorted by makeindex 59 def dash 60 def exclaim The Id macro contains its own period Therefore a period supplied by the user becomes redundant This macro is redefined to gobble this ext
94. ide Expected A single string in appropriate date syntax Left Toggles 2031 FUNCTION format date 2032 i w 2033 empty to null s 80 2034 2035 2036 2037 2038 2039 204 204 204 204 204 204 204 204 204 204 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 OA NAA BP WN Fr O 0 charcount 0 itemcount 0 date specials s empty not s forward gather chars duplicate letter pop duplicate character length 1 itemcount not and pop pop s format jdate s duplicate character length 3 swap s parse month month 1 date specials swap s pop 1 invalid date in cite warning passing text to Camel verbatim warning t scrubdate default if Jif numeral duplicate character length 1 swap s default duplicate character length 2 swap s default duplicate character length 4 swap s default swap s pop 1 invalid numerical element in date for cite warning passing text to Camel verbatim warning t scrubdate default Jit Jit if F swap s pop 1 failed to parse date in cite warning default if if itemcount 1 itemcount while v extract date
95. imply the field or null function from the standard styles renamed so that 1 could more easily remember what it does Invoked only by the output routines it assures that empty field markers are replaced with the null string to prevent smash ups Expected The contents of a field which may be an empty field marker Left lt A string possibly the null string Toggles 1 none 1510 FUNCTION empty to null 1511 duplicate empty 1512 pop gt 1513 gt skip 1514 if 1515 This check function isolates the production of warning messages from the out put routines to enhance transparency Note that this will not convert an empty field marker to the null string that is left to the output routines Expected A string for use in an error message The contents of a field Left The field contents Toggles 1516 FUNCTION check 1517 t 1518 duplicate empty 1519 empty t in cite warning 1520 skip 1521 if 1522 This checks whether one of a two item pair is empty If at least one is empty the other is returned to the stack If both are non empty a warning is issued and one item is arbitrarily selected 63 Expected A string A string Left A single string Toggles 523 FUNCTION either or 524 duplicate empty 525 pop duplicate empty 526 pop 527 gt skip 528 if 529 530 swap duplicate empty 531 1 pop
96. ing else expandafter gdef csname write one 2 entry endcsname def Glaw temp index 2 7 NedefNOlawOtemptwoi noexpand string bibitem string source bZ csname law the ltok nickname Clablendcsname string the ltok nickname string string maybe noexpand expandafter law temp law temptwot M M 1tok a expandafter law subjectlist 1ltok c expandafter law bibformat if law usepinpoints edef law temp noexpand noexpand 2 noexpand 7 noexpand p noexpand noexpand 3 noexpand noexpand the 1ltok c noexpand 1tok b expandafter law temp else edef law temp noexpand noexpand 2 noexpand noexpand law level noexpand 53 0 noexpand 3 noexpand 1 noexpand the 1ltok c noexpand 2 1tok b expandafter law temp 3 Mil 4 edef law subjectlist the ltok a the 1ltok b N N NNN printbibliography To print bibliographies we use a single command with two modes built into it 215 def printbibliography 1 216 let camelrefname refname 217 Nexpandafterlifxlcsnamettlinputextlendcsnamerelax 2 2 8 global law tablefalse 9 else 220 global law tabletrue 221 Mfi 222 MXbegingroup 223 def refname law getsubjectheader 1 224 law usepagesfalse 225 law getbibformat 1 226 let maybe gobble 227 let camelfill relax 228 let camelarrow relax 229 if law table 230 advance totalleftmargin Mlabelsep 231 advance linewi
97. ing of the lexicite tex file If you find permutations that are not represented here let me know and I ll add them 3 5 Macros for data export This macro toggles on the requirement that every citation be assigned to a subject category and adds a subject to the subject list with all of the information needed to create a classified bibliography This information consists of 1 The nickname for the category used as the argument to the s option in each citation 50 law end law slnomatch longestlabelfor law sourceoptionlist 2 The title for use in the bibliography An optional argument of t creates a table and must be accompanied by o and i options giving the extensions of the input and output files and by h and optionally may be accompanied by an option of p to include poinpoints in the table 087 xlexitex 088 def law slone 1 2 def law listitem 1 0890 ifx lLaw optionitem law listitem 2 090 let law finish fi The internal ending character is also common to all parsers 091 def law end If when we execute the list of options we do not find a match we want an error message to go to the terminal This is the macro that gives the appropriate error message 092 def law slnomatch camel error Citation Warning Invalid 093 option law optionitem 094 given to Astringlcitationsubject J 095 Valid options are J 096 2 force a second level header for a
98. interlinepenalty interfootnotelinepenalty 410 splittopskip footnotesep 411 splitmaxdepth dp strutbox floatingpenalty MM 412 hsize columnwidth parboxrestore 413 let tempa protect 414 def protect noexpand protect noexpand 415 edef currentlabel csname p footnote endcsname thefnmark 416 let protect tempa A17 color begingroup 418 normalcolor 419 Qmakefntext 420 rule z footnotesep ignorespaces 1 421 finalstrut strutbox 422 color endgroup We require a simple parser to allow multiple citation keys in the scope of a single source command We ignore any pinpoint given after the source command if you re using pinpoints write individual source commands into your text This keeps things relatively clean and simple for future linking to intelligent editors The voiding of 1tok argtwo is going to be redundant if there are more than two keys in the scope but what the heck it s simple this way Intervening punctuation is assumed to be the default which is signified by the character Note that any leading options will carry through to all of the citations in the key string If you want to suppress the author say for only one citation you d better use a separate source command for that citation and link it to the string with an inter word 423 def law clparseplain 1 424 ifnextchar 425 def law temp law onerealcite 1 426 expandafter law temp gobble 427 la
99. irst printing of the cite The note page and footnote page number details need to be stored and then everything has to be repacked for future reference under the appropriate list macro name The list macro strategy allows on the fly editing of macros which adds greatly to the flexibility of the style Note the parabeta guard below When we turn on support for parallel citations we will need to do the restash work later after checking for any attached items 880 def law unstasheverything 1 881 gdef law gobble 882 if law infoot 883 addtocounter citesinfoot 1 884 Mif 885 expandafter let expandafter law templistmacro csname ldata 1 endcsname 886 global c law footnote c footnote 887 law cut ltok plistmacro fromcitelisty 888 xdef law tempplistmacro the ltok plistmacro 889 law cut ltok a fromcitelist 890 expandafter c law paranormal the ltok a 891 law cut ltok nickname fromcitelisty 892 law cut ltok author fromcitelisty 893 law cut ltok name fromcitelisty 894 law cut ltok citefirst fromcitelist 895 law cut ltok citepage fromcitelist 896 law cut ltok citelast fromcitelisty 897 law cut ltok citetype fromcitelisty 898 law cut ltok whereitsat fromcitelisty 899 law cut 1ltok pageorfootno fromcitelist 900 Law cut ltok hereinafter fromcitelisty 901 law cut ltok bigsourcecite fromcitelist not yet implemented 902 law cut ltok bigsourcepage fromcitelist n
100. iteexact 142 if law bibentry 136 993 if law firstuseofcite 137 if law forcefootnotes 37 435 if law infoot 140 432 882 925 983 if law intextcite 139 if law listinputting 135 814 if law longcite 138 if law maketable 133 1153 if lawQmultipages 144 1035 if law printauthor 145 if law printcite 134 if law printtitle 146 if law requiresubjects 147 256 350 448 918 1246 1270 if law specialbridges 740 932 if law statuteverbose 33 if law subjectfound 148 if law table 131 1229 1264 1272 if law usepages 130 1233 1265 if law usepinpoints 132 1171 1201 if nosupra ooo 143 Mifdim oy cede abe iodo 1240 ifthree ifthree might environ inenb eoi anir 9 tg Sea eN 66 ifTopleveds coto band Re ENLAAA 2669 iftwo might iftwo environment 65 inputlineno 331 1337 Ainsert cf ace caw ee ek e 400 INTEGERS environment 59 interfootnotelinepenalty 409 Minterlinepenalty 409 itemseps 5e ib 1267 Mtemspace 1168 J jimtercharskip 617 K keepsilent 2605 2666 L Mabelsep 1230 1231 1241 1242 XbaleX gga en aga 640 2496 2502 lawlengthone 1106 1108 1109 1113 lawlengthtwo 1107 1109 1110 1114 1240 1263 NLGXABIbY 058 Gh oe Le He TT lexibib 55
101. ith the various options This will serve you much better than a verbose set of illustrations here which would not stick in the memory would be difficult to use as a reference and could not in any case cover all of the possibilities The following citations are all valid e source ats school ucla e source av 8 t harvard e source s town nat oxford A string of citations applying to a particular statement may be entered as follows e Nsource options nickname page numbers interword Xsource options nickname page numbers Keys The key given in the squiggly braces should correspond to the key that identifies the entry in the BIBIEX or other database that you are using If you have a series of citations to make and do not need to give separate options to any of them you can enter them as a comma delimited string in the following manner source s stooges joe curly moe Pinpoints For most citations pinpoint references are simply typed between the second pair of square braces using normal punctuation marks amp Spacing is irrelevant so long as the punctuation marks are entered A valid simple pinpoint citation might look as follows source major 2 7 9 23 In some very special situations CAMEL needs more information to handle pinpoint references correctly Suppose you are entering a citation for a statute and you intend to produce a table showing where references to eac
102. k citelast ltok usercitelast 865 def law addpargument 1 tolist 866 addtocounter law paranormal 1 867 law rightappendpargument 1 to law tempplistmacro 868 long def law rightappendpargument 1 to 2 ltok a 1 869 ltok b expandafter 2 7 870 xdef 2 the 1tok b the 1tok a 871 def law addptoken 1 tolist law leftappendptoken 1 to law tempplistmacro 872 long def law leftappendptoken 1 to 2 7 43 873 xdef law temp noexpand noexpand the 1 noexpand 874 1tok a expandafter law temp 875 ltok b expandafter 2 876 xdef 2 the 1tok a the 1tok b 877 def law pcut 1 fromlist law plop law tempplistmacro to 1 878 def law plop 1 to 2 expandafter law plopoff 1 law plopoff 1 2 879 long def law plopoff 1 2 law plopoff 3 4 gdef 4 1 gdef 3 2 This macro turns off the gobbling feature it may be turned on during exe cution if Id is used erases any pinpoint reference information that is hanging around and if we are in a footnote it increments the counter that was set to zero at the start of the footnote It then unpacks all of the info for the cite whose nick name is given in 1 and puts it into token registers for further processing After it unpacks the list macro ldata nickname it unpacks the formatting details appropriate to the style in which it was declared After the list is unpacked if there is no record of a footnote or page number then this is the f
103. l system is to massage those details into formatted citations and include them in appropriate locations in typeset pages When a document invoking the CAMEL package encounters a Ncitationstyle command the relevant cst and cit files are loaded A corresponding bibstyle entry is also written on the aux file A Ncitationdata command causes a relevant Nbibdata command to be written there as well If a bibliographymanager declaration is used instead a bibdata entry calling on the file camel bib is written to aux When a source command is encountered during processing code contained in camel sty writes 8 Ncitation entry for that citation on the aux file In this way an orthodox set of entries and files for use with BIBTEX is generated If an external bibliography manager is used the file camel bib must be con verted into a valid bib file using whatever tools for finding and replacing key entries the database manager has to offer BIBTEX must then be run on the document This reads the entries on the aux file opens the bib databases reads them and writes the result of its ruminations on a bbl file At this point the operation of CAMEL diverges sharply from that of conventional IXTEX bibliography tools With CAMEL BIBIEX is used to generate lexibib entries on the bb1 file Such entries parse the citation into logical typesetting units but the typefaces used within the units and the punctuation that appears between them is not det
104. law cleanup 604 648 law clparseplain 423 455 law comma 43 319 1175 law conetoptemp 660 law confirmsubject 178 198 449 law currentcite 403 984 1054 1062 law cut 827 887 889 891 903 906 910 914 law dash 45 297 1177 law delim 29 46 286 289 295 307 314 317 1173 1179 law dobibliography 1247 1251 1262 law end 222 222 1091 1091 law exportapage 1175 1179 1188 law extractparas 839 840 law fetchparas 833 law finish 221 223 223 328 1090 law finishargtwo 309 315 law firstslash 12 978 980 981 law firstuseofcitefalse 470 law firstuseofcitetrue 924 law forcefootnotestrue 38 law get bar 302 307 law get carat 301 306 law get ul 300 304 305 law getbar 304 law getbibformat 175 1225 law getcarat 304 law getlabel 1108 1115 law getpara 785 792 794 law getsubjectheader 155 164 1223 law gobble 61 382 391 436 881 law grabhereinafter 972 974 law headersearch 157 166 law headersearchend law hidecomment 567 567 569 570 575 588 588 590 591 596 law hidefacts law hideholding 557 557 559 560 565 law hidequestions 577 578 580 581 586 401
105. law infoottrue law intextcitefalse law intextcitetrue 252 law justabovecheck 982 1046 1046 lLaw justabovecheckdetails 1052 1055 1063 1069 law lastcite 403 405 1050 law lastpage 986 1070 1079 law leftappendargument 817 818 law leftappendptoken 871 872 law leftappendtoken 821 822 law lettercase 6 149 150 law level 1118 1119 1145 1209 law listinputtingfalse 80 law listinputtingtrue 79 law listitem 219 220 1088 1089 law longcitetrue 251 253 law lop 827 828 law lopoff 828 829 law makecitenick 813 965 lawQmaketablefalse 1147 lawQmaketabletrue 1126 Law managerouthook 468 538 542 546 550 554 law maybeaddcitesubject TTC 200 215 923 XelawOmultipagesfalse 293 357 NOlawOmultipagestrue 287 296 318 lawOQnametemp 655 law newcite 973 law newcitefirst 969 970 law newcitesecond 972 law nick 814 815 law nickname 211 law nomatch 223 266 267 273 323 339 345 1132 1133 1139 law onerealcite 425 427 457 law optionitem 220 225 274 1089 1093 1140 law outputext 1122 1170 law paracheckone 784 785 785 law parachecktwo 785 788 791 800 99 law parse 255 258 263 264
106. lid BIBIEX bib entries and is run over this file the resulting file can be used as an input file for BIBIEX Simple Clean IATEX 474 def law subjectlist 475 def citationstyle 1 476 NifxlClawOsubjectlistlempty ATT def law citesubject all 478 expandafter gdef csname law all citelist endcsname 479 def law subjectlist all camelrefname 480 Mfi 481 if filesw 482 immediate write auxout string bibstyle 1 483 Mfi 484 def law savecat catcode O 485 makeatletter 486 input 1 cst 487 input 1 cit 488 catcode law savecat 489 ifundefined law bblfile y 490 relax 491 begin lexilist 492 input law bblfile 493 end lexilist 494 def citationdata 1 7 495 def bibliographymanager camel error string bibliographymanager space 496 following NstringNcitationdata J 497 You can use only one of string citationdata space and 498 NstringNMbibliographymanagerNspace J at the start of a document 499 or after a 500 string printthebibliography space command ehc 501 if filesw 502 immediate write auxout string bibdata 1 503 Mif 504 ifundefined law wordlist 505 gdef law bblfile jobname bb1 506 begin lexilist 507 input jobname bbl 508 end lexilist 509 def camel error 1 2 510 GenericError 511 space space space spaces spaces spaces 512 H 32 513 Camel Error 1 514 KA 515 See t
107. loleleloleleleloleleolelelelolelekelololeleloleleleloleleleleleleleleleleelelelelelelelek 2604 2605 Nkeepsilent 2606 2607 Npreamble 2608 2609 This file is part of the Camel package 2010 en 2611 This is a generated file 2612 2613 IMPORTANT NOTICE 2614 2615 You are not allowed to change this file You may however copy 2616 this file to a file with a different name and then change the 2617 copy if a you do not charge for the modified code b you 2618 acknowledge Camel and its author s in the new file if it 2619 is distributed to others and c you attach these same 2620 conditions to the new file 2621 2622 You are not allowed to distribute this file alone You are not 2623 allowed to take money for the distribution or use of this file 2624 or a changed version except for a nominal charge for copying 92 2625 etc 2626 2627 You are allowed to distribute this file under the condition that 2628 it is distributed with all of its contents intact 2629 2630 For error reports or offers to help make Camel a more powerful 2631 friendlier and better package please contact me on 2632 fb at soas ac uk 2633 2634 Nendpreamble 2635 2636 2637 ifx answer y 2638 2639 2640 Msg Generating LaTeX style file sty 2641 2642 generateFile camel sty t from camel dtx lexitex 2643 2644 2645 Msg Generating makeindex style file ist 2646 2647 gen
108. mpty 2249 cite 1 3 substring 2250 key 3 text prefix 2251 if 2252 2253 editor format lab names 2254 if 2255 2256 author format lab names 2257 if 2258 2259 2260 FUNCTION author key organization label 2261 author empty 2262 key empty 2263 organization empty 2264 cite 1 3 substring 2265 The 4 organization chop word 3 text prefix 2266 if 2267 h 2268 key 3 text prefix 2269 if 2270 Y 2271 author format lab names 2272 if 2273 Y 2274 2275 FUNCTION editor key organization label 2276 editor empty 2277 key empty 2278 organization empty 2279 cite 1 3 substring 2280 The 4 organization chop word 3 text prefix 2281 if 2282 85 2283 key 3 text prefix 2284 if 2285 2286 editor format lab names 2287 if 2288 2289 2290 FUNCTION calc label 2291 4 type book 2292 type inbook 2293 or 2294 author editor key label 2295 type proceedings 2296 editor key organization label 2297 type manual 2298 gt author key organization label 2299 author key label 2300 if 2301 2302 if 2303 Y 2304 if 2305 duplicate 2306 year yy format date purify 1 2 substring 2307 2308 label 2309 year yy format date purify 1 4 substring 2310 2311 sortify sort label 2312 2313 2314 FUNCTION sort format names 23151 s
109. ng 1429 FUNCTION first in second 1430 s 1431 duplicate empty 60 432 pop pop 0 0 433 swap duplicate character length a 434 swap duplicate character length b 435 ba lt 436 pop pop 0 0 437 s end 438 ba 1 global max substring 439 ba 1 1 440 0 0 441 Jif 442 443 s start 444 1 a substring 445 1 1 446 0 447 Jif 448 449 s reverse 450 ba 1 b 451 b 0 gt 452 duplicate 453 b a substring 454 s 455 swap duplicate s 456 pop pop b 0 b 1 gt 457 b 1 458 pop pop 0 0 b 0 459 swap b 1 b 460 Jif 461 Jif 462 while 463 Y 464 ba Hti c b 81 c 465 cb lt 466 duplicate 467 c a substring 468 Ss 469 swap duplicate s ATO pop pop c b c 1 471 bc 1 472 pop pop 0 b c 0 473 swap c 1 c 474 Jif 475 Jif 476 while 477 Jif 478 Jif 479 Jif 480 yif 481 Jif 61 1482 get character type This function returns one of three strings letter numeral or other to indicate the type of the character it finds on the stack This was writ ten for use in the gather chars function but may find other uses as well Expected Either or a single character to be scanned for A single character to be examined by the function Left Either lette
110. ng number var Jit pop number var Jit duplicate empty pop volume var duplicate forward gather chars numeral swap duplicate empty pop pop volume var pop pop swap volume var Jif 82 2134 2135 pop pop swap swap volume var 2136 Jif 2137 sits 2138 Y 2139 Weird syntax error in cite warning 2140 Jif 2141 2142 Closing without opening in cite warning 2143 Jif 2144 2145 pop No recognizable date in following string warning 2146 Jif 2147 Jif 2148 swap reverse gather chars pop 2149 duplicate forward gather chars 2150 numeral 2151 swap duplicate empty 2152 pop pop pages var 2153 pop pop swap pages var 2154 if 2155 Y 2156 pop pop swap pages var 2157 Jif 2158 duplicate empty 2159 journal var gt 2160 duplicate character length 2 2161 3 swap substring journal var 2162 jif 2163 2164 skip 2165 if 2166 2167 bstlibrary 2168 bsttrailer 2169 FUNC TION sortify 2170 4 purify 2171 I 2172 2173 2174 INTE 2175 2176 FUNC 21774 s 2178 1 2179 s 2180 2181 2182 if change case GERS len TION chop word en 1 len substring s len 1 global max substring s 83 2183 2184 2185 INTEGERS
111. nitialization 5 5 QE vmm A A uncta exem e RP 3d Hello ux nn BORE OY AAA A s 3 1 2 Customizable text elements 3 1 3 User selectable switches 3 1 4 Shorthanding essentials 000 3 1 5 Miscellaneous other macros 3 1 6 Newenvironment 2 000 ee eee 3 1 7 Token registers 3 1 8 Peek word ahead macro e e 3 19 If imtializationg uuu eue a A AS a 3 1 10 Macro initializations ee 3 2 Main across 3 A RV iod demere eR Lim ALESSIO A 3 2 Utility macros do oe Ni es er CRURA 3 2 2 Declaration of citation types llle 3 2 3 Declaration of citation nicknames 3 2 4 Calling citation nicknames 3 2 5 Table writes and preliminary formatting 3 8 Outputroutines 22222 3 3 1 The print macro e ea e 3 3 2 Proof sheet master document 3 4 Proorishetts 4 LAA A A a A 3 5 Macros for data export eA 3 5 1 Citation style definitions a 3 6 Index styles ici o UR Sed a E E te 4 A BibTeX Library Aa 4Hellob 2 et ott te dee ide Bid de St RD Ee ee 4 2 Variableinitializations 2 2 4 8 Function definitions 2e 4 3 1 Logic and measurement ii 10 10 10 11 11 11 12 12 13 13 14 14 15 4 3 2 Housekeepihg soren e m yg 63 23 9 OU tp t ixi ele TUR b BA OEE Ne odd 64 4
112. npoint This contains the plural bridge for abbreviated citations 2 3 6 Pinpoint printing The pinpoint information is contained in the token register 1ltok argtwo To print the pinpoint you should always use the following form which will induce the correct behaviour of the string expansion engine within CAMEL law barkill the ltok argtwo relax 2 4 The cit file The cit file should contain instances of the newcitestyle command and asso ciated arguments This defines a CAMEL style instance for each of the entry types supported by the style s bst file If you find it necessary to add a new entry type to the style defined in the bst file for your style you must also define a CAMEL style instance in the cit file applying to this new entry type 13 The arguments to the newcitestyle command have the functions described in the following footnoted illustration newcitestyleiarticle rsirsr A 4 fa 9 6 N 9 Ec N 2 p N f p N rp N e id N at p1 at xrf 4 6 1 2 3 435 065 C19 43 This gives the name of the citation template to be generated bThe first part of this list of arguments consists always of exactly six letters the first three pairs set the main and alternative typefaces for the author title and first cite part portions of the citation r s b and i select roman small caps boldface and italic type These letter flags are not case sensitive The alternative t
113. ntains macros used in creating the citation declaration macros actually entered in the document by the user newcite and its friends The following macros are used to define the macro suites that relate to particular citation types These are normally invoked by entries in the lexicite tex file but the newcitestyle macro is accessible within the document as well The Nnewcitestyle macro expects the following arguments T 2 the nickname of the citation style to be created a list of typeface and cite type options in the syntax required by N newciteoptions a list of cite bridges in the syntax required by N newcitebridges an integer giving the number of arguments the finished cite generation macro will accept and an argument consisting of a balanced list of six arguments indicating which of the six possible CAMEL arguments will be used The last two of these are fed to newcommand as formatting arguments in the creation of citation style macros In operation the token register assignments performed by newcitebridges and law parsefaces are memorized by freez ing them in macros whose names are derived from the name of the citation style The freezing operation is carried out by a list of token assignments within the storage macros The macros are xdefed but the expansion of everything ex cept the existing contents of the registers inserted at one level of expansion using the is prevented with noexpands The macro c
114. o digit form Expected 1 A single string Left A single string Toggles 1 none 1786 FUNCTION fillout a year 1787 duplicate character length 2 1788 19 swap 1789 gt skip 1790 1f 1791 parse month This function is a simple parser used in converting database entries that have been identified as probable abbreviated month entries into numerical string form Expected A single string which should consist of exactly three alphabetic characters Left 1 A single string of numbers Toggles 792 FUNCTION parse month 793 duplicate jan 794 pop 1 795 duplicate feb 796 pop 2 797 duplicate mar 798 pop 3 799 duplicate apr 800 pop 4 801 duplicate may 802 pop 5 803 duplicate jun 804 pop 6 805 duplicate jul 806 pop 7 807 duplicate aug 808 pop 8 809 duplicate sep 810 pop 9 811 duplicate oct 812 pop 10 813 duplicate nov 814 pop 11 815 duplicate dec 74 816 i pop 12 817 invalid month in cite warning 818 passing text to Camel verbatim warning 819 t scrubdate 820 Jif 821 Jif 822 Jif 823 Jif 824 if 825 Jif 826 Jif 827 Jif 828 Jif 829 Jif 830 if 831 if 832 format month name This takes a numerical string and converts it to either an abbrviated o
115. oieiek 2688 2689 installer 2690 testtex 2691 documentclass article 2692 usepackage camel 2693 2694 testtex 4 citationsubject o sta i stb statutes Statutory Materials 2695 testtex 4 citationsubject o sec i seb second Secondary Literature 2696 testtex 4 citationsubject o cas i cab case Cases 2697 2698 begin document 2699 citationstyle law 2700 citationdata camel 2701 2702 section sc Camel tests and examples footnotemark 2703 footnotetext Note that in addition to admiring the examples in 2704 this document you can tinker with it to produce different 2705 kinds of bibliographies See the comments in the file for 2706 suggestions 2707 2708 2709 We currently have support for articles including newspaper 2710 articles items in collections of 2711 essays books sections of books ephemeral booklets masters theses 2712 Commonwealth US and Japanese cases and statutes from a few 2713 jurisdictions An example of each is given below first without 2714 then with a pinpoint This does not give a complete picture of 2715 the formatting tree it s just a sample 2716 2717 begin itemize 2718 item Ordinary articles 2719 begin itemize 2720 item source s second macauley 2721 item source fs second macauley 56 2722 end itemize 2723 item Newspaper articles 94 2724 begin itemize 2725 item source s second appley
116. ons 577 578 581 585 586 R Mrefname zs 1216 1223 RequirePackage 4 reserved a 120 366 369 reserved b 120 366 370 AreservedQ6 ici i e Seta ba Bas 122 123 128 129 367 369 374 reserved d 125 127 368 371 reserved e 119 366 369 reset font 62 70 408 vightarrow 1236 a s s eee 420 1263 Change History LEXIBIB 1 0b General Added swap as ap propriate to expose string on stack for empty check 75 1 0e General Altered format pages S source 4 184 188 226 349 349 442 443 815 1184 1194 1311 2720 2721 2725 2726 2731 2732 2736 2737 2741 2742 2747 2748 2752 2753 2757 2758 2764 2765 2771 2772 splitmaxdepth 411 splittopskip 410 XNSS eese da 633 statuteverboseoff 35 36 statuteverboseon 34 STRINGS environment 58 NULA Y es 5 5 T Ntemplen 2i eR us 1105 thecomment 567 571 Nthefacts 2 4 6 58 outa 588 592 theholding 557 561 Nthepage sisi ken m 462 thequestions 577 582 tie or space connect environment 70 times ten environment 59 to 817 818 821 822 827 828 830 831 867 868 871 872 877 878 tocitelist 755 760 762 767 769 780 782 803 805 816 821 933 938 940 945 947 961 tolist 797 865 871 topup date environment
117. ontaining the faces is created inside Nnewcitestyle itself to save an argument position in the definition of law parsefaces we ve used up seven and there are only two to go This could be done with list macros as well but this method probably runs a little faster because it does the job directly The trade off is that the cite type name faces macros contain a lot of non informative text the names of the token registers but there are not many citation types so it is probably worth the cost in memory Note that as of this release citation declarations defined with Nnewcitestyle always begin with Nnew This will help simplify the integration of BIBIEX and CAMEL 663 def newcitestyle 1 2 3 7 37 664 ifundefined law citeload 665 def law citeload Loading citation classes 1 666 message law citeload 1 def law citeload space 667 newcitebridges 1 3 668 expandafter law parsefaces 2 669 expandafter xdef csname 1faces endcsname 670 noexpand global noexpand 1tok authormainface noexpand 671 the ltok authormainface noexpand 672 noexpand global noexpand 1tok authoroptionface noexpand 673 the l1tok authoroptionface noexpand 674 noexpand global noexpand ltok titlemainface noexpand 675 the ltok titlemainface noexpand 676 noexpand global noexpand 1tok titleoptionface noexpand 677 the ltok titleoptionface noexpand 678 noexpand global noexpand ltok citefirstmainface
118. oo 482 Xbibs bject ia 234 BibTeX 642 2507 2513 NbridgesS it o a 51 C c citesinfoot 402 1051 1061 c footnote lees 886 c law footnote 153 886 927 NcOlawOparanormal 803 890 960 995 c page 22 0084 e SNR 930 Ncamelarrow 1228 1236 camelfill 1227 1235 camelrefname 155 479 1216 change letter case environment 67 Acha La tones ss PG a 618 character length environment 60 check environment 63 N eitation ecreug oaeiae PRG 465 citationdata 2 494 496 497 519 521 2700 101 citationstyle 2 475 2699 citationsubject 2 182 189 1087 1094 1141 2694 2696 2775 citationtableitem 1163 Xcite uide ves 242 244 376 385 442 color begingroup 417 color endgroup 422 columnwidth 412 comment 567 567 570 574 575 D NAME Llave dera patented 637 Xdash ood wet ieee se 59 Nddag dels wel ad xo stu sce than d dts 637 documentclass 2691 2792 Ndotfill c istae eoe Ee es 1235 dp cles x Een eek 411 E either or environment 63 either or nowarning environment 64 Nem avis 5 6 327 337 622 697 701 empty 179 476 834 990 1018 1070 empty to null environment 63 endpreamble 2576 2634 ENTRY environment 57 entry integers environment 58 entry strings environment
119. ot yet implemented 903 law cut ltok stylename fromcitelist 904 csname the ltok stylename bridges NVendcsname 905 Ncsname the ltok stylename faceslendcsname 44 The following lines check one of the special bridge fields for content If it is empty we leave the bridges alone Otherwise we replace the default bridges with those selected by the user for this citation 906 law cut ltok a fromcitelist 907 ifcat the ltok a 908 else 909 ltok atbridgeplural ltok a 910 law cut ltok atbridge fromcitelist 911 law cut ltok ptoctwo fromcitelist 912 law cut ltok ptop fromcitelist 913 Law cut ltok conetopplural fromcitelisty 914 law cut ltok conetop fromcitelist 915 law specialbridgestrue 916 Mfi 917 ifcat the ltok whereitsat 918 NMifOlawOrequiresubjects 919 ifundefined law law citesubject citelist 920 expandafter gdef csname law law citesubject citelist endcsname 921 relax 922 Mfi 923 law maybeaddcitesubject 924 global law firstuseofcitetruey 925 if law infoot 926 global ltok whereitsat ltok infoot 927 global l1tok pageorfootno expandafter the c law footnote 928 Nelsef 929 global ltok whereitsat ltok onpage 930 global l1tok pageorfootno expandafter the c page 931 fik 932 if law specialbridges 933 law addtoken ltok conetop tocitelist 934 lLaw addtoken 1ltok conetopplural tocitelist 935 lLaw add
120. ould pay any attention to a page reference if given These are adjusted by law justabovecheck 141 newif if justabove 142 newif if 1 quiteexact The next condition will control the way print output is done in short citation forms it should set to false for articles and books and to true for cases and statutes 143 newif if nosupra The next is used to signal the presence of as the argument linking a reference to a page section number argument This toggles plural bridges on and tells the file output routine that for statutes each section number should be attached to a complete copy of the citation information These copies are later reassembled in a set of table entries by makeindex 21 law getsubjectheader 144 newif if law multipages 145 newif if law printauthor 146 newif if law printtitle 147 newif if law requiresubjects 148 MnewiflifClawOsubjectfound 3 1 10 Macro initializations The following is a grab bag of small macros with simple functions There is more to say about what other macros use them for than about they themselves so I ve put them in the front matter of the code First is a little something to force a lowercase id if necessary The operation of normcase is obvious enough it defines the case switching macro to a no op lowcase works by setting the case toggle to force a lowercase letter The use of aftergroup allows everything to be turned back on without losing the lowercase letter
121. peration into sub functions As between sub functions the ban on passing data through vari ables need not be followed so long as the set of functions adheres to the rule 2 5 2 About cross referencing About cross referencing Oren Patashnik wrote Now come the cross referencing functions these are invoked because one entry in the database file s cross references another by giving the other entry s database key in a crossref field This feature allows one or more titled things that are part of a larger titled thing to cross reference the larger thing These styles allow for five posibilities 1 an article may cross reference an article 2 a cross reference to a book may be made in an entry for a a book b an inbook or c an incollection and 3 an inproceedings may cross reference a proceedings Each of these is explained in more detail later This is the authoritative statement on the proper use of cross referencing within a bibfile The further comments I have to offer here are a non authoritative gloss but do accurately reflect the assumptions I made in writing the bst code for the law dtx file article A cross reference from one article entry to another may be used for special issues of a journal such as those dedicated to a single topic The referenced entry should include all details relevant to the issue as a whole including volume journal and booktitle this last for the name or topic description of a spe
122. power of ten Expected 1 A single integer Left 1 A single integer Toggles 1415 FUNCTION times ten 1416 duplicate duplicate duplicate duplicate duplicate 1417 duplicate duplicate duplicate duplicate 1418 e teeetest 149 character length BIBTEX provides a built in command for measuring the length of a string in text units Sometimes it s nice to know the length of a string in characters this function provides that facility Expected 1 A string Left An integer giving the number of characters in the string Toggles 1 none 420 FUNCTION character length 421 lu 422 0 charcount 423 u empty not 424 u 2 global max substring u 425 charcount 1 charcount 426 while 427 charcount 428 F first in second This function checks for a substring at the beginning or at the end of a given string This facility is needed for example to provide an automated means of toggling the formatting of the court division string for Japanese cases In the defintion below t is the substring length and u is the string length Expected A string toggle A string the string in which to look A string the substring to look for A single integer 0 or 1 indicating whether the substring was found at the specified location in the string for search end The function looks at the end of the given string start The function looks at the start of the given stri
123. r numeral or other the significance of which depends upon the toggle used Toggles causes the character to be identified as a numeral and letter or something else Any character other than causes that character to be identified as other and any other characters to be identified as letter 483 FUNCTION get character type 484 duplicate 485 pop duplicate empty 486 pop other 487 chr to int duplicate 488 duplicate 47 gt swap 58 lt and 489 pop numeral 490 duplicate 64 gt swap duplicate 91 lt swap 491 duplicate 96 gt swap 123 lt and a logical 492 and a logical or 493 letter 494 other 495 Jif 496 Jif 497 if 498 499 500 other 501 letter 502 Jif 503 if 504 type last char This was written in order to handle situations where trailing punctuation varies depending upon whether the text being punctuated ends in a numeral or not The power of the library is finally in July of 1995 starting to show through Expected A single string Left lt A string either numeral letter or other Toggles 1 None 1505 FUNCTION type last char 1506 duplicate character length 62 empty to null check either or 1507 1 substring 1508 get character type 1509 4 3 2 Housekeeping These functions are used to issue warning messages and avoid errors during pro cessing This is s
124. r a spelled out month name Expected lt A toggle string A numerical string Left A string Toggles long The month name placed on the stack will be spelled out short The month name will be abbreviated 833 FUNCTION format month name 834 swap duplicate empty 835 pop pop 836 swap long 837 duplicate 1 838 January 839 duplicate 2 840 February 841 duplicate 3 842 March 843 duplicate 4 844 April 845 duplicate 5 846 May 847 duplicate 6 848 June 849 duplicate 7 850 July 851 duplicate 8 852 August 853 duplicate 9 854 September 79 855 duplicate 10 856 October 857 duplicate 11 858 November 859 duplicate 12 860 December 861 invalid month in cite warning 502 passing text to Camel verbatim warning 863 t scrubdate 864 if 865 if 866 if 867 if 868 if 869 if 870 Hif 871 Hif 872 Hif 873 Hif 874 jif 875 Jif 876 Y 877 duplicate 1 878 Jan 879 duplicate 2 880 Feb 881 duplicate 3 882 Mar 883 duplicate 4 884 Apr 885 duplicate 5 886 May 887 duplicate 6 888 Jun 889 duplicate 7 890 Jul 891 duplicate 8 892 Aug 893 duplicate
125. ra period when necessary 61 def law gobble If you are into software history you might have cause to refer to LEX I EX so its logo and the LExiBiBlogo also R I P are defined here They are protected just like the IXTEX logo 62 def p LexiTeX reset font rm unskip hbox L 63 kern 06em hbox sc e 64 kern 05em hbox sc x 65 kern 05em lower 65ex hbox I 66 kern 18emT 67 kern 1667em lower 65ex hbox E 68 kern 125emX 69 NdefNLexiTeX NprotectNpOLexiTeX 70 def p LexiBib reset font rm unskip hbox L 18 71 kern 06em hbox sc e 72 kern 05em hbox sc x 73 kern 05em hbox sc i 74 kern 06em sc B 75 kern O05em hbox sc i 76 Nkern 05emiNsc b 77 def LexiBib protect p LexiBib 3 1 6 New environment There is just one new environment in CAMEL and all it does is set the list input toggle to true so that input citations will feed into memory but not print 78 newenvironment lexilist 79 message Loading citation data law listinputtingtrue 80 law listinputtingfalse 3 1 7 Token registers The following are used as temporary token registers in various places 81 newtoks ltok a 82 newtoks 1tok b 83 newtoks ltok argtwo 84 NnewtoksNOltokOpagesstring The following token registers are used for temporary storage of typeface informa tion 85 newtoks 1tok authormainface 86 newtoks 1tok authoroptionface 87 NnewtoksNO1tokOtitlemainface
126. rather than a tag indicating the jurisdiction A result of this approach is that there are no required fields in the usual sense that BIBTEX will complain if something is missing Instead is a set of core fields for each of three different formatting styles For someone familiar with legal resources this is actually quite intuitively straightforward For reported U S law cases the core fields are title volume journal pages and year In addition you may wish to specify court Procedural histories may not be represented in the BIBTEX entry For reported Commonwealth cases use number instead of volume The effect of this will be to place the year at the front of the citation in square braces with the number and journal following it Again you may specify court optionally For cases reported in ephemeral media such as newspapers leave out volume and number and give the full date in the year field instead see below for the formatting of dates The formatting of the citation will adjust accordingly This is not yet implemented but can be and should be 8p m not sure whether this works with parallels yet If it doesn t but you need it to let me know and Pl fix it For cases reported in jurisdictions such as Japan that refer to cases by date rather than title use casedate court journal volume pages and year Op tionally you may also wish to include divno and division to specify the exact identity of the decidin
127. rt form nickname macro Passing the information in this way required the definition of two separate invocation macros one for full form citing and one for short form citing This was messy We now do all of this with true toggles that change the behaviour of a single set of routines This means e We don t need two macros and e The stash routines can be included in newcite itself information needn t be passed through macro arguments at all which helps speed things up We have to start by emptying the contents of the temporary list macro a beta version didn t do this and loading cites took an amazingly long time I had problems with TeX capacity exceeded messages and tracingmacros 2 showed that every cite was a stack containing the desired cite and every preceding citation as well 40 law paracheckone law parachecktwo law getpara 764 lLaw addtoken ltok userptop tocitelisty 765 law addtoken ltok userptoctwo tocitelist 766 law addtoken ltok useratbridge tocitelist 767 law addtoken ltok useratbridgeplural tocitelist 768 Mfi 769 law addargument 1 tocitelist 770 law addtoken ltok bigsourcepage tocitelist not yet implemented 771 law addtoken ltok bigsourcecite tocitelist not yet implemented 772 law addtoken ltok hereinafter tocitelist not yet implemented Two fields are made nil during stash they will be filled when the macro is first unpacked 773 law addargument
128. s only serve to limit the scope of em An italic space is not added since this might be followed by a period 5 def supra em supra The Id macro defined here is used in referring to immediately preceding works in the same or in a preceding footnote If the context demands that Id be lower case when it occurs the user can switch it to lower case by entering lowcase immediately before an in text citation declaration or citation nickname The lower case macro thus invoked turns itself off after id has printed so no grouping is required 6 def Id em law lettercase Id These two tokens hold the text used to indicate the note or page number where a previous reference occurs These are only used in short form citations 7 newtoks 1tok userconetop 8 newtoks ltok userconetopplural 9 newtoks 1tok userptop 10 newtoks l1tok userptoctwo 11 newtoks l1ltok useratbridge 12 newtoks 1tok useratbridgeplural 13 newtoks ltok usercitefirst 14 newtoks 1tok usercitepage 15 newtoks 1tok usercitelast 16 forcefootnotes 16 newtoks ltok infoot ltok infoot note 17 newtoks 1tok onpage 18 ltok onpage page The following tokens are used in making proof sheets Change the content of these to taste 19 newtoks ltok proofcitelast 20 ltok proofcitelast Editor publisher and stuff 1994 21 newtoks 1tok proofpage 22 ltok proofpage 12345 23 newtoks 1tok proofciteone
129. scrubdate t pop year empty to null skip if 2082 FUNCTION parse one cite 2083 duplicate not 81 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 21 21 21 21 21 21 21 21 21 21 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 o 0o 1005 Q tn O 1 forward gather chars pop duplicate swap forward first in second swap duplicate swap forward first in second volume var b swap a ab lt duplicate a 1 b a 1 substring year var b 1 global max substring forward gather chars pop duplicate forward gather chars numeral swap duplicate empty pop pop number var pop pop swap number var yif pop pop swap swap number var Jif Weird syntax error in cite warning Jif Opening without closing in cite warning Jit F pop duplicate swap reverse first in second swap duplicate swap reverse first in second 7a swap b ab lt duplicate a 1 b a 1 substring year var 1 a 1 substring forward gather chars pop duplicate swap forward first in second pop forward gather chars pop swap duplicate empty pop number var 42 global max substri
130. sed in the middle of a string of citations linked with interwords String options Associate the citation with the specified subject This option can be freely spec ified but only has significance when a classified bibliography is being produced When these subject tags are being used for that purpose they must be declared at the top of the document and a given source must be associated with the same subject throughout the document specifying a different subject from that used in the first use of the citation will produce an error message from I4TEX Give a volume number for use in the citation BOOK entries in a BIBTEX database may be given a volume number Such citations are assumed to be multi volume works and a volume number should be supplied when citing them the volume number given in a BOOK entry itself ignored and an error message will be produced if an explicit volume number is not given using this option Precede the citation with the interword given in the argument These options may be entered in the option braces in any order with the single requirement that a comma must end a string option if it is followed by another option The number of possible citation forms that can be generated using these com mand options is very large and varies from one style to another The best way of familiarizing yourself with them is to finish reading the next section of this guide and then do a little experimentation w
131. stack Note that the characters need not be active when read they are replaced with active versions of the characters by this routine Active characters are sent to the stack rather than control strings because they do not swallow following space possibly not important and because this made the whole thing easier to follow in the debugging process 26 law alparsesavecomma law alparseplain law scanlist law checkins 304 catcode _ 13 catcode 13 catcode 13 305 gdef law get ul gdef law alitem _ 306 gdef lawOget carat gdef law alitem 307 gdef law get bar gdef law alitem law delim 308 309 gdef law finishargtwo 310 global 1tok a law pingroup law pinstart 311 xdef law temp the ltok a the ltok argtwo 312 global ltok argtwo expandafter law temp These parsers are switched in as appropriate The first checks to see if the end of the string for parsing has been reached The second cycles a comparison 313 gdef law alparsesavecomma ifnextchar 314 gdef law alitem law delim law pinend law alnomatch 315 expandafter law finishargtwo 316 gobble 317 gdef law alitem law delim 318 XelawOmultipagestrue 319 law comma 320 Xelawlalnomatch 321 let law parse law alparseplain parse 322 def law alparseplain 1 323 let law nomatch law alnomatch 324 gdef law alitem 1 let law alone law allist parse
132. subject J 097 p to include pinpoints in an exported table J 098 i lt extension gt use the three letter extension in J 099 exporting a table J 100 o lt volume gt use the three letter extension in J 101 importing a table J 102 To avoid errors in formatting use commas in the option string J 103 only where they are logically necessary to the sense of the J 104 string ehc This macro set returns a box the exact width of the longest string given as a label to citations of a specified subject class 105 newlength templen 106 newlength lawlengthone 107 newlength lawlengthtwo 108 def law getlabel 1 settowidth lawlengthone csname law 1 lab endcsname 109 ifnum lawlengthone gt lawlengthtwo 110 settowidth lawlengthtwo csname law 1 lab endcsname 111 fi 112 def longestlabelfor 1 113 setlength lawlengthone 0pt 114 setlength lawlengthtwo 0pt 115 let law getlabel 116 csname law 1 citelist endcsname The list of options is simple and expansible The syntax of the last two lines is required if everything is to work as expected The items in the help message should 51 law parselastcheck law parsecomma law parselastcheck law parseplain probably be drawn from here to provide a hook for expansion if other styles want to tinker with the options to cite 117 def law subjectoptionlist 118 1 gdef Claw level 1 119 2 gdef law level 2
133. t 1005 Mif 1006 law print 1007 def law tidybridges A number of further tidying up operations are appropriate regardless of the form in which the citation will be printed If certain elements are missing their related bridges must be erased if the citation is not going to look awful 008 ifcat the ltok author 009 Mifcat NtheNOltokOcitefirst global ltok ttocone Mit Nifcat NtheNO1tokOname 7 global ltok ttocone Mit global ltok atot ML xdef law temp the ltok citelast ifx law temp empty global ltok ptoctwo ML 021 def law temptwo 022 ifx law temp law temptwo 023 global ltok ptoctwo 024 global ltok citelast oc0 u0Uu0000000nos OA 100 O0 tlnn n5o Q N o 025 Mfi 026 ifcat the ltok citepage 027 global ltok ptop 028 Mfi 029 ifcat the ltok argtwo 030 global ltok ptop 031 ifcat the ltok citepage 032 global ltok conetop 033 ML 034 Mfi Now we run a series of checks to determine the class of citation we are dealing with and if tables for that type of citation have been turned on an export is performed if a cite for export is to a statute then the special routines for handling page references is brought into play 1035 MifOlawOmultipages 1036 global 1tok conetop 1ltok conetoppluraly 1037 global ltok atbridge ltok atbridgeplural 1038 Mif 1039 ifcat the ltok argtwo 1040
134. t endcsname else gdef law temp 1 gdef law temptwo a11 ifx law temp law temptwo message J J1 Camel bibliography J Document type subject classified cites J Bibliography type all citations J Action header only not yet implemented J7 else message J J Camel bibliography J Document type subject classified cites J Bibliography type subject specific internal 41 J Action generating J J MetMClawObibslash csname law 1 citelist endcsname ML ML else message J J Camel bibliography J Document type without subjects J Bibliography type all citations J Action generating J J 1307 let law bibslash 1308 csname law0 1 citelist endcsname 1309 Mit 1310 end thebibliography 1311 def law bibslash 1 bibitem csname law 1 lab endcsname source b 1 1312 lexitex 3 5 1 Citation style definitions No styles are included here See the separate style files in the CAMEL archive for the matching bst cst and cit files that make up each CAMEL style variation These may be distributed as doc files and should be available on CTAN under macros latex contrib supported camel 3 6 Index
135. textcite 11 if law longcite 12 ifOlawOmultipages 12 if law printauthor 12 if law printcite 12 if law printtitle 12 facts 588 588 591 595 596 field names environment 58 field tag no combine environment 66 fillout a year environment 74 first in second environment 60 floatingpenalty 411 Pootilis sc epee Ae wea ee 400 footnote 400 436 2758 footnotemark 2702 footnotesep 410 420 footnotesize 408 footnotetext 2703 forcefootnotes 3 37 38 format date environment 80 format jdate environment 79 format month name environment 75 format month year environment 73 102 format names environment format pages environment 70 from 2642 2647 2652 2657 2662 Mromcitelist 827 887 889 891 903 906 910 914 Nfromlist aseos tie es 837 877 frompinlist 830 1004 FUNCTIONS environment 59 G gather chars environment 68 generateFile 2642 2647 2652 2657 2662 GenericError 510 get character type environment 62 H holding 557 557 560 564 565 NhsiZe i 26v CS 412 I NIdy duet dubie qoia Bde ens 6 if filesw 464 481 501 525 if justabove 141 if l qu
136. tility macros This section contains larger macros that perform major tasks and smaller bits of code that are complex in their operation When this is implemented the above chain of futurelet macros will be linked to this law unstashparas routine which fetches any parallel items and then in law setup performs the restash of the citation if necessary This is a rough set of routines if anyone has a suggestion on how to more elegantly clean most of IXTEX s control sequences for export I would be most grateful to hear from them The effect of these routines is to convert control sequences that might be sent to the output files into harmless strings This is necessary because the file cannot be written at the time law cleanup is called the page references would be incorrect The definitions are local bracketing the clean command and its arguments will leave the cleaned text in the macro but restore command strings to operation when IATEX passes out of the current group The ifcat condition at the start this method of token register checking was suggested by Bernd Raichle who scolded me for bothering the IATEX3 list with this question is meant to catch empty strings fed to the routine in the fastest possible way Without any checking things can blow up The use of law barnil somewhere in the middle makes the vertical bar character turn wimpish and disappear which is what we want Otherwise it prints weird stuff when it is fed ba
137. ting of title of work in main text J 230 n suppresses printing of citation in main text J 231 1 forces some short forms to lower case J 232 f forces printing of full cite in text J 233 s lt subject gt associates a subject declared using 234 NstringNbibsubject J 235 with the citation if used once the same s option must J 24 law sourceoptionlist law parselastcheck law parsecomma law parselastcheck law parseplain parse law parse 236 be used consistently for that key throughout the document J 237 v lt volume gt associates a volume number with the current J 238 citation in the main text only this is used for J 239 multi volume works J7 240 To avoid errors in formatting use commas in the option string J A 241 only where they are logically necessary to the sense of the J 242 string Therefore string cite ats birds key and 243 string cite s birds at key J7 244 are correct while string cite a t s birds key is NOT 245 correct ehc The list of options is simple and expansible The syntax of the last two lines is required if everything is to work as expected The items in the help message should probably be drawn from here to provide a hook for expansion if other styles want to tinker with the options to Ncite 246 NdefNOlawOsourceoptionlisti 247 a law printauthorfalse 248 t law printtitlefalse 249 n global law printcitefalse
138. tions the table will include any section or other numbers given as optional arguments to Nsource commands in the document Because makeindex sorts alphabetically not numerically the section numbers may be out of their proper order in the makeindex processed file This must be corrected by hand 11The documentation for makeindex will explain how it should be set up for your system On a UNIX or DOS installation the basic requirements are that the makeindex program be in your search path and that the appropriate environment variable usually indexstyle be set this tells nakeindex where to find the style files that tell it exactly how to format the finished table lists 2 Notes for Implementors 2 1 Getting started The purpose of this section is to provide style designers with all of the information required to write a new bibliography style from scratch drawing on the powerful facilities available in BIBTEX and the CAMEL style engine Before you start you should have a sound knowledge of BIBTEX primitives and of the programmer s function library contained in the file camel dtx A bibliography style consists of a bst file a cst file and a cit file The bst file should produce entries suitable for digestion by CAMEL for all of the BIBTEX entry types supported by the style The modules of the CAMEL system work together in an integrated fashion to format citations Raw citation details are kept in bib databases The function of the Came
139. token ltok ptop tocitelist 936 law addtoken ltok ptoctwo tocitelist 937 law addtoken ltok atbridge tocitelisty 938 law addtoken ltok atbridgeplural tocitelisty 939 else 940 law addargument tocitelist 941 law addargument tocitelist 942 law addargument tocitelist 943 law addargument tocitelist 944 law addargument tocitelist 945 law addargument tocitelist 946 Mfi 947 Law addtoken 1tok stylename tocitelist style name 948 law addtoken ltok bigsourcepage tocitelist not yet implemented 949 Qlaw addtoken ltok bigsourcecite tocitelist not yet implemented 950 law addtoken ltok hereinafter tocitelist not yet implemented 951 law addtoken ltok pageorfootno tocitelist 1 b stash the footnote bridge 45 law newcitefirst 952 law addtoken 1ltok whereitsat tocitelist 2 b footnote number 953 law addtoken ltok citetype tocitelist cite type 954 law addtoken ltok citelast tocitelist cite last part 955 Law addtoken ltok citepage tocitelist cite page 956 law addtoken ltok citefirst tocitelist cite first part 957 law addtoken ltok name tocitelist name of work 958 law addtoken ltok author tocitelist author 959 law addtoken ltok nickname tocitelist nickname 960 law addtoken c law paranormal tocitelist parallels counter 961 law addtoken ltok plistmacro tocitelist parallels 962 global expandafter let csname ldata 1 endcsname
140. ttocone 13 106 733 1010 1013 ltok useratbridge 11 56 766 811 841 846 853 859 ltok useratbridgeplural 12 57 754 767 812 847 860 ltok usercitefirst 13 849 862 ltok usercitelast 15 851 864 ltok usercitepage 14 850 863 ltok userconetop 7 52 762 807 843 855 ltok userconetopplural 8 53 763 808 844 856 ltok userptoctwo 10 55 765 810 858 ltok userptop 9 54 764 809 845 857 ltok whereitsat 12 93 898 917 926 929 952 makefntext less 419 NOmkboth e vA eR 1158 newcite 685 741 newcitebridges 667 722 overword 126 327 330 383 392 428 parboxrestore 412 prenextcharspace 365 374 390 preoverwordspace 121 124 381 NOrealcite 99e 397 444 restonecolfalse 1156 restonecoltrue 1155 sptoken 123 368 xifnchcareful 368 372 XOxifowd foes ces eee 125 129 A NAA aid 635 Ni shee shale Fas A ue E eps Sa 631 addtocounter 294 362 795 866 883 addtolength 1266 1267 NAB Ce Lr eds at qeu 634 N88 ch Aig AA 631 and environment 59 NamsWer igo cadet d Een 2581 2637 NASk curi aa eet yw 2581 B batchfile cnica ad 2568 2578 bibdata 502 526 bibitem 472 1183 1193 1311 bibliographymanager 2 474 495 498 518 520 522 bibstyle o o oooocooooo
141. ubheadings by subject or by type of material To do this place a set of Ncitationsubject commands at the top of your document or after a Nprintbibliography command Each command takes two mandatory arguments and one optional argument The first mandatory argument indicates the nickname that you will use in your document to attach a citation to the category The second is the section heading that you wish to see displayed for that section of the bibliography The optional argument may be used for two purposes First you may want to further divide your bibliography into sub subheadings You can spec ify a such a subcategory by putting a 2 as the optional argument to the citationsubject command Otherwise a first level header is used Where 5This feature support for multiple citation styles in a single document will be added after the release of BIBTEX 1 0 forcefootnotes newinterword printbibliography the printbibliography command is issued the parts and sub parts of the bibil iography will be produced in the order in which they were declared For some types of citation you may wish to produce a table that shows more detail about citations made With CAMEL simply add an optional argument to the citationsubject command applicable to your desired table which includes an o argument of three letters giving the extension of the raw data output file and an i argument of three letters giving the extension of the makeindex proc
142. w onerealcite 1 428 long def overword law checkins 429 SBSword gdef SBSword 430 parse When citations are dumped we need to decide what sort of delimiters they receive If footnote forcing is in effect we need to protect against the possibility that we re already in a footnote The citedump command should be redefined for styles that bracket citation strings in say square brackets The following code the law printcite command and the contents of the lexicite tex file are the only chunks of the style that need modification to generate different perhaps radically different styles The strategy used here to force footnotes could equally well be used to place the citation string in a marginpar in a floating box on a facing page or what have you So many possibilities so little time 30 31 def law citedump 7 32 if law infoot 33 NMbegingroupVOGlawGcitestackNendgroup 34 else 35 MifOlawOforcefootnotes 36 footnote begingroup law citestack law gobble endgroup 37 Velse 38 XbegingrouplClawlcitestacklendgroup 39 M 40 M fi 41 def law citestack We might as well have a couple of aliases for the cite command 42 let cite source 43 let lexicite source The actual cites should be expanded only after it has been determined that the end of a citation string has been reached The expansion sequence for individual citations begins here 44 def realcite 1
143. x law lastcite law temptwo 051 ifnum the c citesinfoot 1 relax 052 law justabovecheckdetails 053 Velse 054 ifx law currentcite law temptwo 055 law justabovecheckdetails 056 else 057 justabovefalse 058 ML 059 ML 060 Nelse 061 ifnum the c citesinfoot gt 1 relax 062 ifx law currentcite law temptwo 063 law justabovecheckdetails 49 Ncitationsubject 064 else 065 Nejustabovefalse 066 ML 067 M 068 Nfi 069 def law justabovecheckdetails 070 ifx law lastpage empty 071 MO justabovetrue 072 1 quiteexactfalse 073 Velse 074 ifcat the ltok argtwo 075 Qjustabovefalse 076 Velse 077 Nejustabovetrue 078 xdef law temp the ltok argtwo 079 ifx law temp law lastpage 080 NOlOquiteexacttrue 081 else 082 l quiteexactfalse 083 ML 084 M 085 Mi 086 lexitex 3 3 2 Proof sheet master document The following short document will generate proof sheets for all of the primary styles on the system With the standard distribution this produces twelve pages of output 3 4 Proof sheets The following macros produce a proof sheet that shows all of the permutations of a citation that I can think of This is useful for those who have to design new citation styles This is a pretty straightforward exercise except for the task of feeding a cite declaration exactly the right arguments this requires re definition of newcitestyle and the re pars
144. y of law plone Serves same function 277 def law alone 1 2 def law allistitem 1 278 ifx law alitem law allistitem 2 279 let law alfinish fi We don t care what goes into this field so there is no error message from the parser 280 def law alfinish 1 law alnomatch law alnomatch 281 def law alnomatch 7 282 global 1ltok a expandafter law alitem 283 xdef law temp the ltok argtwo the ltok a 284 global ltok argtwo expandafter law temp The list of options is simple and expansible The syntax of the last two lines is required if everything is to work as expected The items in the help message should probably be drawn from here to provide a hook for expansion if other styles want to tinker with the options to cite 285 gdef law allist 286 amp gdef law alitem law delim 287 global law multipagestrue 288 law ampersand 289 gdef law alitem law delim 290 law pinend 291 law pingroup 292 law pinstart 293 global law multipagesfalse 294 addtocounter law parapin 1 295 gdef law alitem law delim 296 global law multipagestrue 297 law dash 208 gdef law alitem 299 let law parse law alparsesavecomma 300 _ law get ul 301 law get carat 302 law get bar 303 law alnomatch The purpose of the following is to place active versions of the special marking characters on the
145. ypefaces may then be specially selected in the text arguments to a citation using NV NN Dhe last letter in this list sets the classification of citations declared with the resulting style macro a b c and s will classify all citations generated by this citation template as being to articles books cases or statutes respectively This letter flag is not case sensitive TThese are the citation bridges that will be placed between the portions of the citation indicated T wo bridges singular and plural are given between pl page and rp reference page and between id id or supra and xrf cross reference This argument states how many arguments the finished citation template will accept It must be a number between 1 and 6 fSix pairs of matched braces must appear inside this argument Any other than the first which represents the citation nickname may be left empty but the bridges must of course take this into account The number of arguments inserted here must correspond with the number stated on the line above 2 5 The bst file 2 5 1 Entry types Most of the work in drafting a new style is in writing entry type functions for inclusions in the bst file This is inevitably an arduous task because of the number of possibilities that must be covered The task is made easier however by the bst file programming library contained in the file camel dtx This library provides a set of functions for the manipulation of
Download Pdf Manuals
Related Search
Related Contents
取扱説明書 - 双葉電子工業株式会社 Manual del Usuario Télécharger le document au format PDF ウェアラブルカタログ! Niacin french.pmd InfoFlex Work List and Patient Tracking Module User Guide Manual de Segurança e Garantia Manual de usuario Instructions for use Bedienungsanleitung Copyright © All rights reserved.
Failed to retrieve file