1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
%%
%% This is file `ifoption.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% ifoption.dtx
%%
%%% ====================================================================
%%% @LaTeX-doc-source-file{
%%% filename = "ifoption.dtx",
%%% version = "1.02",
%%% date = "2002/03/04",
%%% time = "16:33:16 EST",
%%% author = "Michael J Downes",
%%% address = "American Mathematical Society,
%%% Publications Technical Group,
%%% PO Box 6248,
%%% Providence, RI 02940,
%%% USA",
%%% email = "tech-support@ams.org",
%%% URL = "http://www.ams.org/",
%%% abstract = "",
%%% copyright = "Copyright 2001 American Mathematical Society.",
%%% license = "Unlimited copying and redistribution of this file
%%% are permitted as long as this file is not
%%% modified. Modifications, and distribution of
%%% modified versions, are permitted, but only if
%%% the resulting file is renamed.",
%%% checksum = "06695 170 563 5432",
%%% docstring = "The checksum field, produced by Robert Solovay's
%%% checksum utility, gives CRC-16 checksum, lines,
%%% words, and characters.",
%%% }
%%% ====================================================================
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ifoption}[2002/03/04 v1.02]
\let\@xp\expandafter \let\@nx\noexpand
\def\@True{00}
\def\@False{01}
\def\CurrentPackage{\@currname}
\let\CurrentClass\CurrentPackage
\newcommand{\IfOption}{}
\def\IfPackageOption{\@ifpackagewith}
\def\IfClassOption{\@ifclasswith}
\def\IfOption{%
\ifx\@currext\@pkgextension \@xp\IfPackageOption
\else \@xp\IfClassOption
\fi
\@currname
}
\newcommand{\DeclareExclusiveOptions}[1]{%
\xdef\@declaredoptions{\@declaredoptions,#1}%
\gdef\ProcessExclusiveOptions{\relax}%
\@for\CurrOption:=#1\do{%
\@xp\deo@a\csname ds@\CurrOption\@xp\endcsname\@xp{\CurrOption}{#1}%
}%
}
\def\DeclareBooleanOption{\DeclareExclusiveOptions}
\def\deo@a#1#2#3{%
\def#1{%
\g@addto@macro\ProcessExclusiveOptions{\OptionsFalseTrue{#3}{#2}}%
}%
}
\def\cull@options#1,{%
\@xp\ifx\csname ds@#1\@gobble\@percentchar\@empty\endcsname\@False
\else #1,\fi
\cull@options
}
\newcommand{\OptionsFalseTrue}[2]{%
\begingroup
\@for\CurrentOption:=#1\do{%
\@xp\let\csname ds@\CurrentOption\endcsname\@False
}%
\let\ds@\@False
\@xp\xdef\csname opt@\@currname.\@currext\endcsname{%
\@xp\@xp\@xp\cull@options\csname opt@\@currname.\@currext\endcsname
,\@firstoftwo\@firstoftwo,#2%
}%
\endgroup
}
\endinput
%%
%% End of file `ifoption.sty'.
|