home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / inputs / latex / unpacked / ifthen.sty < prev    next >
Text File  |  1995-06-21  |  6KB  |  165 lines

  1. %% 
  2. %% This is file `ifthen.sty', generated 
  3. %% on <1995/6/21> with the docstrip utility (2.2i).
  4. %% 
  5. %% The original source files were:
  6. %% 
  7. %% ifthen.dtx  (with options: `package')
  8. %% 
  9. %% 
  10. %% This is a generated file. 
  11. %% 
  12. %% Copyright 1993-1995 the LaTeX3 project and any individual authors 
  13. %% listed elsewhere in this file. All rights reserved. 
  14. %% 
  15. %% For further copyright information see the file legal.txt, and any 
  16. %% other copyright notices in this file. 
  17. %% 
  18. %% This file is part of the LaTeX2e system. 
  19. %% ---------------------------------------- 
  20. %% This system is distributed in the hope that it will be useful, 
  21. %% but WITHOUT ANY WARRANTY; without even the implied warranty of 
  22. %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
  23. %% 
  24. %% For error reports concerning UNCHANGED versions of this file no more 
  25. %% than one year old, see bugs.txt. 
  26. %% 
  27. %% Please do not request updates from us directly. Primary 
  28. %% distribution is through the CTAN archives. 
  29. %% 
  30. %% 
  31. %% IMPORTANT COPYRIGHT NOTICE: 
  32. %% 
  33. %% You are NOT ALLOWED to distribute this file alone. 
  34. %% 
  35. %% You are allowed to distribute this file under the condition that it is 
  36. %% distributed together with all the files listed in manifest.txt. 
  37. %% 
  38. %% If you receive only some of these files from someone, complain! 
  39. %% 
  40. %% Permission is granted to copy this file to another file with a clearly 
  41. %% different name and to customize the declarations in that copy to serve 
  42. %% the needs of your installation, provided that you comply with 
  43. %% the conditions in the file legal.txt. 
  44. %% 
  45. %% However, NO PERMISSION is granted to generate or to distribute a 
  46. %% modified version of this file under its original name. 
  47. %% 
  48. %% You are NOT ALLOWED to change this file. 
  49. %% 
  50. %% 
  51. %% MODIFICATION ADVICE: 
  52. %% 
  53. %% If you want to customize this file, it is best to make a copy of the 
  54. %% source file(s) from which it was produced. Use a different name for 
  55. %% your copy(ies) and modify the copy(ies); this will ensure that your 
  56. %% modifications do not get overwritten when you install a new release of 
  57. %% the standard system. You should also ensure that your modified source 
  58. %% file does not generate any modified file with the same name as a 
  59. %% standard file. You can then easily distribute your modifications by 
  60. %% distributing the modified and renamed copy of the source file, taking 
  61. %% care to observe the conditions in legal.txt; this will ensure that 
  62. %% other users can safely use your modifications. 
  63. %% 
  64. %% You will also need to produce your own, suitably named, .ins file to 
  65. %% control the generation of files from your source file; this file 
  66. %% should contain your own preambles for the files it generates, not 
  67. %% those in the standard .ins files. 
  68. %% 
  69. %% The names of the source files used are shown above. 
  70. %% 
  71. %% 
  72. %% 
  73. %%
  74. %% File `ifthen.dtx'.
  75. %% Copyright (C) 1991 by Leslie Lamport
  76. %% Copyright (C) 1994-1995 LaTeX3 project, David Carlisle
  77. %%                       all rights reserved.
  78. %%
  79. \NeedsTeXFormat{LaTeX2e}[1994/12/01]
  80. \ProvidesPackage{ifthen}
  81.           [1995/04/25 v1.0k Standard LaTeX ifthen package (DPC)]
  82. \def\TE@throw{\@ne=\@ne\noexpand\fi}
  83. \def\boolean#1#2{%
  84.   \TE@throw\expandafter\noexpand\csname if#1\endcsname#2}
  85. \def\TE@length#1#2{\TE@throw\noexpand\ifdim#1#2}
  86. \def\TE@odd#1#2{%
  87.   \TE@throw\noexpand\TE@@odd#1\noexpand\@nil\noexpand\ifodd\count@#2}
  88. \def\TE@@odd#1#2\@nil{%
  89.   \@defaultunits
  90.   \count@\if-#1-0\else0\expandafter#1\fi#2\relax\@nnil}
  91. \def\TE@repl#1#2{%
  92.   \long\def\@tempc##1#1##2{%
  93.     \def\@tempa{##2}\def\@tempb{\@tempc}%
  94.     \ifx\@tempa\@tempb
  95.      \toks@\expandafter{\the\toks@##1}%
  96.      \expandafter\@gobble
  97.     \else
  98.       \toks@\expandafter{\the\toks@##1#2}%
  99.     \expandafter\@tempc
  100.     \fi
  101.     ##2}%
  102.   \expandafter\toks@\expandafter{\expandafter}%
  103.   \expandafter\@tempc\the\toks@#1\@tempc}
  104. \long\def\ifthenelse#1{%
  105. \toks@{#1}%
  106. \TE@repl\or\TE@or
  107. \TE@repl\and\TE@and
  108. \TE@repl\not\TE@neg
  109.     \bgroup
  110.         \let\protect\@unexpandable@protect
  111.         \def\@setref##1##2##3{%
  112.          \ifx##1\relax\z@\else\expandafter##2##1\fi}%
  113.         \def\value##1{\the\csname c@##1\endcsname}%
  114.         \let\equal\TE@equal \let\(\TE@lparen \let\)\TE@rparen
  115.         \let\isodd\TE@odd \let\lengthtest\TE@length
  116.         {\let\@tempa\relax\let\@tempb\relax
  117.         \xdef\@gtempa{\expandafter\TE@eval\the\toks@\TE@endeval}}%
  118.         \@gtempa
  119.         \expandafter\egroup\ifTE@val
  120.           \expandafter\@firstoftwo
  121.         \else
  122.           \expandafter\@secondoftwo
  123.         \fi}
  124. \def\TE@eval{\noexpand\TE@negatefalse\noexpand\iftrue\noexpand\ifnum}
  125. \newif\ifTE@val
  126. \newif\ifTE@negate
  127. \def\TE@endeval{\relax
  128.       \noexpand\TE@setvaltrue\noexpand
  129.     \else
  130.       \noexpand\TE@setvalfalse\noexpand
  131.     \fi
  132.     \noexpand\TE@negatefalse\noexpand
  133.   \fi}
  134. \def\TE@setvaltrue{%
  135.   \ifTE@negate\TE@valfalse\else\TE@valtrue\fi}
  136. \def\TE@setvalfalse{\let\ifTE@val\ifTE@negate}
  137. \def\TE@or{\TE@endeval\noexpand\ifTE@val\noexpand\else\noexpand\ifnum}
  138. \def\TE@and{\TE@endeval\noexpand\ifTE@val\noexpand\ifnum}
  139. \def\TE@neg{\TE@throw\noexpand\TE@negswitch\noexpand\ifnum}
  140. \def\TE@negswitch{\ifTE@negate\TE@negatefalse\else\TE@negatetrue\fi}
  141. \def\TE@lparen#1{\TE@throw\begingroup\TE@eval#1}
  142. \def\TE@rparen#1{%
  143.   \TE@endeval
  144.   \noexpand\expandafter\endgroup\noexpand\ifTE@val#1}
  145. \long\def\TE@equal#1#2#3{\TE@throw
  146.       \def\@tempa{#1}\def\@tempb{#2}%
  147.       \noexpand\ifx\@tempa\@tempb#3}
  148. \def\setboolean#1#2{%
  149.   \lowercase{\def\@tempa{#2}}%
  150.   \@ifundefined{@tempswa\@tempa}%
  151.     {\PackageError{ifthen}%
  152.        {You can only set a boolean to `true' or `false'}\@ehc}%
  153.     {\@ifundefined{#1\@tempa}%
  154.       {\PackageError{ifthen}{Boolean #1 undefined}\@ehc}%
  155.       {\csname#1\@tempa\endcsname}}}
  156. \def\newboolean#1{%
  157.   \csname newif\expandafter\endcsname\csname if#1\endcsname}
  158. \long\def\whiledo#1#2{%
  159.   \ifthenelse{#1}{\@whiledotrue \@whilesw\if@whiledo\fi
  160.      {#2\ifthenelse{#1}{\@whiledotrue}{\@whiledofalse}}}{}}
  161. \newif\if@whiledo
  162. \endinput
  163. %% 
  164. %% End of file `ifthen.sty'.
  165.