|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U
Length: 5021 (0x139d)
Types: TextFile
Notes: Uncompressed file
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z«
└─⟦036c765ac⟧
└─⟦13172d798⟧ »TeX3.0/LaTeX/LaTeXmacros/ifthen.doc.Z«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
└─⟦13172d798⟧ »./tex82/LaTeX/LaTeXmacros/ifthen.doc.Z«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z«
└─⟦c58930e5c⟧
└─⟦13172d798⟧ »TeX3.14/LaTeX/LaTeXmacros/ifthen.doc.Z«
└─⟦this⟧
% IFTHEN DOCUMENT-STYLE OPTION - released 16 December 1986
% for LaTeX version 2.09
% Copyright (C) 1986 by Leslie Lamport
% \ifthenelse{TEST}{THENCLAUSE}{ELSECLAUSE}
% An if-then-else command where
% TEST == \equal{STRING}{STRING}
% number < number | number = number | number > number |
% \(TEST\) | \not TEST | TEST \or TEST | TEST \and TEST
% with \or, \and and \not denoting the obvious logical operators,
% \( and \) as parentheses, and \equal testing equality of strings.
%
% \equal{STRING}{STRING}
% Tests if the two arguments are equal, after all macros are expanded.
% E.g.: \def\foo{bar} ... causes \equal{\foo}{bar} to evaluate to `true'
%
% \whiledo{TEST}{DO-CLAUSE}
% A while-do construction, with TEST the same as above.
%
% \ifthenelse{TEST}{THEN-CLAUSE}{ELSE-CLAUSE} ==
% BEGIN
% \@tempboxa := \vbox{ \protect := \noexpand
% \or := \@or
% \and := \@and
% \not := \@neg
% \( := \@lparen
% \) := \@rparen
% \@eval \ifnum
% eval(TEST) %%% \if's not expanded
% @term := T \else @term := F \fi
% \@endeval
% @gtempa :=G @val }
% IF @gtempa = T THEN THEN-CLAUSE
% ELSE ELSE-CLAUSE FI
% END
%
% \@eval == BEGIN @val := F
% @orop := T
% @negate := F
% END
%
% \@endeval ==
% BEGIN
% IF \@negate =T THEN \@negate := F
% IF \@term = T THEN \@term := F
% ELSE \@term := T
% FI FI
% IF \@orop = T THEN IF \@val = F
% THEN \@val := \@term FI
% ELSE IF \@val = T THEN \@val := \@term FI
% FI
%
% \@or ==
% BEGIN @term := T \else @term := F \fi
% \@endeval
% \@orop := T
% \ifnum
% END
%
% \@and ==
% BEGIN \relax \@term := T \else \@term := F \fi
% \@endeval
% \@orop := F
% \ifnum
% END
%
% \@neg == BEGIN 1=1 \fi
% \@negate := T
% \ifnum
% END
%
% \@lparen == BEGIN 1=1 \fi
% \begingroup
% \@eval \ifnum
% END
%
% \@rparen ==
% BEGIN \relax \@term := T \else \@term := F \fi
% \@endeval
% IF \@val = T THEN \@gtempb :=G 1=1
% ELSE \@gtempb :=G 1=0 FI
% \endgroup
% \ifnum
% \@gtempb
%
% \equal{STR1}{STR2} ==
% BEGIN 1=1 \fi
% \@tempa := eval(STR1)
% \@tempe := eval(STR2)
% IF \@tempa == \@tempe
% THEN \@tempa := 1=1
% ELSE \@tempa := 1=0 FI
% \ifnum \@tempa
% END
%
% \whiledo{TEST}{DO-CLAUSE} ==
% \ifthenelse{TEST}{@whiledo := true
% WHILE @whiledo
% DO DO-CLAUSE
% \ifthenelse{TEST}{@whiledo := true}
% {@whiledo := false}
% OD}
% {}
\long\def\ifthenelse#1#2#3{\setbox\@tempboxa
\vbox{\let\protect\noexpand
\let\or\@or \let\and\@and \let\not\@neg \let\(\@lparen \let\)\@rparen
{\let\if\relax\let\ifx\relax\let\ifnum\relax\let\fi\relax
\let\else\relax \xdef\@gtempa{#1}}\expandafter
\@eval \ifnum \@gtempa\relax \def\@term{T}\else \def\@term{F}\fi
\@endeval\global\let\@gtempa\@val}\if\@gtempa T#2\else#3\fi}
\def\@eval{\def\@val{F}\def\@orop{T}\def\@negate{F}}
\def\@endeval{\if\@negate T\def\@negate{F}\if\@term T\def\@term{F}\else
\def\@term{T}\fi\fi
\if\@orop T\if\@val F\let\@val\@term\fi
\else \if\@val T\let\@val\@term\fi\fi}
\def\@or{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi
\noexpand\@endeval \def\noexpand\@orop{T}\ifnum}
\def\@and{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi
\noexpand\@endeval\def\noexpand\@orop{F}\ifnum}
\def\@neg{1=1 \fi \def\noexpand\@negate{T}\ifnum}
\def\@lparen{1=1 \fi \begingroup \noexpand\@eval \ifnum}
\def\@rparen{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi
\noexpand\@endeval \if\noexpand\@val T\gdef\noexpand\@gtempb{1=1}\else
\gdef\noexpand\@gtempb{1=0}\fi
\endgroup \ifnum\noexpand\@gtempb}
\def\equal#1#2{1=1 \fi \edef\noexpand\@tempa{#1}\edef\noexpand\@tempe{#2}\ifx
\noexpand\@tempa\noexpand\@tempe
\def\noexpand\@tempa{1=1}\else
\def\noexpand\@tempa{1=0}\fi \ifnum \noexpand\@tempa}
\long\def\whiledo#1#2{\ifthenelse{#1}{\@whiledotrue \@whilesw\if@whiledo
\fi{#2\ifthenelse{#1}{\@whiledotrue}{\@whiledofalse}}}{}}
\newif\if@whiledo