\ifx\@bases@loaded\undefined % ne me chargez qu'une seule fois % ====================================================================== % ======================== BASES ======================================= % ====================================================================== \let\ampersand@\relax \let\dsize\displaystyle \let\tsize\textstyle \let\ssize\scriptstyle \let\sssize\scriptscriptstyle \def\NoBlackBoxes{\global\overfullrule\z@} \def\BlackBoxes{\global\overfullrule5\p@} \toksdef\toks@@=2 \newdimen\ex@ \ex@.2326ex \newskip\XdimenA \newskip\XdimenB \newbox\XboxA % reservation verticale \def\need#1{{\ifhmode\unskip\par\fi \XdimenA=\pagegoal \advance\XdimenA by -\pagetotal \ifdim\pagetotal>\z@ \ifdim\XdimenA>\z@ \ifdim\XdimenA<#1% \vfil\eject\typeout{WARNING- EJECT BY NEED} \fi \fi \fi} } \def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@ \mathrel{#1}\else{#1}\fi\fi} \def\binrel@#1{\setbox\z@\hbox{\thinmuskip0mu \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}% \setbox\@ne\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip \@ne mu${}#1{}\m@th$}% \setbox\tw@\hbox{\hskip\wd\@ne\hskip-\wd\z@}} \def\relaxnext@{\let\next\relax} \let\DOTSI\relax \let\DOTSB\relax \def\LimitsOnInts{\global\let\ilimits@\displaylimits} \def\NoLimitsOnInts{\global\let\ilimits@\nolimits} \NoLimitsOnInts %------ MAGIC \newif\ifmath@ {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`?=`h \uppercase{\gdef\math@#1#2#3#4#5#6\math@{\global\math@false\ifx 7#1\ifx 8#2% \ifx 9#3\ifx 0#4\ifx ?#5\xdef\meaning@{#6}\global\math@true\fi\fi\fi\fi\fi}}} \newif\ifmathch@ {\uccode`7=`c \uccode`8=`h \uccode`9=`\" \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\global\mathch@false \ifx 7#1\ifx 8#2\ifx 9#5\global\mathch@true\xdef\meaning@{9#6}\fi\fi\fi}}} \newcount\classnum@ \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096 \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or \gdef\thedots@{\dotsb@}\fi} \newif\ifmathbin@ {\uccode`4=`b \uccode`5=`i \uccode`6=`n \uppercase{\gdef\mathbin@#1#2#3{% \def\next@##1\mathbin@{\ifx\space@\next\global\mathbin@true\fi}% \global\mathbin@false\def\next##1\mathbin@{}% \ifx 4#1\ifx 5#2\ifx 6#3\def\next{\futurelet\next\next@}\fi\fi\fi\next}}} \newif\ifmathrel@ {\uccode`4=`r \uccode`5=`e \uccode`6=`l \uppercase{\gdef\mathrel@#1#2#3{% \def\next@##1\mathrel@{\ifx\space@\next\global\mathrel@true\fi}% \global\mathrel@false\def\next##1\mathrel@{}% \ifx 4#1\ifx 5#2\ifx 6#3\def\next{\futurelet\next\next@}\fi\fi\fi\next}}} \newif\ifmacro@ {\uccode`5=`m \uccode`6=`a \uccode`7=`c \uppercase{\gdef\macro@#1#2#3#4\macro@{\global\macro@false \ifx 5#1\ifx 6#2\ifx 7#3\global\macro@true \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}} \def\macro@@#1->#2\macro@@{#2} \newif\ifDOTS@ \newcount\DOTSCASE@ {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S \uppercase{\gdef\DOTS@#1#2#3#4#5{\global\DOTS@false\def\next##1\DOTS@{}% \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next\DOTS@@\fi\fi\fi\fi\fi \next}}} \let\DOTSX\relax {\uccode`3=`B \uccode`4=`I \uccode`5=`X \uppercase{\gdef\DOTS@@#1{% \def\next{\futurelet\next\next@}% \def\next@##1\DOTS@{\ifx\space@\next\global\DOTS@true\fi}% \ifx 3#1\global\DOTSCASE@\z@\else \ifx 4#1\global\DOTSCASE@\@ne\else \ifx 5#1\global\DOTSCASE@\tw@\else\def\next##1\DOTS@{}% \fi\fi\fi\next}}} \newif\ifnot@ {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t \uppercase{\gdef\not@#1#2#3#4{% \def\next@##1\not@{\ifx\space@\next\global\not@true\fi}% \global\not@false\def\next##1\not@{}% \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\def\next{\futurelet\next\next@}\fi\fi\fi\fi \next}}} \newif\ifkeybin@ \def\keybin@{\keybin@true \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else \ifx\next*\else\ifx\next:\else\keybin@false\fi\fi\fi\fi\fi\fi\fi} \def\dots{\ifmmode\let\next\mdots@\else\let\next\tdots@\fi\next} \def\tdots@{\unskip\relaxnext@ \def\next@{$\mathinner{\ldotp\ldotp\ldotp}\, \ifx\next,$\else\ifx\next.\,$\else\ifx\next;\,$\else\ifx\next:\,$\else \ifx\next?\,$\else\ifx\next!\,$\else$ \fi\fi\fi\fi\fi\fi}% \ \futurelet\next\next@} \def\mdots@{\futurelet\next\mdots@@} \def\mdots@@{\gdef\thedots@{\dotso@}% \ifx,\next\gdef\thedots@{\dotsc}\else \ifx\not\next\gdef\thedots@{\dotsb@}\else \keybin@ \ifkeybin@\gdef\thedots@{\dotsb@}\else \xdef\meaning@{\meaning\next.........}\xdef\meaning@@{\meaning@}% \expandafter\math@\meaning@\math@ \ifmath@ \expandafter\mathch@\meaning@\mathch@\ifmathch@ \expandafter\getmathch@\meaning@\getmathch@\fi\else \expandafter\macro@\meaning@@\macro@ \ifmacro@\expandafter\not@\meaning@\not@ \ifnot@\gdef\thedots@{\dotsb@}\else \expandafter\DOTS@\meaning@\DOTS@ \ifDOTS@ \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}% \or\gdef\thedots@{\dotsi}\else\fi\else \expandafter\math@\meaning@\math@ \ifmath@\expandafter\mathbin@\meaning@\mathbin@ \ifmathbin@\gdef\thedots@{\dotsb@}\else \expandafter\mathrel@\meaning@\mathrel@ \ifmathrel@\gdef\thedots@{\dotsb@}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \thedots@} \def\plainldots@{\mathinner{\ldotp\ldotp\ldotp}} \def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}} \def\dotsi{\!\plaincdots@} \newif\ifextra@ \newif\ifrightdelim@ \def\rightdelim@{\global\rightdelim@true \ifx\next)\else \ifx\next]\else \ifx\next\rbrack\else \ifx\next\}\else \ifx\next\rbrace\else \ifx\next\rangle\else \ifx\next\rceil\else \ifx\next\rfloor\else \ifx\next\rgroup\else \ifx\next\rmoustache\else \ifx\next\right\else \ifx\next\bigr\else \ifx\next\biggr\else \ifx\next\Bigr\else \ifx\next\Biggr\else\global\rightdelim@false \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} \def\extra@{\global\extra@false\rightdelim@ \ifrightdelim@\global\extra@true\else \ifx\next$\global\extra@true\else \xdef\meaning@{\meaning\next.........}% \expandafter\macro@\meaning@\macro@ \ifmacro@\expandafter\DOTS@\meaning@\DOTS@ \ifDOTS@ \ifnum\DOTSCASE@=\tw@\global\extra@true\fi\fi\fi\fi\fi} \def\extrap@#1{% \ifx\next,\def\next{#1\,}\else \ifx\next;\def\next{#1\,}\else \ifx\next.\def\next{#1\,}\else\extra@ \ifextra@\def\next{#1\,}\else \let\next#1\fi\fi\fi\fi\next} %\def\ldots{\relaxnext@ % \def\next@{\extrap@\plainldots@}% % \futurelet\next\next@} %\def\cdots{\relaxnext@ % \def\next@{\extrap@\plaincdots@}% % \futurelet\next\next@} \let\hdots\ldots \let\dotsb@\plaincdots@ \let\dotsb\cdots \def\dotso@{% \def\next@{\extra@\plainldots@\ifextra@\,\fi}% \futurelet\next\next@} \def\dotso{\relaxnext@ \def\next@{\extrap@\plainldots@}% \futurelet\next\next@} \def\dotsc{\relaxnext@ \def\next@{% \ifx\next;\plainldots@\,\else \ifx\next.\plainldots@\,\else\extra@\plainldots@ \ifextra@\,\fi\fi\fi}% \futurelet\next\next@} %JPFD 20000907% \def\cdot{\relax\mathchar"2201 } \let\dotsm\dotsb \def\LimitsOnNames{\global\let\nlimits@\displaylimits} \def\NoLimitsOnNames{\global\let\nlimits@\nolimits@} \LimitsOnNames \def\nolimits@{\relaxnext@ \def\next@{\ifx\next\limits\def\next\limits{\nolimits}\else \def\next{\nolimits}\fi\next}% \futurelet\next\next@} \def\newmcodes@{\mathcode`\'="0027 \mathcode`\*="002A \mathcode`\.="613A \mathcode`\-="002D \mathcode`\/="002F \mathcode`\:="603A } % \strut is defined in PLAIN . The structure of \strutt is equivalent. \newbox\struttbox \def\strutt{\relax\ifmmode\copy\struttbox\else\unhcopy\struttbox\fi} \def\relaxnext@{\let\next\relax} \newhelp\defaulthelp@{Sorry, I already gave what help I could...^^J Maybe you should try asking a human\string?^^J An error might have occurred before I noticed any problems.^^J ``If all else fails, read the instructions.''} \def\Err@#1{\errhelp\defaulthelp@\errmessage{BASES STYLE error= #1}} \def\onlydmatherr@#1{\Err@{\string#1\space allowed only in display math mode}} \def\Invalid@#1{\def#1{\Err@{Invalid use of \string#1}}} \def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi} %\Invalid@\vspace \def\vspace@{\def\vspace##1{\noalign{\vskip##1\relax}}} \newskip\centering@ \centering@\z@ plus\@m\p@ \def\allowdisplaybreak@{\def\allowdisplaybreak{\noalign{\allowbreak}}} \def\displaybreak@{\def\displaybreak{\noalign{\break}}} \def\eat@#1{} \def\textfonti{\the\textfont\@ne} \def\textfontii{\the\textfont\tw@} \def\textfont@#1#2{\def#1{\relax\ifmmode \Err@{Use \string#1\space only in text}\else#2\fi}} \def\text{\relaxnext@\ifmmode\let\next\text@\else\let\next\text@@\fi\next} \def\text@@#1{\leavevmode\hbox{#1}} \def\mathhexbox@#1#2#3{\text{$\m@th\mathchar"#1#2#3$}} \newcount\footmarkcount@ \footmarkcount@\z@ \newcount\footmarkcount@@ \def\text@#1{\footmarkcount@@\footmarkcount@\mathchoice {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont\@ne}% \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}} {\hbox{\everymath{\textstyle}\def\textfonti{\the\textfont\@ne}% \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}} {\hbox{\everymath{\scriptstyle}\def\textfonti{\the\scriptfont\@ne}% \def\textfontii{\the\scriptfont\tw@}\textdef@@ S\rm#1}} {\hbox{\everymath{\scriptscriptstyle}\def\textfonti {\the\scriptscriptfont\@ne}% \def\textfontii{\the\scriptscriptfont\tw@}\textdef@@ s\rm#1}}% \advance\footmarkcount@-\footmarkcount@@ \divide\footmarkcount@4 \global\advance\footmarkcount@\footmarkcount@@} \def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it} \def\rmfam{0} \def\textdef@#1#2{% \def\next{\csname\expandafter\eat@\string#2fam\endcsname}% \if S#1\edef#2{\the\scriptfont\next\relax}% \else\if s#1\edef#2{\the\scriptscriptfont\next\relax}% \else\edef#2{\the\textfont\next\relax}\fi\fi} \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} %BUG%\ifundefined{overlay} %BUG%\scriptfont\itfam\tenit \scriptscriptfont\itfam\tenit %BUG%\scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl %BUG%\else %BUG%\scriptfont\itfam\twentyit \scriptscriptfont\itfam\twentyit %BUG%\scriptfont\slfam\twentyit \scriptscriptfont\slfam\twentyit %BUG%\fi \newif\ifinalign@ \newif\ifingather@ \newif\ifinany@ \newbox\strutbox@ \setbox\strutbox@\hbox{\vrule height8\p@ depth3\p@ width\z@} \def\strut@{\copy\strutbox@} \let\@bases@loaded\plainldots@ \else \typeout{bases.sty already loaded} \fi