home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: LaTeX Document
(document/latex).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| LaTeX Document (document/latex)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| LaTeX 2e document text
| default
| |
99%
| file
| LaTeX document text
| default
| |
98%
| file
| LaTeX document, ASCII text
| default
| |
100%
| TrID
| LaTeX 2e document (with rem)
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/280 LaTeX (Master document)
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| text/x-matlab
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 25 20 5c 69 66 66 61 6c | 73 65 20 6d 65 74 61 2d |% \iffal|se meta-|
|00000010| 63 6f 6d 6d 65 6e 74 0a | 25 0a 25 20 43 6f 70 79 |comment.|%.% Copy|
|00000020| 72 69 67 68 74 20 31 39 | 39 34 20 74 68 65 20 4c |right 19|94 the L|
|00000030| 61 54 65 58 33 20 70 72 | 6f 6a 65 63 74 20 61 6e |aTeX3 pr|oject an|
|00000040| 64 20 74 68 65 20 69 6e | 64 69 76 69 64 75 61 6c |d the in|dividual|
|00000050| 20 61 75 74 68 6f 72 73 | 2e 0a 25 20 41 6c 6c 20 | authors|..% All |
|00000060| 72 69 67 68 74 73 20 72 | 65 73 65 72 76 65 64 2e |rights r|eserved.|
|00000070| 20 46 6f 72 20 66 75 72 | 74 68 65 72 20 63 6f 70 | For fur|ther cop|
|00000080| 79 72 69 67 68 74 20 69 | 6e 66 6f 72 6d 61 74 69 |yright i|nformati|
|00000090| 6f 6e 20 73 65 65 20 74 | 68 65 20 66 69 6c 65 0a |on see t|he file.|
|000000a0| 25 20 6c 65 67 61 6c 2e | 74 78 74 2c 20 61 6e 64 |% legal.|txt, and|
|000000b0| 20 61 6e 79 20 6f 74 68 | 65 72 20 63 6f 70 79 72 | any oth|er copyr|
|000000c0| 69 67 68 74 20 69 6e 64 | 69 63 61 74 65 64 20 69 |ight ind|icated i|
|000000d0| 6e 20 74 68 69 73 20 66 | 69 6c 65 2e 0a 25 20 0a |n this f|ile..% .|
|000000e0| 25 20 54 68 69 73 20 66 | 69 6c 65 20 69 73 20 70 |% This f|ile is p|
|000000f0| 61 72 74 20 6f 66 20 74 | 68 65 20 4c 61 54 65 58 |art of t|he LaTeX|
|00000100| 32 65 20 73 79 73 74 65 | 6d 2e 0a 25 20 2d 2d 2d |2e syste|m..% ---|
|00000110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000130| 2d 2d 2d 2d 2d 0a 25 20 | 0a 25 20 20 54 68 69 73 |-----.% |.% This|
|00000140| 20 73 79 73 74 65 6d 20 | 69 73 20 64 69 73 74 72 | system |is distr|
|00000150| 69 62 75 74 65 64 20 69 | 6e 20 74 68 65 20 68 6f |ibuted i|n the ho|
|00000160| 70 65 20 74 68 61 74 20 | 69 74 20 77 69 6c 6c 20 |pe that |it will |
|00000170| 62 65 20 75 73 65 66 75 | 6c 2c 0a 25 20 20 62 75 |be usefu|l,.% bu|
|00000180| 74 20 57 49 54 48 4f 55 | 54 20 41 4e 59 20 57 41 |t WITHOU|T ANY WA|
|00000190| 52 52 41 4e 54 59 3b 20 | 77 69 74 68 6f 75 74 20 |RRANTY; |without |
|000001a0| 65 76 65 6e 20 74 68 65 | 20 69 6d 70 6c 69 65 64 |even the| implied|
|000001b0| 20 77 61 72 72 61 6e 74 | 79 20 6f 66 0a 25 20 20 | warrant|y of.% |
|000001c0| 4d 45 52 43 48 41 4e 54 | 41 42 49 4c 49 54 59 20 |MERCHANT|ABILITY |
|000001d0| 6f 72 20 46 49 54 4e 45 | 53 53 20 46 4f 52 20 41 |or FITNE|SS FOR A|
|000001e0| 20 50 41 52 54 49 43 55 | 4c 41 52 20 50 55 52 50 | PARTICU|LAR PURP|
|000001f0| 4f 53 45 2e 0a 25 20 0a | 25 20 0a 25 20 49 4d 50 |OSE..% .|% .% IMP|
|00000200| 4f 52 54 41 4e 54 20 4e | 4f 54 49 43 45 3a 0a 25 |ORTANT N|OTICE:.%|
|00000210| 20 0a 25 20 46 6f 72 20 | 65 72 72 6f 72 20 72 65 | .% For |error re|
|00000220| 70 6f 72 74 73 20 69 6e | 20 63 61 73 65 20 6f 66 |ports in| case of|
|00000230| 20 55 4e 43 48 41 4e 47 | 45 44 20 76 65 72 73 69 | UNCHANG|ED versi|
|00000240| 6f 6e 73 20 73 65 65 20 | 62 75 67 73 2e 74 78 74 |ons see |bugs.txt|
|00000250| 2e 0a 25 20 0a 25 20 50 | 6c 65 61 73 65 20 64 6f |..% .% P|lease do|
|00000260| 20 6e 6f 74 20 72 65 71 | 75 65 73 74 20 75 70 64 | not req|uest upd|
|00000270| 61 74 65 73 20 66 72 6f | 6d 20 75 73 20 64 69 72 |ates fro|m us dir|
|00000280| 65 63 74 6c 79 2e 20 20 | 44 69 73 74 72 69 62 75 |ectly. |Distribu|
|00000290| 74 69 6f 6e 20 69 73 0a | 25 20 64 6f 6e 65 20 74 |tion is.|% done t|
|000002a0| 68 72 6f 75 67 68 20 4d | 61 69 6c 2d 53 65 72 76 |hrough M|ail-Serv|
|000002b0| 65 72 73 20 61 6e 64 20 | 54 65 58 20 6f 72 67 61 |ers and |TeX orga|
|000002c0| 6e 69 7a 61 74 69 6f 6e | 73 2e 0a 25 20 0a 25 20 |nization|s..% .% |
|000002d0| 59 6f 75 20 61 72 65 20 | 6e 6f 74 20 61 6c 6c 6f |You are |not allo|
|000002e0| 77 65 64 20 74 6f 20 63 | 68 61 6e 67 65 20 74 68 |wed to c|hange th|
|000002f0| 69 73 20 66 69 6c 65 2e | 0a 25 20 0a 25 20 59 6f |is file.|.% .% Yo|
|00000300| 75 20 61 72 65 20 61 6c | 6c 6f 77 65 64 20 74 6f |u are al|lowed to|
|00000310| 20 64 69 73 74 72 69 62 | 75 74 65 20 74 68 69 73 | distrib|ute this|
|00000320| 20 66 69 6c 65 20 75 6e | 64 65 72 20 74 68 65 20 | file un|der the |
|00000330| 63 6f 6e 64 69 74 69 6f | 6e 20 74 68 61 74 0a 25 |conditio|n that.%|
|00000340| 20 69 74 20 69 73 20 64 | 69 73 74 72 69 62 75 74 | it is d|istribut|
|00000350| 65 64 20 74 6f 67 65 74 | 68 65 72 20 77 69 74 68 |ed toget|her with|
|00000360| 20 61 6c 6c 20 66 69 6c | 65 73 20 6d 65 6e 74 69 | all fil|es menti|
|00000370| 6f 6e 65 64 20 69 6e 20 | 6d 61 6e 69 66 65 73 74 |oned in |manifest|
|00000380| 2e 74 78 74 2e 0a 25 20 | 0a 25 20 49 66 20 79 6f |.txt..% |.% If yo|
|00000390| 75 20 72 65 63 65 69 76 | 65 20 6f 6e 6c 79 20 73 |u receiv|e only s|
|000003a0| 6f 6d 65 20 6f 66 20 74 | 68 65 73 65 20 66 69 6c |ome of t|hese fil|
|000003b0| 65 73 20 66 72 6f 6d 20 | 73 6f 6d 65 6f 6e 65 2c |es from |someone,|
|000003c0| 20 63 6f 6d 70 6c 61 69 | 6e 21 0a 25 20 0a 25 20 | complai|n!.% .% |
|000003d0| 59 6f 75 20 61 72 65 20 | 4e 4f 54 20 41 4c 4c 4f |You are |NOT ALLO|
|000003e0| 57 45 44 20 74 6f 20 64 | 69 73 74 72 69 62 75 74 |WED to d|istribut|
|000003f0| 65 20 74 68 69 73 20 66 | 69 6c 65 20 61 6c 6f 6e |e this f|ile alon|
|00000400| 65 2e 20 20 59 6f 75 20 | 61 72 65 20 4e 4f 54 0a |e. You |are NOT.|
|00000410| 25 20 41 4c 4c 4f 57 45 | 44 20 74 6f 20 74 61 6b |% ALLOWE|D to tak|
|00000420| 65 20 6d 6f 6e 65 79 20 | 66 6f 72 20 74 68 65 20 |e money |for the |
|00000430| 64 69 73 74 72 69 62 75 | 74 69 6f 6e 20 6f 72 20 |distribu|tion or |
|00000440| 75 73 65 20 6f 66 20 65 | 69 74 68 65 72 20 74 68 |use of e|ither th|
|00000450| 69 73 0a 25 20 66 69 6c | 65 20 6f 72 20 61 20 63 |is.% fil|e or a c|
|00000460| 68 61 6e 67 65 64 20 76 | 65 72 73 69 6f 6e 2c 20 |hanged v|ersion, |
|00000470| 65 78 63 65 70 74 20 66 | 6f 72 20 61 20 6e 6f 6d |except f|or a nom|
|00000480| 69 6e 61 6c 20 63 68 61 | 72 67 65 20 66 6f 72 20 |inal cha|rge for |
|00000490| 63 6f 70 79 69 6e 67 0a | 25 20 65 74 63 2e 0a 25 |copying.|% etc..%|
|000004a0| 20 5c 66 69 0a 25 20 5c | 69 66 66 61 6c 73 65 0a | \fi.% \|iffalse.|
|000004b0| 25 25 0a 25 25 20 46 69 | 6c 65 20 60 69 66 74 68 |%%.%% Fi|le `ifth|
|000004c0| 65 6e 2e 64 74 78 27 2e | 0a 25 25 20 43 6f 70 79 |en.dtx'.|.%% Copy|
|000004d0| 72 69 67 68 74 20 28 43 | 29 20 31 39 39 31 20 62 |right (C|) 1991 b|
|000004e0| 79 20 4c 65 73 6c 69 65 | 20 4c 61 6d 70 6f 72 74 |y Leslie| Lamport|
|000004f0| 0a 25 25 20 43 6f 70 79 | 72 69 67 68 74 20 28 43 |.%% Copy|right (C|
|00000500| 29 20 31 39 39 34 2c 20 | 31 39 39 34 20 4c 61 54 |) 1994, |1994 LaT|
|00000510| 65 58 33 20 70 72 6f 6a | 65 63 74 2c 20 44 61 76 |eX3 proj|ect, Dav|
|00000520| 69 64 20 43 61 72 6c 69 | 73 6c 65 0a 25 25 20 20 |id Carli|sle.%% |
|00000530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000540| 20 20 20 20 20 61 6c 6c | 20 72 69 67 68 74 73 20 | all| rights |
|00000550| 72 65 73 65 72 76 65 64 | 2e 0a 25 25 0a 25 0a 25 |reserved|..%%.%.%|
|00000560| 3c 70 61 63 6b 61 67 65 | 3e 5c 4e 65 65 64 73 54 |<package|>\NeedsT|
|00000570| 65 58 46 6f 72 6d 61 74 | 7b 4c 61 54 65 58 32 65 |eXFormat|{LaTeX2e|
|00000580| 7d 5b 31 39 39 34 2f 30 | 35 2f 32 32 5d 0a 25 3c |}[1994/0|5/22].%<|
|00000590| 70 61 63 6b 61 67 65 3e | 5c 50 72 6f 76 69 64 65 |package>|\Provide|
|000005a0| 73 50 61 63 6b 61 67 65 | 7b 69 66 74 68 65 6e 7d |sPackage|{ifthen}|
|000005b0| 0a 25 3c 70 61 63 6b 61 | 67 65 3e 20 20 20 20 20 |.%<packa|ge> |
|000005c0| 20 20 20 5b 31 39 39 34 | 2f 30 35 2f 32 37 20 76 | [1994|/05/27 v|
|000005d0| 31 2e 30 69 20 53 74 61 | 6e 64 61 72 64 20 4c 61 |1.0i Sta|ndard La|
|000005e0| 54 65 58 20 69 66 74 68 | 65 6e 20 70 61 63 6b 61 |TeX ifth|en packa|
|000005f0| 67 65 20 28 44 50 43 29 | 5d 0a 25 0a 25 3c 2a 64 |ge (DPC)|].%.%<*d|
|00000600| 72 69 76 65 72 3e 0a 5c | 64 6f 63 75 6d 65 6e 74 |river>.\|document|
|00000610| 63 6c 61 73 73 7b 6c 74 | 78 64 6f 63 7d 0a 5c 75 |class{lt|xdoc}.\u|
|00000620| 73 65 70 61 63 6b 61 67 | 65 7b 69 66 74 68 65 6e |sepackag|e{ifthen|
|00000630| 7d 0a 5c 47 65 74 46 69 | 6c 65 49 6e 66 6f 7b 69 |}.\GetFi|leInfo{i|
|00000640| 66 74 68 65 6e 2e 73 74 | 79 7d 0a 5c 62 65 67 69 |fthen.st|y}.\begi|
|00000650| 6e 7b 64 6f 63 75 6d 65 | 6e 74 7d 0a 5c 74 69 74 |n{docume|nt}.\tit|
|00000660| 6c 65 7b 54 68 65 20 5c | 74 65 78 74 73 66 7b 69 |le{The \|textsf{i|
|00000670| 66 74 68 65 6e 7d 20 70 | 61 63 6b 61 67 65 5c 74 |fthen} p|ackage\t|
|00000680| 68 61 6e 6b 73 7b 54 68 | 69 73 20 66 69 6c 65 0a |hanks{Th|is file.|
|00000690| 20 20 20 20 20 20 20 20 | 68 61 73 20 76 65 72 73 | |has vers|
|000006a0| 69 6f 6e 20 6e 75 6d 62 | 65 72 20 5c 66 69 6c 65 |ion numb|er \file|
|000006b0| 76 65 72 73 69 6f 6e 2c | 20 6c 61 73 74 0a 20 20 |version,| last. |
|000006c0| 20 20 20 20 20 20 72 65 | 76 69 73 65 64 20 5c 66 | re|vised \f|
|000006d0| 69 6c 65 64 61 74 65 2e | 7d 7d 0a 5c 61 75 74 68 |iledate.|}}.\auth|
|000006e0| 6f 72 7b 44 61 76 69 64 | 20 43 61 72 6c 69 73 6c |or{David| Carlisl|
|000006f0| 65 7d 0a 5c 64 61 74 65 | 7b 5c 66 69 6c 65 64 61 |e}.\date|{\fileda|
|00000700| 74 65 7d 0a 5c 61 75 74 | 68 6f 72 7b 44 61 76 69 |te}.\aut|hor{Davi|
|00000710| 64 20 43 61 72 6c 69 73 | 6c 65 7d 0a 20 5c 6d 61 |d Carlis|le}. \ma|
|00000720| 6b 65 74 69 74 6c 65 0a | 20 5c 44 6f 63 49 6e 70 |ketitle.| \DocInp|
|00000730| 75 74 7b 69 66 74 68 65 | 6e 2e 64 74 78 7d 0a 5c |ut{ifthe|n.dtx}.\|
|00000740| 65 6e 64 7b 64 6f 63 75 | 6d 65 6e 74 7d 0a 25 3c |end{docu|ment}.%<|
|00000750| 2f 64 72 69 76 65 72 3e | 0a 25 20 5c 66 69 0a 25 |/driver>|.% \fi.%|
|00000760| 0a 25 20 5c 43 68 65 63 | 6b 53 75 6d 7b 32 36 37 |.% \Chec|kSum{267|
|00000770| 7d 0a 25 0a 25 0a 25 20 | 5c 62 65 67 69 6e 7b 61 |}.%.%.% |\begin{a|
|00000780| 62 73 74 72 61 63 74 7d | 0a 25 20 54 68 69 73 20 |bstract}|.% This |
|00000790| 66 69 6c 65 20 69 6d 70 | 6c 65 6d 65 6e 74 73 20 |file imp|lements |
|000007a0| 61 6e 20 7c 5c 69 66 74 | 68 65 6e 65 6c 73 65 7c |an |\ift|henelse||
|000007b0| 20 63 6f 6d 6d 61 6e 64 | 20 66 6f 72 20 5c 4c 61 | command| for \La|
|000007c0| 54 65 58 65 2e 0a 25 20 | 54 68 65 20 61 6c 67 6f |TeXe..% |The algo|
|000007d0| 72 69 74 68 6d 20 75 73 | 65 64 20 69 73 20 63 6f |rithm us|ed is co|
|000007e0| 6d 70 61 74 69 62 6c 65 | 20 77 69 74 68 20 74 68 |mpatible| with th|
|000007f0| 61 74 20 75 73 65 64 20 | 69 6e 20 74 68 65 20 5c |at used |in the \|
|00000800| 4c 61 54 65 58 7e 32 2e | 30 39 0a 25 20 7c 69 66 |LaTeX~2.|09.% |if|
|00000810| 74 68 65 6e 7c 20 73 74 | 79 6c 65 20 6f 70 74 69 |then| st|yle opti|
|00000820| 6f 6e 2e 20 49 74 20 68 | 61 73 20 62 65 65 6e 20 |on. It h|as been |
|00000830| 72 65 63 6f 64 65 64 2c | 20 6d 61 6b 69 6e 67 20 |recoded,| making |
|00000840| 74 68 65 20 72 65 73 75 | 6c 74 69 6e 67 0a 25 20 |the resu|lting.% |
|00000850| 64 65 66 69 6e 69 74 69 | 6f 6e 73 20 73 6f 6d 65 |definiti|ons some|
|00000860| 77 68 61 74 20 6d 6f 72 | 65 20 63 6f 6d 70 61 63 |what mor|e compac|
|00000870| 74 20 61 6e 64 20 65 66 | 66 69 63 69 65 6e 74 2e |t and ef|ficient.|
|00000880| 0a 25 20 5c 65 6e 64 7b | 61 62 73 74 72 61 63 74 |.% \end{|abstract|
|00000890| 7d 0a 25 0a 25 20 5c 63 | 68 61 6e 67 65 73 7b 76 |}.%.% \c|hanges{v|
|000008a0| 31 2e 30 61 7d 7b 31 39 | 39 33 2f 31 30 2f 31 35 |1.0a}{19|93/10/15|
|000008b0| 7d 7b 4e 65 77 20 69 6d | 70 6c 65 6d 65 6e 74 61 |}{New im|plementa|
|000008c0| 74 69 6f 6e 7d 0a 25 20 | 5c 63 68 61 6e 67 65 73 |tion}.% |\changes|
|000008d0| 7b 76 31 2e 30 62 7d 7b | 31 39 39 33 2f 31 32 2f |{v1.0b}{|1993/12/|
|000008e0| 31 37 7d 7b 55 70 67 72 | 61 64 65 20 74 6f 20 4c |17}{Upgr|ade to L|
|000008f0| 61 54 65 58 32 65 7d 0a | 25 20 5c 63 68 61 6e 67 |aTeX2e}.|% \chang|
|00000900| 65 73 7b 76 31 2e 30 65 | 7d 7b 31 39 39 34 2f 30 |es{v1.0e|}{1994/0|
|00000910| 32 2f 31 31 7d 7b 49 6d | 70 72 6f 76 65 20 64 6f |2/11}{Im|prove do|
|00000920| 63 75 6d 65 6e 74 61 74 | 69 6f 6e 7d 0a 25 20 5c |cumentat|ion}.% \|
|00000930| 63 68 61 6e 67 65 73 7b | 76 31 2e 30 66 7d 7b 31 |changes{|v1.0f}{1|
|00000940| 39 39 34 2f 30 33 2f 30 | 32 7d 7b 52 65 6d 6f 76 |994/03/0|2}{Remov|
|00000950| 65 20 6e 65 65 64 20 66 | 6f 72 20 64 74 78 20 66 |e need f|or dtx f|
|00000960| 69 6c 65 7d 0a 25 20 5c | 63 68 61 6e 67 65 73 7b |ile}.% \|changes{|
|00000970| 76 31 2e 30 67 7d 7b 31 | 39 39 34 2f 30 33 2f 31 |v1.0g}{1|994/03/1|
|00000980| 34 7d 7b 4d 6f 64 69 66 | 79 20 66 6f 72 20 74 68 |4}{Modif|y for th|
|00000990| 65 20 6e 65 77 20 6c 74 | 78 64 6f 63 2e 63 6c 73 |e new lt|xdoc.cls|
|000009a0| 7d 0a 25 0a 25 20 5c 73 | 65 63 74 69 6f 6e 7b 49 |}.%.% \s|ection{I|
|000009b0| 6e 74 72 6f 64 75 63 74 | 69 6f 6e 7d 0a 25 0a 25 |ntroduct|ion}.%.%|
|000009c0| 20 5c 44 65 73 63 72 69 | 62 65 4d 61 63 72 6f 7b | \Descri|beMacro{|
|000009d0| 5c 69 66 74 68 65 6e 65 | 6c 73 65 7d 0a 25 20 7c |\ifthene|lse}.% ||
|000009e0| 5c 69 66 74 68 65 6e 65 | 6c 73 65 7b 7c 5e 5e 41 |\ifthene|lse{|^^A|
|000009f0| 0a 25 20 20 20 20 20 20 | 20 5c 6d 65 74 61 7b 74 |.% | \meta{t|
|00000a00| 65 73 74 7d 7c 7d 7b 7c | 5c 6d 65 74 61 7b 74 68 |est}|}{||\meta{th|
|00000a10| 65 6e 20 63 6c 61 75 73 | 65 7d 7c 7d 7b 7c 5c 6d |en claus|e}|}{|\m|
|00000a20| 65 74 61 7b 65 6c 73 65 | 20 63 6c 61 75 73 65 7d |eta{else| clause}|
|00000a30| 7c 7d 7c 0a 25 0a 25 20 | 45 76 61 6c 75 61 74 65 ||}|.%.% |Evaluate|
|00000a40| 73 20 5c 6d 65 74 61 7b | 74 65 73 74 7d 20 61 73 |s \meta{|test} as|
|00000a50| 20 61 20 62 6f 6f 6c 65 | 61 6e 20 66 75 6e 63 74 | a boole|an funct|
|00000a60| 69 6f 6e 2c 20 61 6e 64 | 20 74 68 65 6e 20 65 78 |ion, and| then ex|
|00000a70| 65 63 75 74 65 73 0a 25 | 20 65 69 74 68 65 72 20 |ecutes.%| either |
|00000a80| 5c 6d 65 74 61 7b 74 68 | 65 6e 20 63 6c 61 75 73 |\meta{th|en claus|
|00000a90| 65 7d 20 6f 72 20 5c 6d | 65 74 61 7b 65 6c 73 65 |e} or \m|eta{else|
|00000aa0| 20 63 6c 61 75 73 65 7d | 2e 0a 25 0a 25 20 5c 6d | clause}|..%.% \m|
|00000ab0| 65 74 61 7b 74 65 73 74 | 7d 20 69 73 20 61 20 62 |eta{test|} is a b|
|00000ac0| 6f 6f 6c 65 61 6e 20 65 | 78 70 72 65 73 73 69 6f |oolean e|xpressio|
|00000ad0| 6e 20 75 73 69 6e 67 20 | 74 68 65 20 69 6e 66 69 |n using |the infi|
|00000ae0| 78 20 63 6f 6e 6e 65 63 | 74 69 76 65 73 2c 0a 25 |x connec|tives,.%|
|00000af0| 20 7c 5c 61 6e 64 7c 2c | 20 7c 5c 6f 72 7c 2c 20 | |\and|,| |\or|, |
|00000b00| 74 68 65 20 75 6e 61 72 | 79 20 7c 5c 6e 6f 74 7c |the unar|y |\not||
|00000b10| 20 61 6e 64 20 70 61 72 | 65 6e 74 68 65 73 65 73 | and par|entheses|
|00000b20| 20 7c 5c 28 20 5c 29 7c | 2e 0a 25 0a 25 20 54 68 | |\( \)||..%.% Th|
|00000b30| 65 20 61 74 6f 6d 69 63 | 20 20 70 72 6f 70 6f 73 |e atomic| propos|
|00000b40| 69 74 69 6f 6e 73 20 61 | 72 65 3a 5c 5c 0a 25 20 |itions a|re:\\.% |
|00000b50| 5c 6d 65 74 61 7b 6e 75 | 6d 62 65 72 7d 20 7c 3c |\meta{nu|mber} |<|
|00000b60| 7c 20 5c 6d 65 74 61 7b | 6e 75 6d 62 65 72 7d 20 || \meta{|number} |
|00000b70| 5c 5c 0a 25 20 5c 6d 65 | 74 61 7b 6e 75 6d 62 65 |\\.% \me|ta{numbe|
|00000b80| 72 7d 20 7c 3d 7c 20 5c | 6d 65 74 61 7b 6e 75 6d |r} |=| \|meta{num|
|00000b90| 62 65 72 7d 20 5c 5c 0a | 25 20 5c 6d 65 74 61 7b |ber} \\.|% \meta{|
|00000ba0| 6e 75 6d 62 65 72 7d 20 | 7c 3e 7c 20 5c 6d 65 74 |number} ||>| \met|
|00000bb0| 61 7b 6e 75 6d 62 65 72 | 7d 20 5c 5c 0a 25 20 7c |a{number|} \\.% ||
|00000bc0| 5c 69 73 6f 64 64 7b 7c | 20 5c 6d 65 74 61 7b 6e |\isodd{|| \meta{n|
|00000bd0| 75 6d 62 65 72 7d 20 7c | 7d 7c 5c 5c 0a 25 20 7c |umber} ||}|\\.% ||
|00000be0| 5c 65 71 75 61 6c 7b 7c | 5c 6d 65 74 61 7b 73 74 |\equal{||\meta{st|
|00000bf0| 72 69 6e 67 7d 7c 7d 7b | 7c 5c 6d 65 74 61 7b 73 |ring}|}{||\meta{s|
|00000c00| 74 72 69 6e 67 7d 7c 7d | 7c 5c 5c 0a 25 20 7c 5c |tring}|}||\\.% |\|
|00000c10| 6c 65 6e 67 74 68 74 65 | 73 74 7b 7c 5c 6d 65 74 |lengthte|st{|\met|
|00000c20| 61 7b 64 69 6d 65 6e 7d | 7c 3c 7c 5c 6d 65 74 61 |a{dimen}||<|\meta|
|00000c30| 7b 64 69 6d 65 6e 7d 7c | 7d 7c 5c 5c 0a 25 20 7c |{dimen}||}|\\.% ||
|00000c40| 5c 6c 65 6e 67 74 68 74 | 65 73 74 7b 7c 5c 6d 65 |\lengtht|est{|\me|
|00000c50| 74 61 7b 64 69 6d 65 6e | 7d 7c 3d 7c 5c 6d 65 74 |ta{dimen|}|=|\met|
|00000c60| 61 7b 64 69 6d 65 6e 7d | 7c 7d 7c 5c 5c 0a 25 20 |a{dimen}||}|\\.% |
|00000c70| 7c 5c 6c 65 6e 67 74 68 | 74 65 73 74 7b 7c 5c 6d ||\length|test{|\m|
|00000c80| 65 74 61 7b 64 69 6d 65 | 6e 7d 7c 3e 7c 5c 6d 65 |eta{dime|n}|>|\me|
|00000c90| 74 61 7b 64 69 6d 65 6e | 7d 7c 7d 7c 5c 5c 0a 25 |ta{dimen|}|}|\\.%|
|00000ca0| 20 7c 5c 62 6f 6f 6c 65 | 61 6e 7b 7c 5c 6d 65 74 | |\boole|an{|\met|
|00000cb0| 61 7b 6e 61 6d 65 7d 7c | 7d 7c 0a 25 0a 25 20 54 |a{name}||}|.%.% T|
|00000cc0| 68 65 20 5c 6d 65 74 61 | 7b 73 74 72 69 6e 67 7d |he \meta|{string}|
|00000cd0| 73 20 74 65 73 74 65 64 | 20 62 79 20 7c 5c 65 71 |s tested| by |\eq|
|00000ce0| 75 61 6c 7c 20 6d 61 79 | 20 62 65 20 61 6e 79 20 |ual| may| be any |
|00000cf0| 73 65 71 75 65 6e 63 65 | 20 6f 66 20 63 6f 6d 6d |sequence| of comm|
|00000d00| 61 6e 64 73 0a 25 20 74 | 68 61 74 20 65 78 70 61 |ands.% t|hat expa|
|00000d10| 6e 64 20 74 6f 20 61 20 | 6c 69 73 74 20 6f 66 20 |nd to a |list of |
|00000d20| 74 6f 6b 65 6e 73 2e 20 | 49 66 20 74 68 65 73 65 |tokens. |If these|
|00000d30| 20 65 78 70 61 6e 73 69 | 6f 6e 73 20 61 72 65 20 | expansi|ons are |
|00000d40| 65 71 75 61 6c 2c 20 74 | 68 65 6e 0a 25 20 74 68 |equal, t|hen.% th|
|00000d50| 65 20 70 72 6f 70 6f 73 | 69 74 69 6f 6e 20 69 73 |e propos|ition is|
|00000d60| 20 74 72 75 65 2e 0a 25 | 0a 25 20 7c 5c 69 73 6f | true..%|.% |\iso|
|00000d70| 64 64 7c 20 69 73 20 74 | 72 75 65 20 69 66 20 74 |dd| is t|rue if t|
|00000d80| 68 65 20 5c 6d 65 74 61 | 7b 6e 75 6d 62 65 72 7d |he \meta|{number}|
|00000d90| 20 69 73 20 6f 64 64 2c | 20 61 6e 64 20 66 61 6c | is odd,| and fal|
|00000da0| 73 65 20 6f 74 68 65 72 | 77 69 73 65 0a 25 20 28 |se other|wise.% (|
|00000db0| 65 76 65 6e 20 69 66 20 | 74 68 65 20 61 72 67 75 |even if |the argu|
|00000dc0| 6d 65 6e 74 20 69 73 20 | 6e 6f 74 20 61 20 6e 75 |ment is |not a nu|
|00000dd0| 6d 62 65 72 29 2e 0a 25 | 0a 25 20 7c 5c 62 6f 6f |mber)..%|.% |\boo|
|00000de0| 6c 65 61 6e 7b 78 79 7a | 7d 7c 20 72 65 74 75 72 |lean{xyz|}| retur|
|00000df0| 6e 73 20 74 68 65 20 74 | 72 75 74 68 20 76 61 6c |ns the t|ruth val|
|00000e00| 75 65 20 63 6f 6e 74 61 | 69 6e 65 64 20 69 6e 20 |ue conta|ined in |
|00000e10| 74 68 65 20 70 72 69 6d | 69 74 69 76 65 0a 25 20 |the prim|itive.% |
|00000e20| 5c 54 65 58 5c 20 7c 5c | 69 66 7c 2c 20 7c 5c 69 |\TeX\ |\|if|, |\i|
|00000e30| 66 78 79 7a 7c 2e 20 54 | 68 69 73 20 69 73 20 75 |fxyz|. T|his is u|
|00000e40| 73 75 61 6c 6c 79 20 75 | 73 65 64 20 77 69 74 68 |sually u|sed with|
|00000e50| 20 7c 5c 6e 65 77 69 66 | 7c 20 63 72 65 61 74 65 | |\newif|| create|
|00000e60| 64 0a 25 20 74 6f 6b 65 | 6e 73 2c 20 62 75 74 20 |d.% toke|ns, but |
|00000e70| 63 61 6e 20 61 6c 73 6f | 20 62 65 20 75 73 65 64 |can also| be used|
|00000e80| 20 77 69 74 68 20 7c 5c | 62 6f 6f 6c 65 61 6e 7b | with |\|boolean{|
|00000e90| 74 72 75 65 7d 7c 20 28 | 7c 5c 69 66 74 72 75 65 |true}| (||\iftrue|
|00000ea0| 7c 29 2c 0a 25 20 7c 5c | 62 6f 6f 6c 65 61 6e 7b ||),.% |\|boolean{|
|00000eb0| 6d 6d 6f 64 65 7d 7c 20 | 28 7c 5c 69 66 6d 6d 6f |mmode}| |(|\ifmmo|
|00000ec0| 64 65 7c 29 20 65 74 63 | 2e 0a 25 0a 25 20 5c 44 |de|) etc|..%.% \D|
|00000ed0| 65 73 63 72 69 62 65 4d | 61 63 72 6f 7b 5c 6e 65 |escribeM|acro{\ne|
|00000ee0| 77 62 6f 6f 6c 65 61 6e | 7d 0a 25 20 20 54 68 65 |wboolean|}.% The|
|00000ef0| 20 63 6f 6d 6d 61 6e 64 | 73 3a 5c 5c 0a 25 20 20 | command|s:\\.% |
|00000f00| 7c 5c 6e 65 77 62 6f 6f | 6c 65 61 6e 7b 7c 5c 6d ||\newboo|lean{|\m|
|00000f10| 65 74 61 7b 6e 61 6d 65 | 7d 7c 7d 7c 20 61 6e 64 |eta{name|}|}| and|
|00000f20| 5c 44 65 73 63 72 69 62 | 65 4d 61 63 72 6f 7b 5c |\Describ|eMacro{\|
|00000f30| 73 65 74 62 6f 6f 6c 65 | 61 6e 7d 0a 25 20 20 7c |setboole|an}.% ||
|00000f40| 5c 73 65 74 62 6f 6f 6c | 65 61 6e 7b 7c 5c 6d 65 |\setbool|ean{|\me|
|00000f50| 74 61 7b 6e 61 6d 65 7d | 7c 7d 7b 7c 5c 6d 65 74 |ta{name}||}{|\met|
|00000f60| 61 7b 76 61 6c 75 65 7d | 7c 7d 7c 5c 5c 0a 25 20 |a{value}||}|\\.% |
|00000f70| 61 72 65 20 70 72 6f 76 | 69 64 65 64 20 73 6f 20 |are prov|ided so |
|00000f80| 74 68 65 20 75 73 65 72 | 20 63 61 6e 20 65 61 73 |the user| can eas|
|00000f90| 69 6c 79 20 63 72 65 61 | 74 65 20 61 6e 64 20 73 |ily crea|te and s|
|00000fa0| 65 74 20 74 68 65 73 65 | 20 66 6c 61 67 73 2e 0a |et these| flags..|
|00000fb0| 25 20 5c 6d 65 74 61 7b | 76 61 6c 75 65 7d 20 6d |% \meta{|value} m|
|00000fc0| 61 79 20 62 65 20 65 69 | 74 68 65 72 20 7c 74 72 |ay be ei|ther |tr|
|00000fd0| 75 65 7c 20 6f 72 20 7c | 66 61 6c 73 65 7c 20 28 |ue| or ||false| (|
|00000fe0| 61 6e 79 20 43 61 53 65 | 29 2e 0a 25 0a 25 20 4e |any CaSe|)..%.% N|
|00000ff0| 6f 74 65 20 74 68 61 74 | 20 74 68 65 72 65 20 69 |ote that| there i|
|00001000| 73 20 6e 6f 20 70 72 65 | 63 65 64 65 6e 63 65 20 |s no pre|cedence |
|00001010| 62 65 74 77 65 65 6e 20 | 7c 5c 61 6e 64 7c 20 61 |between ||\and| a|
|00001020| 6e 64 20 7c 5c 6f 72 7c | 2e 0a 25 20 54 68 65 20 |nd |\or||..% The |
|00001030| 70 72 6f 70 6f 73 69 74 | 69 6f 6e 20 69 73 20 65 |proposit|ion is e|
|00001040| 76 61 6c 75 61 74 65 64 | 20 69 6e 20 61 20 6c 65 |valuated| in a le|
|00001050| 66 74 20 72 69 67 68 74 | 20 6d 61 6e 6e 65 72 2e |ft right| manner.|
|00001060| 20 7c 5c 6e 6f 74 7c 20 | 6f 6e 6c 79 0a 25 20 61 | |\not| |only.% a|
|00001070| 70 70 6c 69 65 73 20 74 | 6f 20 74 68 65 20 69 6d |pplies t|o the im|
|00001080| 6d 65 64 69 61 74 65 6c | 79 20 66 6f 6c 6c 6f 77 |mediatel|y follow|
|00001090| 69 6e 67 20 70 72 6f 70 | 6f 73 69 74 69 6f 6e 2e |ing prop|osition.|
|000010a0| 20 28 54 68 69 73 20 69 | 73 20 63 6f 6e 73 69 73 | (This i|s consis|
|000010b0| 74 65 6e 74 0a 25 20 77 | 69 74 68 20 4c 61 6d 70 |tent.% w|ith Lamp|
|000010c0| 6f 72 74 27 73 20 7c 69 | 66 74 68 65 6e 2e 73 74 |ort's |i|fthen.st|
|000010d0| 79 7c 2e 20 49 6e 20 74 | 68 69 73 20 73 74 79 6c |y|. In t|his styl|
|000010e0| 65 2c 20 74 68 6f 75 67 | 68 20 74 68 65 20 74 65 |e, thoug|h the te|
|000010f0| 73 74 20 69 73 0a 25 20 | 60 6c 61 7a 69 6c 79 27 |st is.% |`lazily'|
|00001100| 20 65 76 61 6c 75 61 74 | 65 64 2c 20 73 6f 20 66 | evaluat|ed, so f|
|00001110| 6f 72 20 69 6e 73 74 61 | 6e 63 65 20 69 66 20 74 |or insta|nce if t|
|00001120| 68 65 20 66 69 72 73 74 | 20 70 72 6f 70 6f 73 69 |he first| proposi|
|00001130| 74 69 6f 6e 20 69 6e 20 | 61 6e 0a 25 20 7c 5c 6f |tion in |an.% |\o|
|00001140| 72 7c 20 69 73 20 74 72 | 75 65 2c 20 74 68 65 20 |r| is tr|ue, the |
|00001150| 73 65 63 6f 6e 64 20 6f | 6e 65 20 69 73 20 73 6b |second o|ne is sk|
|00001160| 69 70 70 65 64 2e 20 28 | 4f 6e 20 74 68 65 20 73 |ipped. (|On the s|
|00001170| 65 63 6f 6e 64 20 70 61 | 73 73 2d 2d 2d 54 68 65 |econd pa|ss---The|
|00001180| 0a 25 20 66 69 72 73 74 | 20 70 61 73 73 20 69 6e |.% first| pass in|
|00001190| 20 61 6e 20 7c 5c 65 64 | 65 66 7c 20 65 78 70 61 | an |\ed|ef| expa|
|000011a0| 6e 64 73 20 63 6c 61 75 | 73 65 73 20 69 6e 20 61 |nds clau|ses in a|
|000011b0| 6c 6c 20 70 72 6f 70 6f | 73 69 74 69 6f 6e 73 29 |ll propo|sitions)|
|000011c0| 2e 0a 25 0a 25 20 41 70 | 61 72 74 20 66 72 6f 6d |..%.% Ap|art from|
|000011d0| 20 74 68 65 20 61 64 64 | 69 74 69 6f 6e 20 6f 66 | the add|ition of|
|000011e0| 20 74 68 65 20 65 78 74 | 72 61 20 61 74 6f 6d 69 | the ext|ra atomi|
|000011f0| 63 20 70 72 6f 70 6f 73 | 69 74 69 6f 6e 73 20 7c |c propos|itions ||
|00001200| 5c 69 73 6f 64 64 7c 2c | 0a 25 20 7c 5c 62 6f 6f |\isodd|,|.% |\boo|
|00001210| 6c 65 61 6e 7c 20 61 6e | 64 20 7c 5c 6c 65 6e 67 |lean| an|d |\leng|
|00001220| 74 68 74 65 73 74 7c 2c | 20 74 68 65 20 6f 6e 6c |thtest|,| the onl|
|00001230| 79 20 6b 6e 6f 77 6e 20 | 69 6e 63 6f 6d 70 61 74 |y known |incompat|
|00001240| 69 62 69 6c 69 74 79 20 | 69 73 20 74 68 61 74 0a |ibility |is that.|
|00001250| 25 20 69 6e 20 74 68 69 | 73 20 70 61 63 6b 61 67 |% in thi|s packag|
|00001260| 65 20 74 68 65 20 65 78 | 70 72 65 73 73 69 6f 6e |e the ex|pression|
|00001270| 7c 5c 6e 6f 74 5c 6e 6f | 74 7c 5c 6d 65 74 61 7b ||\not\no|t|\meta{|
|00001280| 50 7d 20 69 73 20 65 71 | 75 69 76 61 6c 65 6e 74 |P} is eq|uivalent|
|00001290| 20 74 6f 0a 25 20 5c 6d | 65 74 61 7b 50 7d 2e 0a | to.% \m|eta{P}..|
|000012a0| 25 20 48 6f 77 65 76 65 | 72 20 69 6e 20 74 68 65 |% Howeve|r in the|
|000012b0| 20 6f 72 69 67 69 6e 61 | 6c 20 73 74 79 6c 65 20 | origina|l style |
|000012c0| 69 74 20 77 61 73 20 65 | 71 75 69 76 61 6c 65 6e |it was e|quivalen|
|000012d0| 74 20 74 6f 20 7c 5c 6e | 6f 74 7c 5c 6d 65 74 61 |t to |\n|ot|\meta|
|000012e0| 7b 50 7d 2e 0a 25 20 54 | 68 69 73 20 69 73 20 69 |{P}..% T|his is i|
|000012f0| 6e 74 65 6e 74 69 6f 6e | 61 6c 20 28 62 75 67 20 |ntention|al (bug |
|00001300| 66 69 78 3a 2d 29 2e 0a | 25 0a 25 20 5c 44 65 73 |fix:-)..|%.% \Des|
|00001310| 63 72 69 62 65 4d 61 63 | 72 6f 7b 5c 77 68 69 6c |cribeMac|ro{\whil|
|00001320| 65 64 6f 7d 0a 25 20 54 | 68 65 20 63 6f 6d 6d 61 |edo}.% T|he comma|
|00001330| 6e 64 20 7c 5c 77 68 69 | 6c 65 64 6f 7c 20 69 73 |nd |\whi|ledo| is|
|00001340| 20 61 6c 73 6f 20 64 65 | 66 69 6e 65 64 20 28 63 | also de|fined (c|
|00001350| 6f 70 69 65 64 20 64 69 | 72 65 63 74 6c 79 20 66 |opied di|rectly f|
|00001360| 72 6f 6d 0a 25 20 54 68 | 65 20 5c 4c 61 54 65 58 |rom.% Th|e \LaTeX|
|00001370| 32 2e 30 39 20 64 65 66 | 69 6e 69 74 69 6f 6e 29 |2.09 def|inition)|
|00001380| 2e 0a 25 0a 25 20 7c 5c | 77 68 69 6c 65 64 6f 7b |..%.% |\|whiledo{|
|00001390| 7c 5c 6d 65 74 61 7b 74 | 65 73 74 7d 7c 7d 7b 7c ||\meta{t|est}|}{||
|000013a0| 5c 6d 65 74 61 7b 77 68 | 69 6c 65 20 63 6c 61 75 |\meta{wh|ile clau|
|000013b0| 73 65 7d 7c 7d 7c 0a 25 | 0a 25 20 57 69 74 68 20 |se}|}|.%|.% With |
|000013c0| 5c 6d 65 74 61 7b 74 65 | 73 74 7d 20 61 73 20 61 |\meta{te|st} as a|
|000013d0| 62 6f 76 65 2c 20 72 65 | 70 65 61 74 65 64 6c 79 |bove, re|peatedly|
|000013e0| 20 65 78 65 63 75 74 65 | 73 20 5c 6d 65 74 61 7b | execute|s \meta{|
|000013f0| 77 68 69 6c 65 20 63 6c | 61 75 73 65 7d 0a 25 20 |while cl|ause}.% |
|00001400| 77 68 69 6c 65 20 74 68 | 65 20 74 65 73 74 20 72 |while th|e test r|
|00001410| 65 6d 61 69 6e 73 20 74 | 72 75 65 2e 0a 25 0a 25 |emains t|rue..%.%|
|00001420| 20 5c 53 74 6f 70 45 76 | 65 6e 74 75 61 6c 6c 79 | \StopEv|entually|
|00001430| 7b 7d 0a 25 0a 25 20 5c | 73 65 63 74 69 6f 6e 7b |{}.%.% \|section{|
|00001440| 54 68 65 20 49 6d 70 6c | 65 6d 65 6e 74 61 74 69 |The Impl|ementati|
|00001450| 6f 6e 7d 0a 25 0a 25 20 | 20 20 20 5c 62 65 67 69 |on}.%.% | \begi|
|00001460| 6e 7b 6d 61 63 72 6f 63 | 6f 64 65 7d 0a 25 3c 2a |n{macroc|ode}.%<*|
|00001470| 70 61 63 6b 61 67 65 3e | 0a 25 20 20 20 20 5c 65 |package>|.% \e|
|00001480| 6e 64 7b 6d 61 63 72 6f | 63 6f 64 65 7d 0a 25 0a |nd{macro|code}.%.|
|00001490| 25 20 5c 62 65 67 69 6e | 7b 6d 61 63 72 6f 7d 7b |% \begin|{macro}{|
|000014a0| 5c 54 45 40 74 68 72 6f | 77 7d 0a 25 20 49 6e 20 |\TE@thro|w}.% In |
|000014b0| 6f 72 64 65 72 20 74 6f | 20 73 75 70 70 6f 72 74 |order to| support|
|000014c0| 20 74 68 65 20 73 79 6e | 74 61 78 20 6f 66 20 7c | the syn|tax of ||
|000014d0| 69 66 74 68 65 6e 2e 73 | 74 79 7c 2c 20 77 68 69 |ifthen.s|ty|, whi|
|000014e0| 63 68 20 61 6c 6c 6f 77 | 73 20 61 63 63 65 73 73 |ch allow|s access|
|000014f0| 0a 25 20 74 6f 20 74 68 | 65 20 70 72 69 6d 69 74 |.% to th|e primit|
|00001500| 69 76 65 20 5c 54 65 58 | 5c 20 73 79 6e 74 61 78 |ive \TeX|\ syntax|
|00001510| 20 66 6f 72 20 61 20 6e | 75 6d 65 72 69 63 20 74 | for a n|umeric t|
|00001520| 65 73 74 2c 20 72 61 74 | 68 65 72 20 74 68 61 6e |est, rat|her than|
|00001530| 20 61 20 7c 7b 7d 7c 0a | 25 20 64 65 6c 69 6d 69 | a |{}|.|% delimi|
|00001540| 74 65 64 20 61 72 67 75 | 6d 65 6e 74 20 66 6f 72 |ted argu|ment for|
|00001550| 6d 2c 20 69 74 20 69 73 | 20 6d 6f 73 74 20 63 6f |m, it is| most co|
|00001560| 6e 76 65 6e 69 65 6e 74 | 20 74 6f 20 77 6f 72 6b |nvenient| to work|
|00001570| 20 60 77 69 74 68 69 6e | 27 20 61 6e 0a 25 20 7c | `within|' an.% ||
|00001580| 5c 69 66 6e 75 6d 7c 2e | 20 7c 5c 69 66 74 40 74 |\ifnum|.| |\ift@t|
|00001590| 68 72 6f 77 7c 20 60 74 | 68 72 6f 77 73 27 20 79 |hrow| `t|hrows' y|
|000015a0| 6f 75 20 6f 75 74 20 6f | 66 20 74 68 65 20 63 75 |ou out o|f the cu|
|000015b0| 72 72 65 6e 74 20 7c 5c | 69 66 6e 75 6d 7c 20 73 |rrent |\|ifnum| s|
|000015c0| 6f 0a 25 20 74 68 61 74 | 20 79 6f 75 20 63 61 6e |o.% that| you can|
|000015d0| 20 28 65 67 29 20 73 74 | 61 72 74 20 61 6e 20 7c | (eg) st|art an ||
|000015e0| 5c 69 66 64 69 6d 7c 20 | 66 6f 72 20 74 68 65 20 |\ifdim| |for the |
|000015f0| 6c 65 6e 67 74 68 20 74 | 65 73 74 73 2e 0a 25 20 |length t|ests..% |
|00001600| 20 20 20 5c 62 65 67 69 | 6e 7b 6d 61 63 72 6f 63 | \begi|n{macroc|
|00001610| 6f 64 65 7d 0a 5c 64 65 | 66 5c 54 45 40 74 68 72 |ode}.\de|f\TE@thr|
|00001620| 6f 77 7b 5c 40 6e 65 3d | 5c 40 6e 65 5c 6e 6f 65 |ow{\@ne=|\@ne\noe|
|00001630| 78 70 61 6e 64 5c 66 69 | 7d 0a 25 20 20 20 20 5c |xpand\fi|}.% \|
|00001640| 65 6e 64 7b 6d 61 63 72 | 6f 63 6f 64 65 7d 0a 25 |end{macr|ocode}.%|
|00001650| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 7d 0a 25 0a 25 | \end{ma|cro}.%.%|
|00001660| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 7d 7b 5c | \begin{|macro}{\|
|00001670| 62 6f 6f 6c 65 61 6e 7d | 0a 25 20 41 20 6e 6f 6e |boolean}|.% A non|
|00001680| 2d 73 74 61 6e 64 61 72 | 64 20 65 78 74 65 6e 73 |-standar|d extens|
|00001690| 69 6f 6e 20 74 6f 20 7c | 69 66 74 68 65 6e 7c 2c |ion to ||ifthen|,|
|000016a0| 20 73 75 70 70 6f 72 74 | 69 6e 67 20 62 6f 6f 6c | support|ing bool|
|000016b0| 65 61 6e 20 77 61 73 0a | 25 20 70 72 65 76 69 6f |ean was.|% previo|
|000016c0| 75 73 6c 79 20 61 76 61 | 69 6c 61 62 6c 65 2c 20 |usly ava|ilable, |
|000016d0| 74 68 69 73 20 69 73 20 | 61 20 73 69 6d 70 6c 65 |this is |a simple|
|000016e0| 72 20 69 6d 70 6c 65 6d | 65 6e 74 61 74 69 6f 6e |r implem|entation|
|000016f0| 2e 0a 25 20 20 20 20 5c | 62 65 67 69 6e 7b 6d 61 |..% \|begin{ma|
|00001700| 63 72 6f 63 6f 64 65 7d | 0a 5c 64 65 66 5c 62 6f |crocode}|.\def\bo|
|00001710| 6f 6c 65 61 6e 23 31 23 | 32 7b 25 0a 20 20 5c 54 |olean#1#|2{%. \T|
|00001720| 45 40 74 68 72 6f 77 5c | 65 78 70 61 6e 64 61 66 |E@throw\|expandaf|
|00001730| 74 65 72 5c 6e 6f 65 78 | 70 61 6e 64 5c 63 73 6e |ter\noex|pand\csn|
|00001740| 61 6d 65 20 69 66 23 31 | 5c 65 6e 64 63 73 6e 61 |ame if#1|\endcsna|
|00001750| 6d 65 23 32 7d 0a 25 20 | 20 20 20 5c 65 6e 64 7b |me#2}.% | \end{|
|00001760| 6d 61 63 72 6f 63 6f 64 | 65 7d 0a 25 20 5c 65 6e |macrocod|e}.% \en|
|00001770| 64 7b 6d 61 63 72 6f 7d | 0a 25 0a 25 20 5c 62 65 |d{macro}|.%.% \be|
|00001780| 67 69 6e 7b 6d 61 63 72 | 6f 7d 7b 5c 54 45 40 6c |gin{macr|o}{\TE@l|
|00001790| 65 6e 67 74 68 7d 0a 25 | 20 54 65 73 74 69 6e 67 |ength}.%| Testing|
|000017a0| 20 6c 65 6e 67 74 68 73 | 2e 20 7c 23 31 7c 20 69 | lengths|. |#1| i|
|000017b0| 73 20 74 68 65 20 74 65 | 73 74 2e 20 54 68 65 20 |s the te|st. The |
|000017c0| 65 78 74 72 61 20 61 72 | 67 75 6d 65 6e 74 20 67 |extra ar|gument g|
|000017d0| 6f 62 62 6c 65 73 20 73 | 70 61 63 65 73 2e 0a 25 |obbles s|paces..%|
|000017e0| 20 20 20 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f | \beg|in{macro|
|000017f0| 63 6f 64 65 7d 0a 5c 64 | 65 66 5c 54 45 40 6c 65 |code}.\d|ef\TE@le|
|00001800| 6e 67 74 68 23 31 23 32 | 7b 5c 54 45 40 74 68 72 |ngth#1#2|{\TE@thr|
|00001810| 6f 77 5c 6e 6f 65 78 70 | 61 6e 64 5c 69 66 64 69 |ow\noexp|and\ifdi|
|00001820| 6d 23 31 23 32 7d 0a 25 | 20 20 20 20 5c 65 6e 64 |m#1#2}.%| \end|
|00001830| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 25 20 5c 65 |{macroco|de}.% \e|
|00001840| 6e 64 7b 6d 61 63 72 6f | 7d 0a 25 0a 25 20 5c 62 |nd{macro|}.%.% \b|
|00001850| 65 67 69 6e 7b 6d 61 63 | 72 6f 7d 7b 5c 54 45 40 |egin{mac|ro}{\TE@|
|00001860| 6f 64 64 7d 0a 25 20 5c | 62 65 67 69 6e 7b 6d 61 |odd}.% \|begin{ma|
|00001870| 63 72 6f 7d 7b 5c 54 45 | 40 40 6f 64 64 7d 0a 25 |cro}{\TE|@@odd}.%|
|00001880| 20 54 65 73 74 69 6e 67 | 20 6f 64 64 2f 65 76 65 | Testing| odd/eve|
|00001890| 6e 2e 20 54 68 69 73 20 | 69 73 20 74 72 75 65 20 |n. This |is true |
|000018a0| 69 66 20 7c 23 31 7c 20 | 69 73 20 61 6e 20 6f 64 |if |#1| |is an od|
|000018b0| 64 20 6e 75 6d 62 65 72 | 2c 20 61 6e 64 20 66 61 |d number|, and fa|
|000018c0| 6c 73 65 0a 25 20 6f 74 | 68 65 72 77 69 73 65 20 |lse.% ot|herwise |
|000018d0| 28 65 76 65 6e 20 69 66 | 20 7c 23 31 7c 20 69 73 |(even if| |#1| is|
|000018e0| 20 6e 6f 74 20 61 20 6e | 75 6d 62 65 72 20 61 74 | not a n|umber at|
|000018f0| 20 61 6c 6c 29 2e 0a 25 | 0a 25 20 49 74 20 69 73 | all)..%|.% It is|
|00001900| 20 68 61 72 64 20 74 6f | 20 6d 61 6b 65 20 74 68 | hard to| make th|
|00001910| 69 73 20 63 6f 6d 70 6c | 65 74 65 6c 79 20 72 65 |is compl|etely re|
|00001920| 6c 69 61 62 6c 65 2e 20 | 48 65 72 65 20 49 20 68 |liable. |Here I h|
|00001930| 61 76 65 20 65 72 72 65 | 64 20 6f 6e 20 74 68 65 |ave erre|d on the|
|00001940| 0a 25 20 73 69 64 65 20 | 6f 66 20 73 61 66 65 74 |.% side |of safet|
|00001950| 79 2e 20 54 68 69 73 20 | 73 68 6f 75 6c 64 20 6e |y. This |should n|
|00001960| 6f 74 20 67 65 6e 65 72 | 61 74 65 20 61 20 5c 54 |ot gener|ate a \T|
|00001970| 65 58 5c 20 65 72 72 6f | 72 20 69 66 20 67 69 76 |eX\ erro|r if giv|
|00001980| 65 6e 20 61 6e 79 0a 25 | 20 72 6f 62 75 73 74 20 |en any.%| robust |
|00001990| 63 6f 6d 6d 61 6e 64 73 | 20 61 73 20 69 74 73 20 |commands| as its |
|000019a0| 61 72 67 75 6d 65 6e 74 | 2e 20 48 6f 77 65 76 65 |argument|. Howeve|
|000019b0| 72 20 69 74 20 72 65 74 | 75 72 6e 73 20 74 72 75 |r it ret|urns tru|
|000019c0| 65 20 6f 6e 20 61 6e 79 | 0a 25 20 61 72 67 75 6d |e on any|.% argum|
|000019d0| 65 6e 74 20 74 68 61 74 | 20 5c 65 6d 70 68 7b 73 |ent that| \emph{s|
|000019e0| 74 61 72 74 73 7d 20 77 | 69 74 68 20 61 6e 20 6f |tarts} w|ith an o|
|000019f0| 64 64 20 6e 75 6d 62 65 | 72 20 7c 31 31 78 78 7c |dd numbe|r |11xx||
|00001a00| 20 77 68 69 63 68 20 69 | 73 20 62 61 64 2c 0a 25 | which i|s bad,.%|
|00001a10| 20 61 6e 64 20 69 74 20 | 63 61 6e 20 6e 6f 74 20 | and it |can not |
|00001a20| 64 65 61 6c 20 77 69 74 | 68 20 5c 54 65 58 27 73 |deal wit|h \TeX's|
|00001a30| 20 63 6f 75 6e 74 20 72 | 65 67 69 73 74 65 72 73 | count r|egisters|
|00001a40| 2c 20 61 6c 74 68 6f 75 | 67 68 20 5c 4c 61 54 65 |, althou|gh \LaTe|
|00001a50| 58 5c 0a 25 20 63 6f 75 | 6e 74 65 72 73 20 77 6f |X\.% cou|nters wo|
|00001a60| 72 6b 20 28 76 69 61 20 | 7c 5c 76 61 6c 75 65 7c |rk (via ||\value||
|00001a70| 29 2e 0a 25 20 5c 63 68 | 61 6e 67 65 73 7b 76 31 |)..% \ch|anges{v1|
|00001a80| 2e 30 62 7d 7b 31 39 39 | 33 2f 31 32 2f 31 37 7d |.0b}{199|3/12/17}|
|00001a90| 7b 49 6d 70 72 6f 76 65 | 20 5c 63 6d 64 5c 69 73 |{Improve| \cmd\is|
|00001aa0| 6f 64 64 7d 0a 25 20 5c | 63 68 61 6e 67 65 73 7b |odd}.% \|changes{|
|00001ab0| 76 31 2e 30 63 7d 7b 31 | 39 39 34 2f 30 31 2f 32 |v1.0c}{1|994/01/2|
|00001ac0| 30 7d 7b 49 6d 70 72 6f | 76 65 20 5c 63 6d 64 5c |0}{Impro|ve \cmd\|
|00001ad0| 69 73 6f 64 64 5c 20 61 | 67 61 69 6e 7d 0a 25 20 |isodd\ a|gain}.% |
|00001ae0| 20 20 20 5c 62 65 67 69 | 6e 7b 6d 61 63 72 6f 63 | \begi|n{macroc|
|00001af0| 6f 64 65 7d 0a 5c 64 65 | 66 5c 54 45 40 6f 64 64 |ode}.\de|f\TE@odd|
|00001b00| 23 31 23 32 7b 25 0a 20 | 20 5c 54 45 40 74 68 72 |#1#2{%. | \TE@thr|
|00001b10| 6f 77 5c 6e 6f 65 78 70 | 61 6e 64 5c 54 45 40 40 |ow\noexp|and\TE@@|
|00001b20| 6f 64 64 23 31 5c 6e 6f | 65 78 70 61 6e 64 5c 40 |odd#1\no|expand\@|
|00001b30| 6e 69 6c 5c 6e 6f 65 78 | 70 61 6e 64 5c 69 66 6f |nil\noex|pand\ifo|
|00001b40| 64 64 5c 63 6f 75 6e 74 | 40 23 32 7d 0a 25 20 20 |dd\count|@#2}.% |
|00001b50| 20 20 5c 65 6e 64 7b 6d | 61 63 72 6f 63 6f 64 65 | \end{m|acrocode|
|00001b60| 7d 0a 25 0a 25 20 7c 5c | 54 45 40 40 6f 64 64 7c |}.%.% |\|TE@@odd||
|00001b70| 20 69 73 20 6e 6f 74 20 | 65 78 70 61 6e 64 65 64 | is not |expanded|
|00001b80| 20 6f 6e 20 74 68 65 20 | 66 69 72 73 74 20 70 61 | on the |first pa|
|00001b90| 73 73 2e 0a 25 20 20 20 | 20 5c 62 65 67 69 6e 7b |ss..% | \begin{|
|00001ba0| 6d 61 63 72 6f 63 6f 64 | 65 7d 0a 5c 64 65 66 5c |macrocod|e}.\def\|
|00001bb0| 54 45 40 40 6f 64 64 23 | 31 23 32 5c 40 6e 69 6c |TE@@odd#|1#2\@nil|
|00001bc0| 7b 25 0a 20 20 5c 40 64 | 65 66 61 75 6c 74 75 6e |{%. \@d|efaultun|
|00001bd0| 69 74 73 0a 20 20 5c 63 | 6f 75 6e 74 40 5c 69 66 |its. \c|ount@\if|
|00001be0| 2d 23 31 2d 30 5c 65 6c | 73 65 30 5c 65 78 70 61 |-#1-0\el|se0\expa|
|00001bf0| 6e 64 61 66 74 65 72 23 | 31 5c 66 69 23 32 5c 72 |ndafter#|1\fi#2\r|
|00001c00| 65 6c 61 78 5c 40 6e 6e | 69 6c 7d 0a 25 20 20 20 |elax\@nn|il}.% |
|00001c10| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 63 6f 64 65 7d | \end{ma|crocode}|
|00001c20| 0a 25 20 5c 65 6e 64 7b | 6d 61 63 72 6f 7d 0a 25 |.% \end{|macro}.%|
|00001c30| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 7d 0a 25 0a 25 | \end{ma|cro}.%.%|
|00001c40| 20 20 5c 62 65 67 69 6e | 7b 6d 61 63 72 6f 7d 7b | \begin|{macro}{|
|00001c50| 5c 54 45 40 72 65 70 6c | 7d 0a 25 20 7c 5c 54 45 |\TE@repl|}.% |\TE|
|00001c60| 40 72 65 70 6c 7c 20 72 | 65 70 6c 61 63 65 73 20 |@repl| r|eplaces |
|00001c70| 74 68 65 20 73 69 6e 67 | 6c 65 20 74 6f 6b 65 6e |the sing|le token|
|00001c80| 20 7c 23 31 7c 20 62 79 | 20 7c 23 32 7c 2e 20 28 | |#1| by| |#2|. (|
|00001c90| 4e 6f 74 20 77 69 74 68 | 69 6e 20 7c 7b 7d 7c 0a |Not with|in |{}|.|
|00001ca0| 25 20 67 72 6f 75 70 73 | 2e 29 20 49 74 20 69 73 |% groups|.) It is|
|00001cb0| 20 75 73 65 64 20 74 6f | 20 72 65 70 6c 61 63 65 | used to| replace|
|00001cc0| 20 7c 5c 6f 72 7c 20 62 | 79 20 7c 5c 54 45 40 6f | |\or| b|y |\TE@o|
|00001cd0| 72 7c 20 77 69 74 68 6f | 75 74 20 74 68 65 20 6e |r| witho|ut the n|
|00001ce0| 65 65 64 20 74 6f 0a 25 | 20 72 65 64 65 66 69 6e |eed to.%| redefin|
|00001cf0| 65 20 7c 5c 6f 72 7c 2e | 20 45 61 72 6c 69 65 72 |e |\or|.| Earlier|
|00001d00| 20 76 65 72 73 69 6f 6e | 73 20 6a 75 73 74 20 7c | version|s just ||
|00001d10| 5c 6c 65 74 5c 6f 72 5c | 54 45 40 6f 72 7c 20 62 |\let\or\|TE@or| b|
|00001d20| 75 74 20 74 68 69 73 20 | 68 61 73 20 61 0a 25 20 |ut this |has a.% |
|00001d30| 62 61 64 20 65 66 66 65 | 63 74 20 6f 6e 20 74 68 |bad effe|ct on th|
|00001d40| 65 20 65 78 70 61 6e 73 | 69 6f 6e 20 6f 66 20 63 |e expans|ion of c|
|00001d50| 6f 6d 6d 61 6e 64 73 20 | 77 68 69 63 68 20 75 73 |ommands |which us|
|00001d60| 65 20 74 68 65 20 70 72 | 69 6d 69 74 69 76 65 0a |e the pr|imitive.|
|00001d70| 25 20 7c 5c 6f 72 7c 20 | 69 6e 74 65 72 6e 61 6c |% |\or| |internal|
|00001d80| 6c 79 2c 20 65 67 20 7c | 5c 61 6c 70 68 7c 2c 20 |ly, eg ||\alph|, |
|00001d90| 61 6e 64 20 73 6f 20 63 | 61 75 73 65 64 20 73 75 |and so c|aused su|
|00001da0| 72 70 72 69 73 69 6e 67 | 20 72 65 73 75 6c 74 73 |rprising| results|
|00001db0| 20 69 66 0a 25 20 74 68 | 65 73 65 20 63 6f 6d 6d | if.% th|ese comm|
|00001dc0| 61 6e 64 73 20 77 65 72 | 65 20 75 73 65 64 20 69 |ands wer|e used i|
|00001dd0| 6e 73 69 64 65 20 7c 5c | 65 71 75 61 6c 7c 2e 0a |nside |\|equal|..|
|00001de0| 25 20 5c 63 68 61 6e 67 | 65 73 7b 76 31 2e 30 68 |% \chang|es{v1.0h|
|00001df0| 7d 7b 31 39 39 34 2f 30 | 35 2f 31 34 7d 7b 6d 61 |}{1994/0|5/14}{ma|
|00001e00| 63 72 6f 20 61 64 64 65 | 64 7d 0a 25 20 20 20 20 |cro adde|d}.% |
|00001e10| 5c 62 65 67 69 6e 7b 6d | 61 63 72 6f 63 6f 64 65 |\begin{m|acrocode|
|00001e20| 7d 0a 5c 64 65 66 5c 54 | 45 40 72 65 70 6c 23 31 |}.\def\T|E@repl#1|
|00001e30| 23 32 7b 25 0a 20 20 5c | 6c 6f 6e 67 5c 64 65 66 |#2{%. \|long\def|
|00001e40| 5c 40 74 65 6d 70 63 23 | 23 31 23 31 23 23 32 7b |\@tempc#|#1#1##2{|
|00001e50| 25 0a 20 20 20 20 5c 64 | 65 66 5c 40 74 65 6d 70 |%. \d|ef\@temp|
|00001e60| 61 7b 23 23 32 7d 5c 64 | 65 66 5c 40 74 65 6d 70 |a{##2}\d|ef\@temp|
|00001e70| 62 7b 5c 40 74 65 6d 70 | 63 7d 25 0a 20 20 20 20 |b{\@temp|c}%. |
|00001e80| 5c 69 66 78 5c 40 74 65 | 6d 70 61 5c 40 74 65 6d |\ifx\@te|mpa\@tem|
|00001e90| 70 62 0a 20 20 20 20 20 | 5c 74 6f 6b 73 40 5c 65 |pb. |\toks@\e|
|00001ea0| 78 70 61 6e 64 61 66 74 | 65 72 7b 5c 74 68 65 5c |xpandaft|er{\the\|
|00001eb0| 74 6f 6b 73 40 23 23 31 | 7d 25 0a 20 20 20 20 20 |toks@##1|}%. |
|00001ec0| 5c 65 78 70 61 6e 64 61 | 66 74 65 72 5c 40 67 6f |\expanda|fter\@go|
|00001ed0| 62 62 6c 65 0a 20 20 20 | 20 5c 65 6c 73 65 0a 20 |bble. | \else. |
|00001ee0| 20 20 20 20 20 5c 74 6f | 6b 73 40 5c 65 78 70 61 | \to|ks@\expa|
|00001ef0| 6e 64 61 66 74 65 72 7b | 5c 74 68 65 5c 74 6f 6b |ndafter{|\the\tok|
|00001f00| 73 40 23 23 31 23 32 7d | 25 0a 20 20 20 20 5c 65 |s@##1#2}|%. \e|
|00001f10| 78 70 61 6e 64 61 66 74 | 65 72 5c 40 74 65 6d 70 |xpandaft|er\@temp|
|00001f20| 63 0a 20 20 20 20 5c 66 | 69 0a 20 20 20 20 23 23 |c. \f|i. ##|
|00001f30| 32 7d 25 0a 20 20 5c 65 | 78 70 61 6e 64 61 66 74 |2}%. \e|xpandaft|
|00001f40| 65 72 5c 74 6f 6b 73 40 | 5c 65 78 70 61 6e 64 61 |er\toks@|\expanda|
|00001f50| 66 74 65 72 7b 5c 65 78 | 70 61 6e 64 61 66 74 65 |fter{\ex|pandafte|
|00001f60| 72 7d 25 0a 20 20 5c 65 | 78 70 61 6e 64 61 66 74 |r}%. \e|xpandaft|
|00001f70| 65 72 5c 40 74 65 6d 70 | 63 5c 74 68 65 5c 74 6f |er\@temp|c\the\to|
|00001f80| 6b 73 40 23 31 5c 40 74 | 65 6d 70 63 7d 0a 25 20 |ks@#1\@t|empc}.% |
|00001f90| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00001fa0| 65 7d 0a 25 20 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |e}.% \e|nd{macro|
|00001fb0| 7d 0a 25 0a 25 0a 25 20 | 5c 62 65 67 69 6e 7b 6d |}.%.%.% |\begin{m|
|00001fc0| 61 63 72 6f 7d 7b 5c 69 | 66 74 68 65 6e 65 6c 73 |acro}{\i|fthenels|
|00001fd0| 65 7d 0a 25 20 54 68 65 | 20 72 65 6d 61 69 6e 69 |e}.% The| remaini|
|00001fe0| 6e 67 20 6d 61 63 72 6f | 73 20 69 6e 20 74 68 69 |ng macro|s in thi|
|00001ff0| 73 20 66 69 6c 65 20 61 | 72 65 20 64 65 72 69 76 |s file a|re deriv|
|00002000| 65 64 20 66 72 6f 6d 20 | 74 68 65 20 6f 6e 65 73 |ed from |the ones|
|00002010| 20 69 6e 0a 25 20 7c 69 | 66 74 68 65 6e 2e 73 74 | in.% |i|fthen.st|
|00002020| 79 7c 20 62 75 74 20 72 | 65 63 6f 64 65 64 20 61 |y| but r|ecoded a|
|00002030| 6e 64 20 73 69 6d 70 6c | 69 66 69 65 64 2e 20 54 |nd simpl|ified. T|
|00002040| 68 65 20 6d 61 69 6e 20 | 73 69 6d 70 6c 69 66 69 |he main |simplifi|
|00002050| 63 61 74 69 6f 6e 20 69 | 73 0a 25 20 74 68 61 74 |cation i|s.% that|
|00002060| 20 74 68 65 20 6f 72 69 | 67 69 6e 61 6c 20 73 74 | the ori|ginal st|
|00002070| 79 6c 65 20 28 61 6e 64 | 20 74 68 65 20 7c 5c 62 |yle (and| the |\b|
|00002080| 6f 6f 6c 65 61 6e 7c 20 | 65 78 74 65 6e 73 69 6f |oolean| |extensio|
|00002090| 6e 73 29 20 65 78 70 72 | 65 73 73 65 64 0a 25 20 |ns) expr|essed.% |
|000020a0| 6c 6f 67 69 63 61 6c 20 | 76 61 6c 75 65 73 20 61 |logical |values a|
|000020b0| 6c 77 61 79 73 20 69 6e | 20 74 65 72 6d 73 20 6f |lways in| terms o|
|000020c0| 66 20 7c 5c 69 66 6e 75 | 6d 7c 2e 20 41 73 20 7c |f |\ifnu|m|. As ||
|000020d0| 5c 66 69 7c 20 69 73 20 | 60 75 6e 74 79 70 65 64 |\fi| is |`untyped|
|000020e0| 27 20 74 68 69 73 0a 25 | 20 69 73 20 6e 6f 74 20 |' this.%| is not |
|000020f0| 6e 65 63 65 73 73 61 72 | 79 2c 20 73 6f 20 66 6f |necessar|y, so fo|
|00002100| 72 20 65 78 61 6d 70 6c | 65 20 74 68 65 20 6c 65 |r exampl|e the le|
|00002110| 6e 67 74 68 20 74 65 73 | 74 73 20 63 61 6e 20 72 |ngth tes|ts can r|
|00002120| 65 74 75 72 6e 20 76 61 | 6c 75 65 73 0a 25 20 76 |eturn va|lues.% v|
|00002130| 69 61 20 7c 5c 69 66 64 | 69 6d 7c 2c 20 74 68 65 |ia |\ifd|im|, the|
|00002140| 20 74 72 61 69 6c 69 6e | 67 20 7c 5c 66 69 7c 20 | trailin|g |\fi| |
|00002150| 77 69 6c 6c 20 6e 6f 74 | 20 63 6f 6d 70 6c 61 69 |will not| complai|
|00002160| 6e 2c 20 65 76 65 6e 20 | 74 68 6f 75 67 68 20 69 |n, even |though i|
|00002170| 74 20 77 61 73 0a 25 20 | 60 65 78 70 65 63 74 69 |t was.% |`expecti|
|00002180| 6e 67 27 20 61 6e 20 7c | 5c 69 66 6e 75 6d 7c 2e |ng' an ||\ifnum|.|
|00002190| 20 41 6c 73 6f 20 74 68 | 65 20 73 79 73 74 65 6d | Also th|e system|
|000021a0| 20 6f 66 20 70 61 73 73 | 69 6e 67 20 69 6e 66 6f | of pass|ing info|
|000021b0| 72 6d 61 74 69 6f 6e 20 | 76 69 61 0a 25 20 6d 61 |rmation |via.% ma|
|000021c0| 63 72 6f 73 20 65 78 70 | 61 6e 64 69 6e 67 20 74 |cros exp|anding t|
|000021d0| 6f 20 7c 54 7c 20 6f 72 | 20 7c 46 7c 20 68 61 73 |o |T| or| |F| has|
|000021e0| 20 62 65 65 6e 20 63 6f | 6d 70 6c 65 74 65 6c 79 | been co|mpletely|
|000021f0| 20 72 65 70 6c 61 63 65 | 64 20 62 79 20 61 0a 25 | replace|d by a.%|
|00002200| 20 73 69 6d 70 6c 65 72 | 20 73 79 73 74 65 6d 20 | simpler| system |
|00002210| 75 73 69 6e 67 20 7c 5c | 69 66 74 72 75 65 7c 2c |using |\|iftrue|,|
|00002220| 20 77 68 69 63 68 20 66 | 75 72 74 68 65 72 6d 6f | which f|urthermo|
|00002230| 72 65 20 61 6c 6c 6f 77 | 73 20 6c 61 7a 79 0a 25 |re allow|s lazy.%|
|00002240| 20 65 76 61 6c 75 61 74 | 69 6f 6e 20 6f 6e 20 74 | evaluat|ion on t|
|00002250| 68 65 20 73 65 63 6f 6e | 64 20 70 61 73 73 2e 0a |he secon|d pass..|
|00002260| 25 20 20 20 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |% \be|gin{macr|
|00002270| 6f 63 6f 64 65 7d 0a 5c | 6c 6f 6e 67 5c 64 65 66 |ocode}.\|long\def|
|00002280| 5c 69 66 74 68 65 6e 65 | 6c 73 65 23 31 7b 25 0a |\ifthene|lse#1{%.|
|00002290| 25 20 20 20 20 5c 65 6e | 64 7b 6d 61 63 72 6f 63 |% \en|d{macroc|
|000022a0| 6f 64 65 7d 0a 25 20 5c | 63 68 61 6e 67 65 73 7b |ode}.% \|changes{|
|000022b0| 76 31 2e 30 68 7d 7b 31 | 39 39 34 2f 30 35 2f 31 |v1.0h}{1|994/05/1|
|000022c0| 34 7d 7b 55 73 65 20 5c | 63 73 7b 54 45 40 72 65 |4}{Use \|cs{TE@re|
|000022d0| 70 6c 7d 7d 0a 25 20 20 | 20 20 5c 62 65 67 69 6e |pl}}.% | \begin|
|000022e0| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 5c 74 6f 6b |{macroco|de}.\tok|
|000022f0| 73 40 7b 23 31 7d 25 0a | 5c 54 45 40 72 65 70 6c |s@{#1}%.|\TE@repl|
|00002300| 5c 6f 72 5c 54 45 40 6f | 72 0a 5c 54 45 40 72 65 |\or\TE@o|r.\TE@re|
|00002310| 70 6c 5c 61 6e 64 5c 54 | 45 40 61 6e 64 0a 5c 54 |pl\and\T|E@and.\T|
|00002320| 45 40 72 65 70 6c 5c 6e | 6f 74 5c 54 45 40 6e 65 |E@repl\n|ot\TE@ne|
|00002330| 67 0a 25 20 20 20 20 5c | 65 6e 64 7b 6d 61 63 72 |g.% \|end{macr|
|00002340| 6f 63 6f 64 65 7d 0a 25 | 20 54 68 65 20 6f 72 69 |ocode}.%| The ori|
|00002350| 67 69 6e 61 6c 20 7c 69 | 66 74 68 65 6e 2e 73 74 |ginal |i|fthen.st|
|00002360| 79 7c 20 70 72 6f 63 65 | 73 73 65 64 20 65 76 65 |y| proce|ssed eve|
|00002370| 72 79 74 68 69 6e 67 20 | 69 6e 73 69 64 65 20 61 |rything |inside a|
|00002380| 20 62 6f 78 0a 25 20 61 | 73 73 69 67 6e 6d 65 6e | box.% a|ssignmen|
|00002390| 74 2c 20 74 6f 20 63 61 | 74 63 68 20 61 6e 79 20 |t, to ca|tch any |
|000023a0| 65 78 74 72 61 20 73 70 | 61 63 65 73 20 62 65 66 |extra sp|aces bef|
|000023b0| 6f 72 65 20 74 68 65 79 | 20 61 70 70 65 61 72 65 |ore they| appeare|
|000023c0| 64 20 69 6e 20 74 68 65 | 0a 25 20 6f 75 74 70 75 |d in the|.% outpu|
|000023d0| 74 2e 20 49 6e 73 74 65 | 61 64 20 49 20 68 61 76 |t. Inste|ad I hav|
|000023e0| 65 20 61 64 64 65 64 20 | 65 78 74 72 61 20 61 72 |e added |extra ar|
|000023f0| 67 75 6d 65 6e 74 73 20 | 74 6f 20 74 68 65 20 63 |guments |to the c|
|00002400| 6f 6d 6d 61 6e 64 73 20 | 73 6f 20 74 68 65 79 0a |ommands |so they.|
|00002410| 25 20 65 61 63 68 20 72 | 65 6d 6f 76 65 20 61 6e |% each r|emove an|
|00002420| 79 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 73 70 61 63 |y follow|ing spac|
|00002430| 65 2e 0a 25 0a 25 20 53 | 65 74 20 75 70 20 74 68 |e..%.% S|et up th|
|00002440| 65 20 75 73 65 72 20 6c | 65 76 65 6c 20 6e 61 6d |e user l|evel nam|
|00002450| 65 73 20 7c 5c 6e 6f 74 | 7c 20 65 74 63 2e 0a 25 |es |\not|| etc..%|
|00002460| 20 5c 63 68 61 6e 67 65 | 73 7b 76 31 2e 30 63 7d | \change|s{v1.0c}|
|00002470| 7b 31 39 39 34 2f 30 31 | 2f 32 30 7d 7b 4d 6f 64 |{1994/01|/20}{Mod|
|00002480| 69 66 79 5c 63 6d 64 5c | 70 72 6f 74 65 63 74 5c |ify\cmd\|protect\|
|00002490| 20 61 6e 64 20 5c 63 6d | 64 5c 76 61 6c 75 65 7d | and \cm|d\value}|
|000024a0| 0a 25 20 20 20 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |.% \b|egin{mac|
|000024b0| 72 6f 63 6f 64 65 7d 0a | 20 20 20 20 5c 62 67 72 |rocode}.| \bgr|
|000024c0| 6f 75 70 0a 20 20 20 20 | 20 20 20 20 5c 64 65 66 |oup. | \def|
|000024d0| 5c 70 72 6f 74 65 63 74 | 7b 5c 6e 6f 65 78 70 61 |\protect|{\noexpa|
|000024e0| 6e 64 5c 70 72 6f 74 65 | 63 74 5c 6e 6f 65 78 70 |nd\prote|ct\noexp|
|000024f0| 61 6e 64 7d 25 0a 20 20 | 20 20 20 20 20 20 5c 64 |and}%. | \d|
|00002500| 65 66 5c 76 61 6c 75 65 | 23 23 31 7b 5c 74 68 65 |ef\value|##1{\the|
|00002510| 5c 63 73 6e 61 6d 65 20 | 63 40 23 23 31 5c 65 6e |\csname |c@##1\en|
|00002520| 64 63 73 6e 61 6d 65 7d | 25 0a 20 20 20 20 20 20 |dcsname}|%. |
|00002530| 20 20 5c 6c 65 74 5c 65 | 71 75 61 6c 5c 54 45 40 | \let\e|qual\TE@|
|00002540| 65 71 75 61 6c 20 5c 6c | 65 74 5c 28 5c 54 45 40 |equal \l|et\(\TE@|
|00002550| 6c 70 61 72 65 6e 20 5c | 6c 65 74 5c 29 5c 54 45 |lparen \|let\)\TE|
|00002560| 40 72 70 61 72 65 6e 0a | 20 20 20 20 20 20 20 20 |@rparen.| |
|00002570| 5c 6c 65 74 5c 69 73 6f | 64 64 5c 54 45 40 6f 64 |\let\iso|dd\TE@od|
|00002580| 64 20 5c 6c 65 74 5c 6c | 65 6e 67 74 68 74 65 73 |d \let\l|engthtes|
|00002590| 74 5c 54 45 40 6c 65 6e | 67 74 68 0a 25 20 20 20 |t\TE@len|gth.% |
|000025a0| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 63 6f 64 65 7d | \end{ma|crocode}|
|000025b0| 0a 25 20 46 6f 72 20 74 | 68 65 20 66 69 72 73 74 |.% For t|he first|
|000025c0| 20 70 61 73 73 2c 20 69 | 6e 20 61 20 67 72 6f 75 | pass, i|n a grou|
|000025d0| 70 2c 20 6d 61 6b 65 20 | 76 61 72 69 6f 75 73 20 |p, make |various |
|000025e0| 74 6f 6b 65 6e 73 20 6e | 6f 6e 2d 65 78 70 61 6e |tokens n|on-expan|
|000025f0| 64 61 62 6c 65 2e 0a 25 | 0a 25 20 49 74 20 69 73 |dable..%|.% It is|
|00002600| 20 75 6e 66 6f 72 74 75 | 6e 61 74 65 20 74 68 61 | unfortu|nate tha|
|00002610| 74 20 69 6e 20 6f 72 64 | 65 72 20 74 6f 20 72 65 |t in ord|er to re|
|00002620| 6d 61 69 6e 20 63 6f 6d | 70 61 74 69 62 6c 65 20 |main com|patible |
|00002630| 77 69 74 68 20 7c 69 66 | 74 68 65 6e 7c 0a 25 20 |with |if|then|.% |
|00002640| 73 79 6e 74 61 78 2c 20 | 69 74 20 69 73 20 6e 65 |syntax, |it is ne|
|00002650| 63 65 73 73 61 72 79 20 | 74 6f 20 68 61 76 65 20 |cessary |to have |
|00002660| 61 20 74 77 6f 20 70 61 | 73 73 20 73 79 73 74 65 |a two pa|ss syste|
|00002670| 6d 2e 20 54 68 65 20 66 | 69 72 73 74 20 70 61 73 |m. The f|irst pas|
|00002680| 73 0a 25 20 69 6e 73 69 | 64 65 20 61 6e 20 7c 5c |s.% insi|de an |\|
|00002690| 65 64 65 66 7c 20 60 65 | 78 70 6f 73 65 73 27 20 |edef| `e|xposes' |
|000026a0| 74 68 65 20 7c 5c 69 66 | 7c 5c 6c 64 6f 74 73 5c |the |\if||\ldots\|
|000026b0| 20 7c 5c 66 69 7c 20 74 | 6f 6b 65 6e 73 2c 20 73 | |\fi| t|okens, s|
|000026c0| 6f 20 74 68 65 0a 25 20 | 63 6f 72 65 63 74 20 63 |o the.% |corect c|
|000026d0| 6c 61 75 73 65 73 20 6d | 61 79 20 62 65 20 73 6b |lauses m|ay be sk|
|000026e0| 69 70 70 65 64 20 6f 6e | 20 74 68 65 20 73 65 63 |ipped on| the sec|
|000026f0| 6f 6e 64 20 70 61 73 73 | 2e 20 54 68 69 73 20 6d |ond pass|. This m|
|00002700| 65 61 6e 73 20 74 68 61 | 74 20 74 68 65 0a 25 20 |eans tha|t the.% |
|00002710| 77 68 6f 6c 65 20 7c 5c | 69 66 74 68 65 6e 65 6c |whole |\|ifthenel|
|00002720| 73 65 7c 20 63 6f 6d 6d | 61 6e 64 20 64 6f 65 73 |se| comm|and does|
|00002730| 20 6e 6f 74 20 77 6f 72 | 6b 20 62 79 20 65 78 70 | not wor|k by exp|
|00002740| 61 6e 73 69 6f 6e 2c 20 | 61 6e 64 20 73 6f 0a 25 |ansion, |and so.%|
|00002750| 20 70 6f 73 73 69 62 6c | 79 20 68 61 73 20 6f 6e | possibl|y has on|
|00002760| 6c 79 20 6c 69 6d 69 74 | 65 64 20 75 73 65 66 75 |ly limit|ed usefu|
|00002770| 6c 6e 65 73 73 20 66 6f | 72 20 6d 61 63 72 6f 20 |lness fo|r macro |
|00002780| 63 6f 64 65 20 77 72 69 | 74 65 72 73 2e 0a 25 20 |code wri|ters..% |
|00002790| 54 68 65 20 6d 61 69 6e | 20 70 72 6f 62 6c 65 6d |The main| problem|
|000027a0| 20 77 69 74 68 20 74 68 | 65 20 7c 69 66 74 68 65 | with th|e |ifthe|
|000027b0| 6e 3a 7c 20 73 79 6e 74 | 61 78 20 69 73 20 74 68 |n:| synt|ax is th|
|000027c0| 61 74 20 28 75 6e 69 71 | 75 65 20 66 6f 72 20 5c |at (uniq|ue for \|
|000027d0| 4c 61 54 65 58 29 0a 25 | 20 69 74 20 64 6f 65 73 |LaTeX).%| it does|
|000027e0| 20 6e 6f 74 20 75 73 65 | 73 20 61 20 62 72 61 63 | not use|s a brac|
|000027f0| 65 20 64 65 6c 69 6d 69 | 74 65 64 20 61 72 67 75 |e delimi|ted argu|
|00002800| 6d 65 6e 74 20 66 6f 72 | 6d 2c 20 61 6e 64 20 65 |ment for|m, and e|
|00002810| 78 70 6f 73 65 73 20 74 | 68 65 0a 25 20 70 72 69 |xposes t|he.% pri|
|00002820| 6d 69 74 69 76 65 20 5c | 54 65 58 5c 20 73 79 6e |mitive \|TeX\ syn|
|00002830| 74 61 78 20 66 6f 72 20 | 5c 6d 65 74 61 7b 6e 75 |tax for |\meta{nu|
|00002840| 6d 62 65 72 7d 2e 20 50 | 72 65 74 74 79 20 6d 75 |mber}. P|retty mu|
|00002850| 63 68 20 74 68 65 20 6f | 6e 6c 79 20 77 61 79 20 |ch the o|nly way |
|00002860| 6f 66 0a 25 20 70 61 72 | 73 69 6e 67 20 7c 31 20 |of.% par|sing |1 |
|00002870| 3e 20 32 20 5c 6f 72 20 | 32 20 3c 20 31 7c 20 69 |> 2 \or |2 < 1| i|
|00002880| 73 20 74 6f 20 61 63 74 | 75 61 6c 6c 79 20 65 76 |s to act|ually ev|
|00002890| 61 6c 75 61 74 65 20 74 | 68 65 20 70 72 69 6d 69 |aluate t|he primi|
|000028a0| 74 69 76 65 0a 25 20 7c | 5c 69 66 6e 75 6d 7c 73 |tive.% ||\ifnum|s|
|000028b0| 2e 20 41 20 73 79 6e 74 | 61 78 20 73 75 63 68 20 |. A synt|ax such |
|000028c0| 61 73 3a 5c 5c 25 0a 25 | 20 7c 5c 6f 72 7b 5c 6e |as:\\%.%| |\or{\n|
|000028d0| 75 6d 74 65 73 74 7b 31 | 3c 32 7d 7d 7b 5c 6c 65 |umtest{1|<2}}{\le|
|000028e0| 6e 67 74 68 74 65 73 74 | 7b 31 70 74 3c 31 69 6e |ngthtest|{1pt<1in|
|000028f0| 7d 7d 7c 5c 5c 0a 25 20 | 20 63 6f 75 6c 64 20 65 |}}|\\.% | could e|
|00002900| 61 73 69 6c 79 20 62 65 | 20 65 76 61 6c 75 61 74 |asily be| evaluat|
|00002910| 65 64 20 69 6e 20 61 20 | 6f 6e 65 20 70 61 73 73 |ed in a |one pass|
|00002920| 20 77 61 79 2c 20 6f 70 | 65 72 61 74 69 6e 67 20 | way, op|erating |
|00002930| 64 69 72 65 63 74 6c 79 | 20 76 69 61 0a 25 20 20 |directly| via.% |
|00002940| 65 78 70 61 6e 73 69 6f | 6e 2c 20 61 6e 64 20 6c |expansio|n, and l|
|00002950| 65 61 76 69 6e 67 20 6e | 6f 20 65 78 74 72 61 20 |eaving n|o extra |
|00002960| 74 6f 6b 65 6e 73 20 69 | 6e 20 74 68 65 20 74 6f |tokens i|n the to|
|00002970| 6b 65 6e 20 73 74 72 65 | 61 6d 2e 0a 25 0a 25 20 |ken stre|am..%.% |
|00002980| 53 74 69 6c 6c 2c 20 6f | 6e 20 77 69 74 68 20 74 |Still, o|n with t|
|00002990| 68 65 20 63 6f 64 65 5c | 6c 64 6f 74 73 5c 20 6d |he code\|ldots\ m|
|000029a0| 61 6b 65 20 7c 5c 40 74 | 65 6d 70 61 7c 20 61 6e |ake |\@t|empa| an|
|000029b0| 64 20 7c 5c 40 74 65 6d | 70 62 7c 20 74 6f 6b 65 |d |\@tem|pb| toke|
|000029c0| 6e 73 0a 25 20 6e 6f 6e | 2d 65 78 70 61 6e 64 61 |ns.% non|-expanda|
|000029d0| 62 6c 65 20 6f 6e 20 74 | 68 65 20 66 69 72 73 74 |ble on t|he first|
|000029e0| 20 70 61 73 73 2e 0a 25 | 20 20 20 20 5c 62 65 67 | pass..%| \beg|
|000029f0| 69 6e 7b 6d 61 63 72 6f | 63 6f 64 65 7d 0a 20 20 |in{macro|code}. |
|00002a00| 20 20 20 20 20 20 7b 5c | 6c 65 74 5c 40 74 65 6d | {\|let\@tem|
|00002a10| 70 61 5c 72 65 6c 61 78 | 5c 6c 65 74 5c 40 74 65 |pa\relax|\let\@te|
|00002a20| 6d 70 62 5c 72 65 6c 61 | 78 0a 20 20 20 20 20 20 |mpb\rela|x. |
|00002a30| 20 20 5c 78 64 65 66 5c | 40 67 74 65 6d 70 61 7b | \xdef\|@gtempa{|
|00002a40| 5c 65 78 70 61 6e 64 61 | 66 74 65 72 5c 54 45 40 |\expanda|fter\TE@|
|00002a50| 65 76 61 6c 5c 74 68 65 | 5c 74 6f 6b 73 40 5c 54 |eval\the|\toks@\T|
|00002a60| 45 40 65 6e 64 65 76 61 | 6c 7d 7d 25 0a 25 20 20 |E@endeva|l}}%.% |
|00002a70| 20 20 5c 65 6e 64 7b 6d | 61 63 72 6f 63 6f 64 65 | \end{m|acrocode|
|00002a80| 7d 0a 25 20 4e 6f 77 20 | 6f 75 74 73 69 64 65 20 |}.% Now |outside |
|00002a90| 74 68 65 20 67 72 6f 75 | 70 2c 20 65 78 65 63 75 |the grou|p, execu|
|00002aa0| 74 65 20 7c 5c 40 67 74 | 65 6d 70 61 7c 20 77 68 |te |\@gt|empa| wh|
|00002ab0| 69 63 68 20 63 61 75 73 | 65 73 20 61 6c 6c 20 74 |ich caus|es all t|
|00002ac0| 68 65 0a 25 20 7c 5c 69 | 66 7c 73 20 65 74 63 2e |he.% |\i|f|s etc.|
|00002ad0| 2c 20 74 6f 20 62 65 20 | 65 76 61 6c 75 61 74 65 |, to be |evaluate|
|00002ae0| 64 2c 20 74 68 65 20 66 | 69 6e 61 6c 20 74 72 75 |d, the f|inal tru|
|00002af0| 74 68 20 76 61 6c 75 65 | 20 69 73 20 63 6f 6e 74 |th value| is cont|
|00002b00| 61 69 6e 65 64 20 69 6e | 0a 25 20 74 68 65 20 7c |ained in|.% the ||
|00002b10| 5c 6e 65 77 69 66 7c 20 | 74 6f 6b 65 6e 20 7c 5c |\newif| |token |\|
|00002b20| 69 66 54 45 40 76 61 6c | 7c 2e 20 46 69 6e 61 6c |ifTE@val||. Final|
|00002b30| 6c 79 20 74 68 69 73 20 | 69 73 20 74 65 73 74 65 |ly this |is teste|
|00002b40| 64 20 61 6e 64 20 65 69 | 74 68 65 72 20 74 68 65 |d and ei|ther the|
|00002b50| 0a 25 20 66 69 72 73 74 | 20 6f 72 20 73 65 63 6f |.% first| or seco|
|00002b60| 6e 64 20 66 6f 6c 6c 6f | 77 69 6e 67 20 61 72 67 |nd follo|wing arg|
|00002b70| 75 6d 65 6e 74 20 69 73 | 20 63 68 6f 73 65 6e 20 |ument is| chosen |
|00002b80| 61 63 63 6f 72 64 69 6e | 67 6c 79 2e 0a 25 20 5c |accordin|gly..% \|
|00002b90| 63 68 61 6e 67 65 73 7b | 76 31 2e 30 64 7d 7b 31 |changes{|v1.0d}{1|
|00002ba0| 39 39 34 2f 30 31 2f 32 | 34 7d 0a 25 20 20 20 20 |994/01/2|4}.% |
|00002bb0| 20 7b 55 73 65 20 5c 63 | 6d 64 7b 5c 40 66 69 72 | {Use \c|md{\@fir|
|00002bc0| 73 74 6f 66 74 77 6f 7d | 20 6e 6f 74 20 5c 63 6d |stoftwo}| not \cm|
|00002bd0| 64 7b 5c 40 6c 65 66 74 | 6d 61 72 6b 7d 7d 0a 25 |d{\@left|mark}}.%|
|00002be0| 20 20 20 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f | \beg|in{macro|
|00002bf0| 63 6f 64 65 7d 0a 20 20 | 20 20 20 20 20 20 5c 40 |code}. | \@|
|00002c00| 67 74 65 6d 70 61 0a 20 | 20 20 20 20 20 20 20 5c |gtempa. | \|
|00002c10| 65 78 70 61 6e 64 61 66 | 74 65 72 5c 65 67 72 6f |expandaf|ter\egro|
|00002c20| 75 70 5c 69 66 54 45 40 | 76 61 6c 0a 20 20 20 20 |up\ifTE@|val. |
|00002c30| 20 20 20 20 20 20 5c 65 | 78 70 61 6e 64 61 66 74 | \e|xpandaft|
|00002c40| 65 72 5c 40 66 69 72 73 | 74 6f 66 74 77 6f 0a 20 |er\@firs|toftwo. |
|00002c50| 20 20 20 20 20 20 20 5c | 65 6c 73 65 0a 20 20 20 | \|else. |
|00002c60| 20 20 20 20 20 20 20 5c | 65 78 70 61 6e 64 61 66 | \|expandaf|
|00002c70| 74 65 72 5c 40 73 65 63 | 6f 6e 64 6f 66 74 77 6f |ter\@sec|ondoftwo|
|00002c80| 0a 20 20 20 20 20 20 20 | 20 5c 66 69 7d 0a 25 20 |. | \fi}.% |
|00002c90| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00002ca0| 65 7d 0a 25 20 5c 65 6e | 64 7b 6d 61 63 72 6f 7d |e}.% \en|d{macro}|
|00002cb0| 0a 25 0a 25 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |.%.% \be|gin{macr|
|00002cc0| 6f 7d 7b 5c 54 45 40 65 | 76 61 6c 7d 0a 25 20 49 |o}{\TE@e|val}.% I|
|00002cd0| 6e 69 74 69 61 6c 69 73 | 65 20 61 20 74 65 72 6d |nitialis|e a term|
|00002ce0| 2e 20 28 45 78 70 61 6e | 64 65 64 20 6f 6e 20 74 |. (Expan|ded on t|
|00002cf0| 68 65 20 66 69 72 73 74 | 20 70 61 73 73 29 2e 0a |he first| pass)..|
|00002d00| 25 20 20 20 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |% \be|gin{macr|
|00002d10| 6f 63 6f 64 65 7d 0a 5c | 64 65 66 5c 54 45 40 65 |ocode}.\|def\TE@e|
|00002d20| 76 61 6c 7b 5c 6e 6f 65 | 78 70 61 6e 64 5c 54 45 |val{\noe|xpand\TE|
|00002d30| 40 6e 65 67 61 74 65 66 | 61 6c 73 65 5c 6e 6f 65 |@negatef|alse\noe|
|00002d40| 78 70 61 6e 64 5c 69 66 | 74 72 75 65 5c 6e 6f 65 |xpand\if|true\noe|
|00002d50| 78 70 61 6e 64 5c 69 66 | 6e 75 6d 7d 0a 25 20 20 |xpand\if|num}.% |
|00002d60| 20 20 5c 65 6e 64 7b 6d | 61 63 72 6f 63 6f 64 65 | \end{m|acrocode|
|00002d70| 7d 0a 25 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 7d 0a |}.% \end|{macro}.|
|00002d80| 25 0a 25 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f |%.% \beg|in{macro|
|00002d90| 7d 7b 5c 69 66 54 45 40 | 76 61 6c 7d 0a 25 20 5c |}{\ifTE@|val}.% \|
|00002da0| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 7d 7b 5c 69 66 |begin{ma|cro}{\if|
|00002db0| 54 45 40 6e 65 67 61 74 | 65 7d 0a 25 20 54 77 6f |TE@negat|e}.% Two|
|00002dc0| 20 7c 5c 6e 65 77 69 66 | 7c 73 20 74 68 65 20 66 | |\newif||s the f|
|00002dd0| 69 72 73 74 20 68 6f 6c | 64 73 20 74 68 65 20 63 |irst hol|ds the c|
|00002de0| 75 72 72 65 6e 74 20 74 | 72 75 74 68 20 76 61 6c |urrent t|ruth val|
|00002df0| 75 65 20 6f 66 20 74 68 | 65 0a 25 20 65 78 70 72 |ue of th|e.% expr|
|00002e00| 65 73 73 69 6f 6e 2e 20 | 54 68 65 20 73 65 63 6f |ession. |The seco|
|00002e10| 6e 64 20 69 73 20 61 20 | 74 65 6d 70 6f 72 61 72 |nd is a |temporar|
|00002e20| 79 20 66 6c 61 67 20 77 | 68 69 63 68 20 69 73 20 |y flag w|hich is |
|00002e30| 74 72 75 65 20 69 66 20 | 77 65 20 6e 65 65 64 20 |true if |we need |
|00002e40| 74 6f 0a 25 20 6e 65 67 | 61 74 65 20 74 68 65 20 |to.% neg|ate the |
|00002e50| 63 75 72 72 65 6e 74 20 | 70 72 6f 70 6f 73 69 74 |current |proposit|
|00002e60| 69 6f 6e 2e 0a 25 20 20 | 20 20 5c 62 65 67 69 6e |ion..% | \begin|
|00002e70| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 5c 6e 65 77 |{macroco|de}.\new|
|00002e80| 69 66 5c 69 66 54 45 40 | 76 61 6c 0a 5c 6e 65 77 |if\ifTE@|val.\new|
|00002e90| 69 66 5c 69 66 54 45 40 | 6e 65 67 61 74 65 0a 25 |if\ifTE@|negate.%|
|00002ea0| 20 20 20 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 63 6f | \end|{macroco|
|00002eb0| 64 65 7d 0a 25 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |de}.% \e|nd{macro|
|00002ec0| 7d 0a 25 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 7d 0a |}.% \end|{macro}.|
|00002ed0| 25 0a 25 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f |%.% \beg|in{macro|
|00002ee0| 7d 7b 5c 54 45 40 65 6e | 64 65 76 61 6c 7d 0a 25 |}{\TE@en|deval}.%|
|00002ef0| 20 46 69 6e 61 6c 69 73 | 65 20 61 20 74 65 72 6d | Finalis|e a term|
|00002f00| 2e 20 28 45 78 70 61 6e | 64 65 64 20 6f 6e 20 74 |. (Expan|ded on t|
|00002f10| 68 65 20 66 69 72 73 74 | 20 70 61 73 73 29 2e 0a |he first| pass)..|
|00002f20| 25 20 20 20 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |% \be|gin{macr|
|00002f30| 6f 63 6f 64 65 7d 0a 5c | 64 65 66 5c 54 45 40 65 |ocode}.\|def\TE@e|
|00002f40| 6e 64 65 76 61 6c 7b 5c | 72 65 6c 61 78 0a 20 20 |ndeval{\|relax. |
|00002f50| 20 20 20 20 5c 6e 6f 65 | 78 70 61 6e 64 5c 54 45 | \noe|xpand\TE|
|00002f60| 40 73 65 74 76 61 6c 74 | 72 75 65 5c 6e 6f 65 78 |@setvalt|rue\noex|
|00002f70| 70 61 6e 64 0a 20 20 20 | 20 5c 65 6c 73 65 0a 20 |pand. | \else. |
|00002f80| 20 20 20 20 20 5c 6e 6f | 65 78 70 61 6e 64 5c 54 | \no|expand\T|
|00002f90| 45 40 73 65 74 76 61 6c | 66 61 6c 73 65 5c 6e 6f |E@setval|false\no|
|00002fa0| 65 78 70 61 6e 64 0a 20 | 20 20 20 5c 66 69 0a 20 |expand. | \fi. |
|00002fb0| 20 20 20 5c 6e 6f 65 78 | 70 61 6e 64 5c 54 45 40 | \noex|pand\TE@|
|00002fc0| 6e 65 67 61 74 65 66 61 | 6c 73 65 5c 6e 6f 65 78 |negatefa|lse\noex|
|00002fd0| 70 61 6e 64 0a 20 20 5c | 66 69 7d 0a 25 20 20 20 |pand. \|fi}.% |
|00002fe0| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 63 6f 64 65 7d | \end{ma|crocode}|
|00002ff0| 0a 25 20 5c 65 6e 64 7b | 6d 61 63 72 6f 7d 0a 25 |.% \end{|macro}.%|
|00003000| 0a 25 20 5c 62 65 67 69 | 6e 7b 6d 61 63 72 6f 7d |.% \begi|n{macro}|
|00003010| 7b 5c 54 45 40 73 65 74 | 76 61 6c 74 72 75 65 7d |{\TE@set|valtrue}|
|00003020| 0a 25 20 5c 62 65 67 69 | 6e 7b 6d 61 63 72 6f 7d |.% \begi|n{macro}|
|00003030| 7b 5c 54 45 40 73 65 74 | 76 61 6c 66 61 6c 73 65 |{\TE@set|valfalse|
|00003040| 7d 0a 25 20 53 65 74 20 | 74 68 65 20 7c 5c 69 66 |}.% Set |the |\if|
|00003050| 54 45 40 76 61 6c 7c 20 | 74 6f 20 74 72 75 65 20 |TE@val| |to true |
|00003060| 6f 72 20 66 61 6c 73 65 | 20 64 65 70 65 6e 64 69 |or false| dependi|
|00003070| 6e 67 20 6f 6e 20 74 68 | 65 20 76 61 6c 75 65 20 |ng on th|e value |
|00003080| 6f 66 20 74 68 65 0a 25 | 20 63 75 72 72 65 6e 74 |of the.%| current|
|00003090| 20 70 72 6f 70 6f 73 69 | 74 69 6f 6e 2c 20 61 6e | proposi|tion, an|
|000030a0| 64 20 74 68 65 20 6e 65 | 67 61 74 65 20 66 6c 61 |d the ne|gate fla|
|000030b0| 67 2e 20 28 4e 6f 74 20 | 65 78 70 61 6e 64 65 64 |g. (Not |expanded|
|000030c0| 20 6f 6e 20 74 68 65 20 | 66 69 72 73 74 0a 25 20 | on the |first.% |
|000030d0| 70 61 73 73 2e 29 0a 25 | 20 20 20 20 5c 62 65 67 |pass.).%| \beg|
|000030e0| 69 6e 7b 6d 61 63 72 6f | 63 6f 64 65 7d 0a 5c 64 |in{macro|code}.\d|
|000030f0| 65 66 5c 54 45 40 73 65 | 74 76 61 6c 74 72 75 65 |ef\TE@se|tvaltrue|
|00003100| 7b 25 0a 20 20 5c 69 66 | 54 45 40 6e 65 67 61 74 |{%. \if|TE@negat|
|00003110| 65 5c 54 45 40 76 61 6c | 66 61 6c 73 65 5c 65 6c |e\TE@val|false\el|
|00003120| 73 65 5c 54 45 40 76 61 | 6c 74 72 75 65 5c 66 69 |se\TE@va|ltrue\fi|
|00003130| 7d 0a 5c 64 65 66 5c 54 | 45 40 73 65 74 76 61 6c |}.\def\T|E@setval|
|00003140| 66 61 6c 73 65 7b 5c 6c | 65 74 5c 69 66 54 45 40 |false{\l|et\ifTE@|
|00003150| 76 61 6c 5c 69 66 54 45 | 40 6e 65 67 61 74 65 7d |val\ifTE|@negate}|
|00003160| 0a 25 20 20 20 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |.% \e|nd{macro|
|00003170| 63 6f 64 65 7d 0a 25 20 | 5c 65 6e 64 7b 6d 61 63 |code}.% |\end{mac|
|00003180| 72 6f 7d 0a 25 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |ro}.% \e|nd{macro|
|00003190| 7d 0a 25 0a 25 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |}.%.% \b|egin{mac|
|000031a0| 72 6f 7d 7b 5c 54 45 40 | 6f 72 7d 0a 25 20 54 68 |ro}{\TE@|or}.% Th|
|000031b0| 65 20 69 6e 74 65 72 6e | 61 6c 20 76 65 72 73 69 |e intern|al versi|
|000031c0| 6f 6e 20 6f 66 20 7c 5c | 6f 72 7c 2e 20 45 6e 64 |on of |\|or|. End|
|000031d0| 73 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 74 65 |s the cu|rrent te|
|000031e0| 72 6d 2e 0a 25 20 49 66 | 20 74 72 75 65 20 73 6b |rm..% If| true sk|
|000031f0| 69 70 20 74 68 65 20 72 | 65 6d 61 69 6e 69 6e 67 |ip the r|emaining|
|00003200| 20 74 65 72 6d 73 2e 0a | 25 20 20 20 20 5c 62 65 | terms..|% \be|
|00003210| 67 69 6e 7b 6d 61 63 72 | 6f 63 6f 64 65 7d 0a 5c |gin{macr|ocode}.\|
|00003220| 64 65 66 5c 54 45 40 6f | 72 7b 5c 54 45 40 65 6e |def\TE@o|r{\TE@en|
|00003230| 64 65 76 61 6c 5c 6e 6f | 65 78 70 61 6e 64 5c 69 |deval\no|expand\i|
|00003240| 66 54 45 40 76 61 6c 5c | 6e 6f 65 78 70 61 6e 64 |fTE@val\|noexpand|
|00003250| 5c 65 6c 73 65 5c 6e 6f | 65 78 70 61 6e 64 5c 69 |\else\no|expand\i|
|00003260| 66 6e 75 6d 7d 0a 25 20 | 20 20 20 5c 65 6e 64 7b |fnum}.% | \end{|
|00003270| 6d 61 63 72 6f 63 6f 64 | 65 7d 0a 25 20 5c 65 6e |macrocod|e}.% \en|
|00003280| 64 7b 6d 61 63 72 6f 7d | 0a 25 0a 25 20 5c 62 65 |d{macro}|.%.% \be|
|00003290| 67 69 6e 7b 6d 61 63 72 | 6f 7d 7b 5c 54 45 40 61 |gin{macr|o}{\TE@a|
|000032a0| 6e 64 7d 0a 25 20 54 68 | 65 20 69 6e 74 65 72 6e |nd}.% Th|e intern|
|000032b0| 61 6c 20 76 65 72 73 69 | 6f 6e 20 6f 66 20 7c 5c |al versi|on of |\|
|000032c0| 61 6e 64 7c 2e 20 49 66 | 20 66 61 6c 73 65 20 73 |and|. If| false s|
|000032d0| 6b 69 70 20 74 68 65 20 | 72 65 6d 61 69 6e 69 6e |kip the |remainin|
|000032e0| 67 20 74 65 72 6d 73 2e | 0a 25 20 20 20 20 5c 62 |g terms.|.% \b|
|000032f0| 65 67 69 6e 7b 6d 61 63 | 72 6f 63 6f 64 65 7d 0a |egin{mac|rocode}.|
|00003300| 5c 64 65 66 5c 54 45 40 | 61 6e 64 7b 5c 54 45 40 |\def\TE@|and{\TE@|
|00003310| 65 6e 64 65 76 61 6c 5c | 6e 6f 65 78 70 61 6e 64 |endeval\|noexpand|
|00003320| 5c 69 66 54 45 40 76 61 | 6c 5c 6e 6f 65 78 70 61 |\ifTE@va|l\noexpa|
|00003330| 6e 64 5c 69 66 6e 75 6d | 7d 0a 25 20 20 20 20 5c |nd\ifnum|}.% \|
|00003340| 65 6e 64 7b 6d 61 63 72 | 6f 63 6f 64 65 7d 0a 25 |end{macr|ocode}.%|
|00003350| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 7d 0a 25 0a 25 | \end{ma|cro}.%.%|
|00003360| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 7d 7b 5c | \begin{|macro}{\|
|00003370| 54 45 40 6e 65 67 7d 0a | 25 20 5c 62 65 67 69 6e |TE@neg}.|% \begin|
|00003380| 7b 6d 61 63 72 6f 7d 7b | 5c 54 45 40 6e 65 67 73 |{macro}{|\TE@negs|
|00003390| 77 69 74 63 68 7d 0a 25 | 20 7c 5c 6e 6f 74 7c 2e |witch}.%| |\not|.|
|000033a0| 20 54 68 72 6f 77 20 74 | 68 65 20 63 75 72 72 65 | Throw t|he curre|
|000033b0| 6e 74 20 63 6f 6e 74 65 | 78 74 2c 20 73 65 74 20 |nt conte|xt, set |
|000033c0| 61 20 6e 65 67 61 74 65 | 20 66 6c 61 67 2c 20 74 |a negate| flag, t|
|000033d0| 68 65 6e 20 72 65 73 74 | 61 72 74 0a 25 20 74 68 |hen rest|art.% th|
|000033e0| 65 20 7c 5c 69 66 6e 75 | 6d 7c 2e 20 7c 5c 54 45 |e |\ifnu|m|. |\TE|
|000033f0| 40 6e 65 67 73 77 69 74 | 63 68 7c 20 69 73 20 6e |@negswit|ch| is n|
|00003400| 6f 74 20 65 78 70 61 6e | 64 65 64 20 6f 6e 20 74 |ot expan|ded on t|
|00003410| 68 65 20 66 69 72 73 74 | 20 70 61 73 73 2e 0a 25 |he first| pass..%|
|00003420| 20 20 20 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f | \beg|in{macro|
|00003430| 63 6f 64 65 7d 0a 5c 64 | 65 66 5c 54 45 40 6e 65 |code}.\d|ef\TE@ne|
|00003440| 67 7b 5c 54 45 40 74 68 | 72 6f 77 5c 6e 6f 65 78 |g{\TE@th|row\noex|
|00003450| 70 61 6e 64 5c 54 45 40 | 6e 65 67 73 77 69 74 63 |pand\TE@|negswitc|
|00003460| 68 5c 6e 6f 65 78 70 61 | 6e 64 5c 69 66 6e 75 6d |h\noexpa|nd\ifnum|
|00003470| 7d 0a 5c 64 65 66 5c 54 | 45 40 6e 65 67 73 77 69 |}.\def\T|E@negswi|
|00003480| 74 63 68 7b 5c 69 66 54 | 45 40 6e 65 67 61 74 65 |tch{\ifT|E@negate|
|00003490| 5c 54 45 40 6e 65 67 61 | 74 65 66 61 6c 73 65 5c |\TE@nega|tefalse\|
|000034a0| 65 6c 73 65 5c 54 45 40 | 6e 65 67 61 74 65 74 72 |else\TE@|negatetr|
|000034b0| 75 65 5c 66 69 7d 0a 25 | 20 20 20 20 5c 65 6e 64 |ue\fi}.%| \end|
|000034c0| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 25 20 5c 65 |{macroco|de}.% \e|
|000034d0| 6e 64 7b 6d 61 63 72 6f | 7d 0a 25 20 5c 65 6e 64 |nd{macro|}.% \end|
|000034e0| 7b 6d 61 63 72 6f 7d 0a | 25 0a 25 20 5c 62 65 67 |{macro}.|%.% \beg|
|000034f0| 69 6e 7b 6d 61 63 72 6f | 7d 7b 5c 54 45 40 6c 70 |in{macro|}{\TE@lp|
|00003500| 61 72 65 6e 7d 0a 25 20 | 7c 5c 28 7c 2e 20 54 68 |aren}.% ||\(|. Th|
|00003510| 72 6f 77 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 |row the |current |
|00003520| 63 6f 6e 74 65 78 74 2c | 20 74 68 65 6e 20 72 65 |context,| then re|
|00003530| 73 74 61 72 74 20 61 20 | 74 65 72 6d 20 69 6e 73 |start a |term ins|
|00003540| 69 64 65 20 61 20 67 72 | 6f 75 70 2e 0a 25 20 20 |ide a gr|oup..% |
|00003550| 20 20 5c 62 65 67 69 6e | 7b 6d 61 63 72 6f 63 6f | \begin|{macroco|
|00003560| 64 65 7d 0a 5c 64 65 66 | 5c 54 45 40 6c 70 61 72 |de}.\def|\TE@lpar|
|00003570| 65 6e 23 31 7b 5c 54 45 | 40 74 68 72 6f 77 5c 62 |en#1{\TE|@throw\b|
|00003580| 65 67 69 6e 67 72 6f 75 | 70 5c 54 45 40 65 76 61 |egingrou|p\TE@eva|
|00003590| 6c 23 31 7d 0a 25 20 20 | 20 20 5c 65 6e 64 7b 6d |l#1}.% | \end{m|
|000035a0| 61 63 72 6f 63 6f 64 65 | 7d 0a 25 20 5c 65 6e 64 |acrocode|}.% \end|
|000035b0| 7b 6d 61 63 72 6f 7d 0a | 25 0a 25 20 5c 62 65 67 |{macro}.|%.% \beg|
|000035c0| 69 6e 7b 6d 61 63 72 6f | 7d 7b 5c 54 45 40 72 70 |in{macro|}{\TE@rp|
|000035d0| 61 72 65 6e 7d 0a 25 20 | 7c 5c 29 7c 20 65 6e 64 |aren}.% ||\)| end|
|000035e0| 20 74 68 65 20 63 75 72 | 72 65 6e 74 20 74 65 72 | the cur|rent ter|
|000035f0| 6d 2c 20 61 6e 64 20 74 | 68 65 20 6c 6f 63 61 6c |m, and t|he local|
|00003600| 20 67 72 6f 75 70 20 73 | 74 61 72 74 65 64 20 62 | group s|tarted b|
|00003610| 79 20 7c 5c 28 7c 2c 20 | 62 75 74 0a 25 20 70 61 |y |\(|, |but.% pa|
|00003620| 73 73 20 6f 6e 20 74 68 | 65 20 62 6f 6f 6c 65 61 |ss on th|e boolea|
|00003630| 6e 20 76 61 6c 75 65 20 | 69 6e 20 7c 5c 69 66 5c |n value |in |\if\|
|00003640| 40 76 61 6c 20 54 7c 2e | 20 54 68 65 20 7c 5c 6e |@val T|.| The |\n|
|00003650| 6f 65 78 70 61 6e 64 7c | 20 73 74 6f 70 73 20 74 |oexpand|| stops t|
|00003660| 68 65 0a 25 20 7c 5c 65 | 78 70 61 6e 64 61 66 74 |he.% |\e|xpandaft|
|00003670| 65 72 7c 20 66 72 6f 6d | 20 65 78 70 61 6e 64 69 |er| from| expandi|
|00003680| 6e 67 20 6f 6e 20 74 68 | 65 20 66 69 72 73 74 20 |ng on th|e first |
|00003690| 70 61 73 73 2e 0a 25 20 | 20 20 20 5c 62 65 67 69 |pass..% | \begi|
|000036a0| 6e 7b 6d 61 63 72 6f 63 | 6f 64 65 7d 0a 5c 64 65 |n{macroc|ode}.\de|
|000036b0| 66 5c 54 45 40 72 70 61 | 72 65 6e 23 31 7b 25 0a |f\TE@rpa|ren#1{%.|
|000036c0| 20 20 5c 54 45 40 65 6e | 64 65 76 61 6c 0a 20 20 | \TE@en|deval. |
|000036d0| 5c 6e 6f 65 78 70 61 6e | 64 5c 65 78 70 61 6e 64 |\noexpan|d\expand|
|000036e0| 61 66 74 65 72 5c 65 6e | 64 67 72 6f 75 70 5c 6e |after\en|dgroup\n|
|000036f0| 6f 65 78 70 61 6e 64 5c | 69 66 54 45 40 76 61 6c |oexpand\|ifTE@val|
|00003700| 23 31 7d 0a 25 20 20 20 | 20 5c 65 6e 64 7b 6d 61 |#1}.% | \end{ma|
|00003710| 63 72 6f 63 6f 64 65 7d | 0a 25 20 5c 65 6e 64 7b |crocode}|.% \end{|
|00003720| 6d 61 63 72 6f 7d 0a 25 | 0a 25 20 5c 62 65 67 69 |macro}.%|.% \begi|
|00003730| 6e 7b 6d 61 63 72 6f 7d | 7b 5c 54 45 40 65 71 75 |n{macro}|{\TE@equ|
|00003740| 61 6c 7d 0a 25 20 7c 5c | 65 71 75 61 6c 7c 20 67 |al}.% |\|equal| g|
|00003750| 72 65 61 74 6c 79 20 73 | 69 6d 70 6c 69 66 69 65 |reatly s|implifie|
|00003760| 64 20 66 72 6f 6d 20 74 | 68 65 20 6f 72 69 67 69 |d from t|he origi|
|00003770| 6e 61 6c 2e 20 7c 5c 64 | 65 66 7c 20 6d 61 79 20 |nal. |\d|ef| may |
|00003780| 62 65 20 75 73 65 64 0a | 25 20 72 61 74 68 65 72 |be used.|% rather|
|00003790| 20 74 68 61 6e 20 7c 5c | 65 64 65 66 7c 20 61 73 | than |\|edef| as|
|000037a0| 20 74 68 65 20 77 68 6f | 6c 65 20 74 68 69 6e 67 | the who|le thing|
|000037b0| 20 69 73 20 65 78 70 61 | 6e 64 65 64 20 61 6e 79 | is expa|nded any|
|000037c0| 77 61 79 20 69 6e 20 74 | 68 65 0a 25 20 66 69 72 |way in t|he.% fir|
|000037d0| 73 74 20 70 61 73 73 2e | 20 54 68 65 20 62 6f 6f |st pass.| The boo|
|000037e0| 6c 65 61 6e 20 63 61 6e | 20 62 65 20 64 69 72 65 |lean can| be dire|
|000037f0| 63 74 6c 79 20 65 6e 63 | 6f 64 65 64 20 77 69 74 |ctly enc|oded wit|
|00003800| 68 20 74 68 65 20 7c 5c | 69 66 78 7c 2c 0a 25 20 |h the |\|ifx|,.% |
|00003810| 74 68 65 72 65 20 69 73 | 20 6e 6f 20 6e 65 65 64 |there is| no need|
|00003820| 20 74 6f 20 73 74 61 72 | 74 20 61 6e 20 65 71 75 | to star|t an equ|
|00003830| 69 76 61 6c 65 6e 74 20 | 7c 5c 69 66 6e 75 6d 7c |ivalent ||\ifnum||
|00003840| 2e 0a 25 20 5c 63 68 61 | 6e 67 65 73 7b 76 31 2e |..% \cha|nges{v1.|
|00003850| 30 68 7d 7b 31 39 39 34 | 2f 30 35 2f 31 34 7d 7b |0h}{1994|/05/14}{|
|00003860| 6d 61 6b 65 20 6c 6f 6e | 67 7d 0a 25 20 20 20 20 |make lon|g}.% |
|00003870| 5c 62 65 67 69 6e 7b 6d | 61 63 72 6f 63 6f 64 65 |\begin{m|acrocode|
|00003880| 7d 0a 5c 6c 6f 6e 67 5c | 64 65 66 5c 54 45 40 65 |}.\long\|def\TE@e|
|00003890| 71 75 61 6c 23 31 23 32 | 23 33 7b 5c 54 45 40 74 |qual#1#2|#3{\TE@t|
|000038a0| 68 72 6f 77 0a 20 20 20 | 20 20 20 5c 64 65 66 5c |hrow. | \def\|
|000038b0| 40 74 65 6d 70 61 7b 23 | 31 7d 5c 64 65 66 5c 40 |@tempa{#|1}\def\@|
|000038c0| 74 65 6d 70 62 7b 23 32 | 7d 25 0a 20 20 20 20 20 |tempb{#2|}%. |
|000038d0| 20 5c 6e 6f 65 78 70 61 | 6e 64 5c 69 66 78 5c 40 | \noexpa|nd\ifx\@|
|000038e0| 74 65 6d 70 61 5c 40 74 | 65 6d 70 62 23 33 7d 0a |tempa\@t|empb#3}.|
|000038f0| 25 20 20 20 20 5c 65 6e | 64 7b 6d 61 63 72 6f 63 |% \en|d{macroc|
|00003900| 6f 64 65 7d 0a 25 20 5c | 65 6e 64 7b 6d 61 63 72 |ode}.% \|end{macr|
|00003910| 6f 7d 0a 25 0a 25 20 5c | 62 65 67 69 6e 7b 6d 61 |o}.%.% \|begin{ma|
|00003920| 63 72 6f 7d 7b 5c 62 6f | 6f 6c 65 61 6e 7d 0a 25 |cro}{\bo|olean}.%|
|00003930| 20 7c 5c 73 65 74 62 6f | 6f 6c 65 61 6e 7c 20 74 | |\setbo|olean| t|
|00003940| 61 6b 65 73 20 7c 74 72 | 75 65 7c 20 6f 72 20 7c |akes |tr|ue| or ||
|00003950| 66 61 6c 73 65 7c 2c 20 | 61 73 20 7c 23 32 7c 2c |false|, |as |#2|,|
|00003960| 20 61 6e 64 20 73 65 74 | 73 20 7c 23 31 7c 0a 25 | and set|s |#1|.%|
|00003970| 20 61 63 63 6f 72 64 69 | 6e 67 6c 79 2e 0a 25 20 | accordi|ngly..% |
|00003980| 5c 63 68 61 6e 67 65 73 | 7b 76 31 2e 30 69 7d 7b |\changes|{v1.0i}{|
|00003990| 31 39 39 34 2f 30 35 2f | 32 37 7d 7b 4e 65 77 20 |1994/05/|27}{New |
|000039a0| 73 74 79 6c 65 20 65 72 | 72 6f 72 20 63 6f 6d 6d |style er|ror comm|
|000039b0| 61 6e 64 73 7d 0a 25 20 | 20 20 20 5c 62 65 67 69 |ands}.% | \begi|
|000039c0| 6e 7b 6d 61 63 72 6f 63 | 6f 64 65 7d 0a 5c 64 65 |n{macroc|ode}.\de|
|000039d0| 66 5c 73 65 74 62 6f 6f | 6c 65 61 6e 23 31 23 32 |f\setboo|lean#1#2|
|000039e0| 7b 25 0a 20 20 5c 6c 6f | 77 65 72 63 61 73 65 7b |{%. \lo|wercase{|
|000039f0| 5c 64 65 66 5c 40 74 65 | 6d 70 61 7b 23 32 7d 7d |\def\@te|mpa{#2}}|
|00003a00| 25 0a 20 20 5c 40 69 66 | 75 6e 64 65 66 69 6e 65 |%. \@if|undefine|
|00003a10| 64 7b 40 74 65 6d 70 73 | 77 61 5c 40 74 65 6d 70 |d{@temps|wa\@temp|
|00003a20| 61 7d 25 0a 20 20 20 20 | 7b 5c 50 61 63 6b 61 67 |a}%. |{\Packag|
|00003a30| 65 45 72 72 6f 72 7b 69 | 66 74 68 65 6e 7d 25 0a |eError{i|fthen}%.|
|00003a40| 20 20 20 20 20 20 20 7b | 59 6f 75 20 63 61 6e 20 | {|You can |
|00003a50| 6f 6e 6c 79 20 73 65 74 | 20 61 20 62 6f 6f 6c 65 |only set| a boole|
|00003a60| 61 6e 20 74 6f 20 60 74 | 72 75 65 27 20 6f 72 20 |an to `t|rue' or |
|00003a70| 60 66 61 6c 73 65 27 7d | 5c 40 65 68 63 7d 25 0a |`false'}|\@ehc}%.|
|00003a80| 20 20 20 20 7b 5c 40 69 | 66 75 6e 64 65 66 69 6e | {\@i|fundefin|
|00003a90| 65 64 7b 23 31 5c 40 74 | 65 6d 70 61 7d 25 0a 20 |ed{#1\@t|empa}%. |
|00003aa0| 20 20 20 20 20 7b 5c 50 | 61 63 6b 61 67 65 45 72 | {\P|ackageEr|
|00003ab0| 72 6f 72 7b 69 66 74 68 | 65 6e 7d 7b 42 6f 6f 6c |ror{ifth|en}{Bool|
|00003ac0| 65 61 6e 20 23 31 20 75 | 6e 64 65 66 69 6e 65 64 |ean #1 u|ndefined|
|00003ad0| 7d 5c 40 65 68 63 7d 25 | 0a 20 20 20 20 20 20 7b |}\@ehc}%|. {|
|00003ae0| 5c 63 73 6e 61 6d 65 23 | 31 5c 40 74 65 6d 70 61 |\csname#|1\@tempa|
|00003af0| 5c 65 6e 64 63 73 6e 61 | 6d 65 7d 7d 7d 0a 25 20 |\endcsna|me}}}.% |
|00003b00| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00003b10| 65 7d 0a 25 20 5c 65 6e | 64 7b 6d 61 63 72 6f 7d |e}.% \en|d{macro}|
|00003b20| 0a 25 0a 25 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |.%.% \be|gin{macr|
|00003b30| 6f 7d 7b 5c 6e 65 77 62 | 6f 6f 6c 65 61 6e 7d 0a |o}{\newb|oolean}.|
|00003b40| 25 20 4f 68 20 49 20 64 | 6f 20 6c 6f 76 65 20 74 |% Oh I d|o love t|
|00003b50| 68 6f 73 65 20 7c 5c 6f | 75 74 65 72 7c 20 6d 61 |hose |\o|uter| ma|
|00003b60| 63 72 6f 73 2e 0a 25 20 | 20 20 20 5c 62 65 67 69 |cros..% | \begi|
|00003b70| 6e 7b 6d 61 63 72 6f 63 | 6f 64 65 7d 0a 5c 64 65 |n{macroc|ode}.\de|
|00003b80| 66 5c 6e 65 77 62 6f 6f | 6c 65 61 6e 23 31 7b 25 |f\newboo|lean#1{%|
|00003b90| 0a 20 20 5c 63 73 6e 61 | 6d 65 20 6e 65 77 69 66 |. \csna|me newif|
|00003ba0| 5c 65 78 70 61 6e 64 61 | 66 74 65 72 5c 65 6e 64 |\expanda|fter\end|
|00003bb0| 63 73 6e 61 6d 65 5c 63 | 73 6e 61 6d 65 20 69 66 |csname\c|sname if|
|00003bc0| 23 31 5c 65 6e 64 63 73 | 6e 61 6d 65 7d 0a 25 20 |#1\endcs|name}.% |
|00003bd0| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00003be0| 65 7d 0a 25 20 5c 65 6e | 64 7b 6d 61 63 72 6f 7d |e}.% \en|d{macro}|
|00003bf0| 0a 25 0a 25 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |.%.% \be|gin{macr|
|00003c00| 6f 7d 7b 5c 77 68 69 6c | 65 64 6f 7d 0a 25 20 7c |o}{\whil|edo}.% ||
|00003c10| 5c 77 68 69 6c 65 64 6f | 7c 20 63 6f 70 69 65 64 |\whiledo|| copied|
|00003c20| 20 64 69 72 65 63 74 6c | 79 20 66 72 6f 6d 20 74 | directl|y from t|
|00003c30| 68 65 20 6f 72 69 67 69 | 6e 61 6c 2e 5c 5c 0a 25 |he origi|nal.\\.%|
|00003c40| 20 7c 5c 77 68 69 6c 65 | 64 6f 7b 7c 5c 6d 65 74 | |\while|do{|\met|
|00003c50| 61 7b 74 65 73 74 7d 7c | 7d 7b 7c 5c 6d 65 74 61 |a{test}||}{|\meta|
|00003c60| 7b 62 6f 64 79 7d 7c 7d | 7c 5c 5c 0a 25 20 72 65 |{body}|}||\\.% re|
|00003c70| 70 65 61 74 65 64 6c 79 | 20 65 76 61 6c 75 61 74 |peatedly| evaluat|
|00003c80| 65 73 20 5c 6d 65 74 61 | 7b 62 6f 64 79 7d 20 75 |es \meta|{body} u|
|00003c90| 6e 74 69 6c 20 5c 6d 65 | 74 61 7b 74 65 73 74 7d |ntil \me|ta{test}|
|00003ca0| 20 69 73 20 74 72 75 65 | 2e 0a 25 20 20 20 20 5c | is true|..% \|
|00003cb0| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 63 6f 64 65 7d |begin{ma|crocode}|
|00003cc0| 0a 5c 6c 6f 6e 67 5c 64 | 65 66 5c 77 68 69 6c 65 |.\long\d|ef\while|
|00003cd0| 64 6f 23 31 23 32 7b 25 | 0a 20 20 5c 69 66 74 68 |do#1#2{%|. \ifth|
|00003ce0| 65 6e 65 6c 73 65 7b 23 | 31 7d 7b 5c 40 77 68 69 |enelse{#|1}{\@whi|
|00003cf0| 6c 65 64 6f 74 72 75 65 | 20 5c 40 77 68 69 6c 65 |ledotrue| \@while|
|00003d00| 73 77 5c 69 66 40 77 68 | 69 6c 65 64 6f 5c 66 69 |sw\if@wh|iledo\fi|
|00003d10| 0a 20 20 20 20 20 7b 23 | 32 5c 69 66 74 68 65 6e |. {#|2\ifthen|
|00003d20| 65 6c 73 65 7b 23 31 7d | 7b 5c 40 77 68 69 6c 65 |else{#1}|{\@while|
|00003d30| 64 6f 74 72 75 65 7d 7b | 5c 40 77 68 69 6c 65 64 |dotrue}{|\@whiled|
|00003d40| 6f 66 61 6c 73 65 7d 7d | 7d 7b 7d 7d 0a 25 20 20 |ofalse}}|}{}}.% |
|00003d50| 20 20 5c 65 6e 64 7b 6d | 61 63 72 6f 63 6f 64 65 | \end{m|acrocode|
|00003d60| 7d 0a 25 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 7d 0a |}.% \end|{macro}.|
|00003d70| 25 0a 25 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f |%.% \beg|in{macro|
|00003d80| 7d 7b 5c 69 66 40 77 68 | 69 6c 65 64 6f 7d 0a 25 |}{\if@wh|iledo}.%|
|00003d90| 20 49 6e 74 65 72 6e 61 | 6c 20 73 77 69 74 63 68 | Interna|l switch|
|00003da0| 20 66 6f 72 20 7c 5c 77 | 68 69 6c 65 64 6f 7c 2e | for |\w|hiledo|.|
|00003db0| 0a 25 20 20 20 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |.% \b|egin{mac|
|00003dc0| 72 6f 63 6f 64 65 7d 0a | 5c 6e 65 77 69 66 5c 69 |rocode}.|\newif\i|
|00003dd0| 66 40 77 68 69 6c 65 64 | 6f 0a 25 20 20 20 20 5c |f@whiled|o.% \|
|00003de0| 65 6e 64 7b 6d 61 63 72 | 6f 63 6f 64 65 7d 0a 25 |end{macr|ocode}.%|
|00003df0| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 7d 0a 25 0a 25 | \end{ma|cro}.%.%|
|00003e00| 20 20 20 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f | \beg|in{macro|
|00003e10| 63 6f 64 65 7d 0a 25 3c | 2f 70 61 63 6b 61 67 65 |code}.%<|/package|
|00003e20| 3e 0a 25 20 20 20 20 5c | 65 6e 64 7b 6d 61 63 72 |>.% \|end{macr|
|00003e30| 6f 63 6f 64 65 7d 0a 25 | 0a 25 20 5c 46 69 6e 61 |ocode}.%|.% \Fina|
|00003e40| 6c 65 0a 5c 65 6e 64 69 | 6e 70 75 74 0a |le.\endi|nput. |
+--------+-------------------------+-------------------------+--------+--------+