blob: aefb3b73bd9b8c0e03b0195013518bef7486083b (
plain)
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
|
% boolexpr : Purely expandable boolean expressions and switch (eTeX - v3.1 2009/09/30)
%
% The \boolexpr macro evaluate boolean expressions in a *purely expandable way*.
%
% \boolexpr{ A \OR B \AND C } expands to 0 if the logical expression is TRUE.
%
% A, B, C may be :
% - numeric expressions such as: x = y, x <> y, x > y or: x < y
% - boolean switches: \iftrue 0\else 1\fi
% - conditionals: \ifcsname whatsit\endcsname 0\else 1\fi
% - another \boolexpr: \boolexpr{ D \OR E \AND F }
%
% \boolexpr may be used with \ifcase:
% \ifcase\boolexpr{ A \OR B \AND C }
% What to do if true
% \else
% What to do if false
% \fi
%
% \switch remains *purely expandable* (it may be used inside \csname...\endcsname f.ex.)
%
% \switch
% \case{ boolean expression} to do in first case
% \case{ boolean expression} to do in second case
% \otherwise to do if no case were true
% \endswitch
%
% \switch may have an optional argument to repeat in each \case evaluation, e.g. :
%
% \switch[\value{myCounter}]
% %|--| ---------------------------------------------------> |--|
% \case{>=12}It's $>=12$% => \case will expand to : \case{\value{myCounter}>=12}
% \case{=1}It's $1$% => \case will expand to : \case{\value{myCounter}=1}
% \otherwise ...
% \endswitch
%
% or : *(NB the double curly braces)*
% \switch[\pdfstrcmp{dummy}}]
% %|-----| ------------------------------------------------> |-----|
% \case{{first}}It's "FiRsT"% => \case{\lowercase{\ifstrequal{dummy}}{first}}
% \case{{second}}It"s "SeCoNd"%=> \case{\lowercase{\ifstrequal{dummy}}{second}
% \endswitch
%
% *********************************************************************************
% This work consists of the main source file boolexpr.dtx and the derived
% files : boolexpr.sty, boolexpr.pdf, boolexpr.ins
%
% Some examples are included in the documentation: it is preferable (albeit
% not necessary) to install boolexpr.sty before compiling the documentation.
%
% Unpacking:
% (a) If boolexpr.ins is present:
% etex boolexpr.ins
% (b) Without boolexpr.ins:
% etex boolexpr.dtx
% (c) If you insist on using LaTeX
% latex \let\install=y\input{boolexpr.dtx}
% (quote the arguments according to the demands of your shell)
%
% Documentation:
% (pdf)latex boolexpr.dtx
% makeindex -s gind.ist boolexpr.idx
%
% F Chervet - Jul-Sep 2009
|