\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{profmath}[9/1/2007 Des macros pour les profs de maths]
%%% Auteurs : D. Cobac et Y. Moncheaux.

% todo
% gestion des plus grandes tailles : localement et pour tout le texte
% voir a0size.sty par exemple
% homogen. des notations : intervalles, etc.
% retirer superflu
% revoir la doc
% compléter caractères grecs
% ajouter gestion du mode math pour \gras et \tableau


% BUGS
% intoo laisse trop d'espaces autour.
% CAL ne fonctionne plus



%%% Ce fichier fournit des commandes facilitant la frappe de 
%%% documents mathématiques de niveau lycée.
%%% La classe profmath.cls contient les macros qui 
%%% lui sont associèes (\exo, \qst, etc.)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Liste des commandes par ordre alphabétique :

%%% 
%%% 
%%% 
%%% 
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Liste des commandes par catégories :
%%% 
%%% Ensembles : 
%%% \R ; \Ret ; \Rplus ; \C ; \Cet ; \Q ; \Qet ; \N ; \Net ; \Z ; \Zet 
%%% \inclus, \dans, \noninclus, \nondans
%%% 
%%% 
%%% Fractions :
%%% \demi ; \tiers ; \unquart ; \troisquart
%%% 
%%% 
%%% 
%%% Lettres grecques :
%%% §a, §b, §g, etc. pour alpha, beta, gamma, etc.
%%% 
%%% 
%%% 
%%% Mise en forme de texte
%%% 
%%% 
%%% 
%%% 
%%% 
%%% Mise en page :
%%% \copie et \colle, \tableau et \fintableau, environnement tabfig, 
%%%
%%% Vecteurs et matrices :
%%% \vect, \Vect
%%% \matdd{...}{...}{...}{...} : matrice deux-deux ; \vectr{...}{...} vecteur colonne
%%% 
%%% 
%%%
%%% Coordonnées
%%%
%%% 
%%%
%%% 
%%%
%%% 
%%%
%%% 
%%%
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 				ORGANISATION DU FICHIER
%%% 
%%% RECOMMANDATIONS
%%% REFERENCES
%%% 
%%% MACROS DE MISE EN PAGE, DE LISTES, DE TABLEAUX, ETC.
%%% MACROS POUR LES EXPRESSIONS MATHEMATIQUES
%%% RACCOURCIS POUR LES EXPRESSIONS COURANTES
%%% SUPPLEMENTS
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 				RECOMMANDATIONS
%%%
%%% Mode mathématique
%%% 
%%% Le texte mathématique est traditionnelement placé entre deux dollars :
%%% "la fraction $\frac{\cos x}{2}$..." est valable mais pas "la fraction \frac{\cos x}{2}...".
%%% Cependant, certaines macros de ce fichier provoquent l'entrée automatique
%%% en mode mathématique (\ensuremath) ce qui évite la frappe des $$.
%%% Par exemple, on utilise souvent les vecteurs isolés dans du texte normal :
%%% "Soit \Vect AB un vecteur ..." est plus rapide que 
%%% "Soit $\Vect AB$ un vecteur ..."
%%%
%%%%%%
%%%
%%% Gestion des arguments
%%%
%%% Certaines macros ont un ou plusieurs arguments. Par exemple, la macro 
%%% \dixmoins 3 prendra le nombre 3 qu'elle placera en exposant.
%%% Si l'argument dépasse une lettre, il faudra utiliser des accolades, par
%%% exemple, on tapera \dixmoins{20} ou \frac{3x-5}2...
%%% 
%%% Dans ce fichier, certaines macros recquierent un espace après chaque 
%%% argument : il est plus rapide de taper \fract 3x-2 x^2+4x-1 que 
%%% \dfrac{3x-2}{x^2+4x-1}. Attention en particulier de ne pas oublier 
%%% le dernier espace, par exemple vous pouvez taper {\fract 3x 2x+3 } 
%%% mais pas {\fract 3x 2x+3}
%%% Note de 2005 : je n'utilise plus ces macros, peu conformes à l'esprit
%%% LaTeX, les éditeurs de textes fournissent des raccourcis claviers 
%%% permettant d'obtenir rapidement \dfrac{}{} par exemple...
%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 				REFERENCES
%%%
%%% réf. 1 : le petit livre de TeX, Raymond Séroul
%%% réf. 2 : LaTeX par la pratique de C. Rolland
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Chargement de fichiers de macros nécessaires à la définition des macros de 
%%% ce fichier.
\RequirePackage{amsmath}
\RequirePackage{ifthen}
\RequirePackage{calc}
\RequirePackage{xspace}
%\RequirePackage{yhmath}% pour les arcs
\ifx\undefined\psline\RequirePackage[fr]{pfmfig}\fi% pour les figures en PSTricks
\RequirePackage{eurosym}% pour le symbole de l'euro

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\let\debut\begin
\let\fin\end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 	MACROS DE MISE EN PAGE, DE LISTES, DE TABLEAUX, ETC.
%%% 


%%% Traitement du cas où ce fichier de macros n'a pas été chargé depuis profmath.cls ou tout autre fichier de classe définissant \exo,\qst, etc.
%%% Ceci permet d'utiliser les exercices de la base du site Internet prof.math.free.fr sans la classe profmath.cls.
\ifx\qst\undefined\RequirePackage{pfmexos}\fi% gestion des exercices


% \RequirePackage{pfmexos}


%%% TABFIG			21-10-99
%%% Met côte à côte un texte donné dans #1 et une figure donnée dans #2
%%% (par exemple) voir ref1, chap 8.

\newlength{\largeurtexte}
\newlength{\largeurfigure}
\long\def\tabfig#1#2{\par\leavevmode\unskip%
\settowidth{\largeurfigure}{#2}
\setlength{\largeurtexte}{\hsize - \largeurfigure - 2em} 
\kern -0.7em\hbox{\vtop{\hsize \largeurtexte #1}%
\quad\vrule\quad\vtop{\hsize \largeurfigure \null #2}}
}


%%% MULTILIGNE
%%% Pour la mise en page d'égalités multiples sur plusieurs lignes
%%% Exemple : 
%%% \multiligne{
%%%		\cos(a+b) 
%%%		& = &
%%%		\cos(a-(-b)) = \cos a \cos(-b) - \sin a \sin(-b)
%%%		\\
%%%		& = &
%%%		\cos a \cos b - \sin a \sin b.
%%% 		}

\newcommand{\multiligne}[1]
{\hskip -0.3em\ensuremath{\begin{array}[t]{rcl}#1\end{array}}}


%%% COPIE et COLLE
%%% Commandes pour copier-coller un texte autant de fois que l'on veut.	13-10-01
%%% S'il n'y a qu'un seul texte à copier, taper \copie{Mon texte} (votre 
%%% texte sera affiché une fois, il n'est pas "coupé") puis \colle à 
%%% l'endroit choisi.
%%% S'il y a plusieurs textes à copier, on précisera (entre crochets) 
%%% un numéro de boîte de stockage : 
%%% \copie[11]{un premier texte}\copie[12]{un second texte)
%%% puis \colle[11] ou \colle[12] au bon endroit.
%%% Voir Séroul p 205 pour des explications sur les macros à paramètres
%%% optionnels

\long\def\@copiea#1{\setbox20=\hbox{#1}\copy20}
\long\def\@copieb[#1]#2{\setbox#1=\hbox{#2}\copy#1}
\def\@copiechoix{\ifx\firstchar[\let\next=\@copieb\else\let\next=\@copiea\fi\next}
\def\copie{\futurelet\firstchar\@copiechoix}

\def\@collea{\copy20}\def\@colleb[#1]{\copy#1}
\def\@collechoix{\ifx\firstchar[\let\next=\@colleb\else\let\next=\@collea
\fi\next}
\def\colle{\futurelet\firstchar\@collechoix}


%%% Gomme : pour conserver du texte dans le source mais pas à l'affichage
\let\gomme\@gobble

%%% TABLEAU, réf1, p 207		26-10-2001
%%% En voici un exemple \tableau{gd|dgc}
%%% \tableau{gd|cg}
%%% salut & mes & bons & amis
%%% \\
%%% salutsalutsalut & salutsalutles & salutsalutamis &s alutsalutsalut
%%% \fintableau
%%% La macro utilise tabular ou array suivant le mode.

\newcommand{\tableau}[1]{
\def\@newpreamb{}
\def\@trad##1{
\if ##1g{\gdef\@letr{l}}
\else{\if ##1d{\gdef\@letr{r}}
\else{\gdef\@letr{##1}}\fi}\fi
\let\@pream\@newpreamb
\edef\@newpreamb{\@pream\@letr}
}
\def\@traduc ##1{\ifx ##1-\let\@traduc=\relax
		\else\@trad{##1}\fi\@traduc}
\@traduc #1-
\ifmmode\begin{array}{\@newpreamb}%
\else\begin{tabular}{\@newpreamb}%
%\else{\@newpreamb}%
\fi}
\newcommand{\fintableau}{\ifmmode\end{array}%
\else\end{tabular}%
\fi}



% Les macros suivantes peuvent servir dans les tableaux de signes, etc.

\newcommand{\zerotab}{\vline\hbox to 0cm{\hspace{-0.29em}0}}
\newcommand{\valint}{\vline\hspace{2pt}\vline}
\newcommand{\septab}{\vline}
% L'utilisation de centering nécessite de remplacer le retour à la ligne \\ par 
% un retour chariot \cr
\newcommand{\moins}{\centering\ensuremath{-}}
\newcommand{\plus}{\centering $+$}




%%% LISTES

%%% Environnement itemize avec des espaces verticaux plus petit
\newcommand{\liste}{\begin{itemize}%
\itemsep -0.2mm}
\newcommand{\finliste}{\end{itemize}\par}
\newcommand{\lis}{\newline $\bullet$ }
\newcommand{\Lis}{\par\smallskip $\bullet$ }
\newcommand{\LIS}{\par\medskip $\bullet$ }

%%% ENCADREMENTS DE TEXTES

% Encadre un mot ou une formule en mode texte ou mathématique
\newcommand{\encadre}[1]{\ifmmode\boxed{#1}\else\fbox{#1}\fi}


% Crée un cadre centré sur le reste de la ligne pour #1 (si #1 fait moins d'une ligne).
% Un paramètre prop peut être passé si le cadre est en première ligne d'une propriété.
\newcommand{\enc}[2][]{\ifthenelse{\equal{#1}{prop}}{\mbox{}\par\nobreak\vskip-\baselineskip%
\noindent}{}%
\hfill\fbox{#2}\hfill}

% Idem avec des espaces desssus et dessous
\newcommand{\Enc}[2][]{\smallskip\enc[#1]{#2}\smallskip}

% Formule finissant une phrase
\newcommand{\encpoint}[2][]{\ifthenelse{\equal{#1}{prop}}{\mbox{}\par\nobreak\vskip-\baselineskip\noindent}{}%
\hfill\fbox{#2}.\hfill}
\newcommand{\Encpoint}[2][]{\smallskip\encpoint[#1]{#2}\smallskip}


% Crée un ``petit'' cadre justifié à gauche pour #1 (si #1 fait moins d'une ligne).
% Un paramètre prop peut être passé si le cadre est en première ligne d'une propriété.
\newcommand{\pcadre}[2][]{\ifthenelse{\equal{#1}{prop}}{\mbox{}\par\nobreak\vskip-\baselineskip\noindent}{}%
\fbox{#2}}

% Idem avec des espaces desssus et dessous
\newcommand{\Pcadre}[2][]{\smallskip\pcadre[#1]{#2}\smallskip}

% Formule finissant une phrase
\newcommand{\pcadrepoint}[2][]{\ifthenelse{\equal{#1}{prop}}{\mbox{}\par\nobreak\vskip-\baselineskip%
\noindent}{}%
\fbox{#2}.}

\newcommand{\Pcadrepoint}[2][]{\smallskip\pcadrepoint[#1]{#2}\smallskip}






% Crée un cadre faisant la largeur de la page (à utiliser quand #1 % fait plus d'une ligne)
% le \cr à la place de \\ permet des constructions du genre
% \cadre{\centering Mon texte sur plusieurs lignes...}
\newcommand{\cadre}[2][]{\ifthenelse{\equal{#1}{prop}}{\mbox{}\par\nobreak\vskip-\baselineskip%
\noindent}{}%
\begin{tabular}{|p{\linewidth-5mm}|}%
\hline%
#2%
\cr\hline%
\end{tabular}}

% variante avec espace ajouté
\newcommand{\Cadre}[2][]{\medskip\cadre[#1]{#2}\medskip}

% variante avec cadre double
\newcommand{\cadredouble}[2][]{\ifthenelse{\equal{#1}{prop}}{\mbox{}\par\nobreak\vskip-\baselineskip%
\noindent}{}%
\begin{tabular}{||p{\linewidth-5mm}||}%
\hline%
#2%
\cr\hline%
\end{tabular}}


% encadrement avec une boîte ombrée (requiert fancybox)
\newenvironment{cadreombre}
{\shadowbox\bgroup\vbox\bgroup\medskip}{\egroup\egroup}


% encadrement avec une boîte ovale (requiert fancybox)
\newenvironment{cadreoval}
{\ovalbox\bgroup\vbox\bgroup\medskip}{\egroup\egroup}


% encadrement avec une boîte ayant une bordure double (requiert fancybox)
% \newenvironment{cadredouble}
% {\doublebox\bgroup\vbox\bgroup\medskip}{\egroup\egroup}
% déjà défini plus haut !!

% met une zone en grisée
% paramètre : quantité de blanc (proche de 1 : clair, proche de 0 : foncé)
\newenvironment{zonegrise}[1][0.7]{%
\definecolor{shadecolor}{gray}{#1}%
\begin{shaded}%
\medskip%
}{\end{shaded}}

% met une zone en couleur
% paramètres : code rgb de la couleur
% exemple : \begin{zonecouleur}{0.84,0.93,0.89}
\newenvironment{zonecouleur}[1]{%
\definecolor{shadecolor}{rgb}{#1}%
\begin{shaded}%
\medskip%
}{\end{shaded}}



% met une zone en couleur
% paramètres : code rgb de la couleur
% exemple : \begin{zonecouleur}{0.84,0.93,0.89}
\newenvironment{zoneavecbarre}[1]{%
\begin{leftbar}%
\medskip%
}{\end{leftbar}}


%%% ESPACEMENTS
%%% écarte les lignes d'un tableau ou deux lignes de texte, 
%%% "trait vertical invisible", réf1
\newcommand{\tvi}{\vrule height 1.33ex depth 0.58ex width 0pt}
\newcommand{\gtvi}{\vrule height 1.6ex depth 0.83ex width 0pt}
\newcommand{\tgtvi}{\vrule height 2ex depth 1.2ex width 0pt}
\newcommand{\ttgtvi}{\vrule height 3ex depth 1.5ex width 0pt}
\newcommand{\ptvi}{\vrule height 1.2ex depth 0.5ex width 0pt}
\newcommand{\tptvi}{\vrule height 0.83ex depth 0.25ex width 0pt}

%\newcommand{\tvi}{\vrule height 16pt depth 7pt width 0pt}
%\newcommand{\gtvi}{\vrule height 19pt depth 10pt width 0pt}
%\newcommand{\tgtvi}{\vrule height 23pt depth 14pt width 0pt}
%\newcommand{\ptvi}{\vrule height 14pt depth 5pt width 0pt}
%\newcommand{\tptvi}{\vrule height 10pt depth 3pt width 0pt}

%%% réduit les espaces verticaux
\newcommand{\redspc}{\vskip -5mm}


%%% Crée un espacement avec la ligne précédente
%%% le paramètre peut être 1,2,3

\newcommand{\esp}[1]{\par%
\ifnum #1=1{\smallskip}\else{%
\ifnum #1=2{\medskip}\else{\bigskip}\fi}\fi}



%%% trait de séparation centré
\newcommand{\sep}{\noindent\par\smallskip\hfil\rule{\linewidth/3}{0.4mm}\hfil\par\smallskip}

%%% centre un texte
\newcommand{\centrer}[1]{\hspace*{\stretch{1}}{#1}\hspace*{\stretch{1}}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% COMMANDES GRAPHIQUES

%%% Les distances sont exprimées en fonction de \unitlength

%%% LaTeX de base
% \newcommand{\milli}{\unitlength 1mm}

%%% Pour epic
%%% taper \pointilles[caractère]{dist_entre_points}(x1,y1)(x2,y2)...(xn,yn)
% \newcommand{\pointilles}{\dottedline}
%%% taper \tirets{long_tiret}[dist_entre_tirets](x1,y1)(x2,y2)...(xn,yn)
% \newcommand{\tirets}{\dashline}
%%% taper \grille(largeur,hauteur)(deltax,deltay)[x_de_départ, y_de_départ], 
%%% par exemple : \put(0,0){\tiny\grille(100,50)(5,5)[-10,0]}
% \newcommand{\grille}{\grid}
%%% pour une ligne polygonale quelconque \Ligne(x1,y1)(x2,y2)...(xn,yn)
% \newcommand{\Ligne}{\drawline}
% fusionner avec \ligne (faire un test si epic est chargé ou non)



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% GRANDES TAILLES DE POLICES

%\input{a0size.sty}
%\newcommand{\Gtiny}{\fontsize{12}{14}\selectfont}
%\newcommand{\Gscriptsize}{\fontsize{14.4}{18}\selectfont}
%\newcommand{\Gfootnotesize}{\fontsize{17.28}{22}\selectfont}
%\newcommand{\Gsmall}{\fontsize{20.74}{25}\selectfont}
%\newcommand{\Gnormalsize}{\fontsize{24.88}{30}\selectfont}
%\newcommand{\Glarge}{\fontsize{29.86}{37}\selectfont}
%\newcommand{\GLarge}{\fontsize{35.83}{45}\selectfont}
%\newcommand{\GLARGE}{\fontsize{43}{54}\selectfont}
%\newcommand{\Ghuge}{\fontsize{51.6}{64}\selectfont}
%\newcommand{\GHuge}{\fontsize{61.92}{77}\selectfont}
%\newcommand{\veryHuge}{\fontsize{74.3}{93}\selectfont}
%\newcommand{\VeryHuge}{\fontsize{89.16}{112}\selectfont}
%\newcommand{\VERYHuge}{\fontsize{107}{134}\selectfont}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 	MACROS DE MISE EN FORME DE TEXTES
%%% 

\newcommand{\souligne}{\underline}
\newcommand{\gras}[1]{\ifmmode\boldsymbol{#1}%
\else\textbf{#1}\fi}




%%% Ce qui suit permet d'obtenir des symboles >= et <= "normaux"
%%% voir réf.1, p 36
\font\msamdix=msam10
\font\msamsept=msam7
\font\msamcinq=msam5
\newfam\famillemsam
\textfont\famillemsam=\msamdix
\scriptfont\famillemsam=\msamsept
\scriptscriptfont\famillemsam=\msamcinq
\def\hexa #1{\ifcase #1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or A\or B\or C\or D\or E\or F\fi}
\mathchardef\le="3\hexa\famillemsam36
\mathchardef\ge="3\hexa\famillemsam3E
%%%

%\providecommand{\dps}{\displaystyle}
\providecommand{\dsp}{\displaystyle}

% Changement de syntaxe : $\cal{C}$ devient \cal C, réf.1 p39
\let\vieuxcal=\cal
\def\cal #1{\ensuremath{{\vieuxcal #1}}}





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 		MACROS POUR LES EXPRESSIONS MATHEMATIQUES
%%%
%%% ENSEMBLES
%%%
%%% Ecrit le nom IR, IR* et IR+ de l'ensemble des réels
%%% Pb : lettres trop grandes en indice (exemple : (u_n)_{n\in\N})

\newcommand{\R}{\mbox{I\hspace{-.15em}R}\xspace}
\newcommand{\Ret}{\mbox{I\hspace{-.15em}R$^*$}\xspace}
\newcommand{\Rplus}{\mbox{I\hspace{-.15em}R$^+$}\xspace}
\newcommand{\Rmoins}{\mbox{I\hspace{-.15em}R$^-$}\xspace}
\newcommand{\Rpluset}{\mbox{I\hspace{-.15em}R$^{+*}$}\xspace}
\newcommand{\Rmoinset}{\mbox{I\hspace{-.15em}R$^{-*}$}\xspace}
%%% Ecrit le nom N, N* de l'ensemble des entiers naturels
\newcommand{\N}{\mbox{I\hspace{-.15em}N}\xspace}
\newcommand{\Net}{\mbox{I\hspace{-.15em}N$^*$}\xspace}
%%% Ecrit le nom D de l'ensemble des décimaux
\newcommand{\D}{\mbox{I\hspace{-.15em}D}\xspace}
%%% Ecrit le nom C, C* de l'ensemble des complexes
\newcommand{\C}{\mbox{\,l\hspace{-.47em}C}\xspace}
\newcommand{\Cet}{\mbox{\,l\hspace{-.47em}C$^*$}\xspace}
%%% Ecrit le nom Z, Z* de l'ensemble des entiers relatifs
\newcommand{\Z}{\mbox{Z\hspace{-.3em}Z}\xspace}
\newcommand{\Zet}{\mbox{Z\hspace{-.3em}Z$^*$}\xspace}
%% Ecrit le nom Q, Q* de l'ensemble des rationnels
\newcommand{\Q}{\mbox{l\hspace{-.47em}Q}\xspace}
\newcommand{\Qet}{\mbox{l\hspace{-.47em}Q$^*$}\xspace}
%%%
%%% Symboles liés aux ensembles
\newcommand{\union}{\ensuremath{\cup}\xspace}
\newcommand{\inter}{\ensuremath{\cap}\xspace}
\newcommand{\dans}{\ensuremath{\in}\xspace}
\newcommand{\inclus}{\ensuremath{\subset}\xspace}
\newcommand{\vide}{\ensuremath{\emptyset}\xspace}
\newcommand{\reunion}[3]{\ensuremath{\dps \overset{#2}{\underset{#1}{\bigcup}}{#3}}}
\newcommand{\intersection}[3]{\ensuremath{\dps \overset{#2}{\underset{#1}{\bigcap}}{#3}}}


%%% INTERVALLES
\newcommand{\intff}[2]{\ensuremath{\left[\, #1\> ;\> #2\, \right]}}
\newcommand{\intoo}[2]{\ensuremath{\ \left]\, #1\> ;\> #2\, \right[\ }}
\newcommand{\intof}[2]{\ensuremath{\ \left]\, #1\> ;\> #2\, \right]}}
\newcommand{\intfo}[2]{\ensuremath{\left[\,#1\>;\>#2\,\right[\ }}
\newcommand{\intffab}{\intff{a}{b}\xspace}
\newcommand{\intooab}{\intoo{a}{b}\xspace}
\newcommand{\intrpl}{\intfo{0}{+\infty}\xspace}
\newcommand{\intrplet}{\intoo{0}{+\infty}\xspace}
\newcommand{\intervalentier}[2]{\ensuremath{\left[\!\left[\> #1\> ;\> #2\> \right]\!\right]}}
\newcommand{\interzn}{\intervalentier{0}{n}\xspace}


%%% FRACTIONS
% Cette macro créée une fraction avec des espaces verticaux augmentés 
% dans un tableau ou dans du texte
\newcommand{\Dfrac}[2]{\dfrac{\strut #1}{\strut #2}}





%%% FONCTIONS
\newcommand{\fonc}[1]{Soit $f$ la fonction définie sur $#1$ par }
\newcommand{\fonction}[5]
{\begin{array}[t]{cccl}#1:&#2&\rightarrow&#3\\&#4&\mapsto&#5\end{array}}
\newcommand{\donne}{\ensuremath{\longmapsto}\xspace}

%%% racine carrée
\newcommand{\racine}[1]{\ensuremath{\sqrt{#1}}}

%%% pour taper \rac 27 au lieu de $\sqrt{27}$. Ne pas oublier l'espace !
\def\rac #1 {\ensuremath{\sqrt{#1}}\xspace}

%%% valeur absolue
\newcommand{\varabs}[1]{\ensuremath{\left|\,{#1}\,\right|}}


%%% INTEGRALES
%\newcommand{\integrale}[4]{\ensuremath{\displaystyle \int_{#1}^{#2}{\!{#3}({#4})\,d{#4}}}}
\newcommand{\integrale}[4]{\ensuremath{\displaystyle \int_{#1}^{#2}{\!{#3}\,\mathrm{d}{#4}}}}
\newcommand{\intabfx}{\integrale{a}{b}{f(x)}{x}\xspace}
\newcommand{\intabx}[1]{\integrer{a}{b}{#1}{x}\xspace}

%%% Sommes
\newcommand{\somme}[4]{\ensuremath{\sum_{#1=#2}^{#3}{#4}}}
\newcommand{\Somme}[4]{\ensuremath{\displaystyle\sum_{#1=#2}^{#3}{#4}}}


 
  
%%% LIMITES
\newcommand{\tendvers}{\ensuremath{\longrightarrow}\xspace}
% limite quand #1 tend vers #2
\newcommand{\li}[2]{\ensuremath{\lim \limits_{#1\rightarrow #2 } }}
% limite quand #1 tend vers #2 à gauche ou à droite (#3 = < ou >)
\newcommand{\limite}[3]{\ensuremath{\lim \limits_{#1\to #2 \atop #1 #3 #2}}\,} 



%%% SUITES
%%% taper \suite un
\newcommand{\suite}[2]{\ensuremath{\bigl(#1_#2\bigr)_{#2\in\N N}}}

%%% déclaration d'une suite arithmétique de premier terme u_0
% Exemple : "Soit \suitar{u}{2}{1,5}."
% donne " Soit (u_n) la suite arithmétique de raison r=2 et de premier terme u_0=1,5."
\newcommand{\suitar}[3]{%
{\ensuremath{(#1_{n})}}{ la suite arithm{\'e}tique de raison }%
{\ensuremath{r = #2}}{ et de premier terme }{\ensuremath{#1_{0}=#3}}}

%%% déclaration d'une suite géométrique de premier terme u_0
\newcommand{\suitgeo}[3]{%
{\ensuremath{(#1_{n})}}{ la suite g{\'e}om{\'e}trique de raison }%
{\ensuremath{q = #2}}{ et de premier terme }{\ensuremath{#1_{0}=#3}}}

%%% déclaration d'une suite arithmétique u_n  de premier terme u_0
\newcommand{\suitaru}[2]{%
{\ensuremath{(u_{n})}}{ la suite arithm{\'e}tique de raison }%
{\ensuremath{r = #1}}{ et de premier terme }{\ensuremath{u_{0}=#2}}}

%%% déclaration de la suite géométrique u_n de premier terme u_0
\newcommand{\suitgeu}[2]{%
{\ensuremath{(u_{n})}}{ la suite g{\'e}om{\'e}trique de raison }%
{\ensuremath{q = #1}}{ et de premier terme }{\ensuremath{u_{0}=#2}}}




%%% TRIGO
\newcommand{\pisur}[1]{\ensuremath{\frac{\pi}{#1}}\xspace}
\newcommand{\Pisur}[1]{\ensuremath{\displaystyle{\frac{\pi}{#1}}}\xspace}




%%% SYMBOLES LOGIQUES
\newcommand{\impl}{\ensuremath{\Rightarrow\,}\xspace}
\newcommand{\pourtt}{\ensuremath{\forall \,}}
\newcommand{\existe}{\ensuremath{\exists \,}}
\newcommand{\ssi}{\ensuremath{\Longleftrightarrow}\xspace}


% Ces trois macros existaient déjà dans babel[french] ! (d'où providecommand) 
\providecommand{\ieme}{\ensuremath{^{\mbox{\scriptsize ème}}}\xspace}  
\providecommand{\ier}{\ensuremath{^{\rm er}}\xspace}
\providecommand{\iere}{\ensuremath{^{\mbox{\scriptsize ère}}}\xspace}





%%% EXPOSANTS ET INDICES
\newcommand{\carre}{\ensuremath{^2}\xspace}
\newcommand{\cube}{\ensuremath{^3}\xspace}
\newcommand{\puiss}[1]{\ensuremath{^{#1}}\xspace}
\newcommand{\dixmoins}[1]{\ensuremath{10^{-#1}}\xspace}





%%% SYSTEMES 

% nombre quelconque d'équations
% Syntaxe :
% \begin{systeme}
% 2x+3y=0
% \\
% x-2y=1
% \end{systeme}

\newenvironment{systeme}{%
\left\lbrace
\begin{array}{l}
}{%
\end{array}
\right.
}


% deux équations (arguments à espace, on évitera...)
\def\syst#1 #2 {\ensuremath{\left\{\begin{array}{l} #1\\ #2
\end{array}\right.}}





%%% QUELQUES SYMBOLES D'USAGE COURANT
\newcommand{\point}{\ensuremath{\bullet}\xspace}
\newcommand{\bs}{\ensuremath{\symbol{'134}}\xspace}% pour le backslash
% définition de °, il suffit ensuite de taper ° dans le texte !
% \catcode`\°=\active\def°{\ensuremath{^{\circ}}}
\newcommand{\env}{\ensuremath{\approx}\xspace}
\newcommand{\fois}{\ensuremath{\times}\xspace}
\newcommand{\minfini}{\ensuremath{-\infty}\xspace}
\newcommand{\pinfini}{\ensuremath{+\infty}\xspace}
\newcommand{\plusinf}{\ensuremath{+\, \infty}\xspace}
\newcommand{\moinsinf}{\ensuremath{-\, \infty}\xspace}



%%% COMPLEXES
\newcommand{\zbar}{\ensuremath{\bar{z}}\xspace}
\newcommand{\conjugue}[1]{\ensuremath{\overline{\ptvi #1}}\xspace}
\newcommand{\module}[1]{\ensuremath{|#1|}\xspace}
\newcommand{\modz}{\ensuremath{|z|}\xspace}
\newcommand{\Imm}{\ensuremath{\Im\mbox{m}}\xspace}
\newcommand{\Ree}{\ensuremath{\Re\mbox{e}}\xspace}
\newcommand{\ei}[1]{\ensuremath{\,\mbox{e}^{i#1}}}
\newcommand{\emi}[1]{\ensuremath{\,\mbox{e}^{-i#1}}}
\newcommand{\eipisur}[1]{\ensuremath{\,\mbox{e}^{i\frac{\pi}{#1}}}}
\newcommand{\emipisur}[1]{\ensuremath{\,\mbox{e}^{-i\frac{\pi}{#1}}}}
\newcommand{\eitheta}{\ensuremath{\,\mbox{e}^{i\theta}}}
\newcommand{\emitheta}{\ensuremath{\,\mbox{e}^{-i\theta}}}
\newcommand{\rhoeitheta}{\ensuremath{\rho\,\mbox{e}^{i\theta}}}
\newcommand{\rhoemitheta}{\ensuremath{\rho\,\mbox{e}^{-i\theta}}}
%\newcommand{\e}{{\rm e}}
\DeclareMathOperator{\e}{e}
\def\expo #1 {\ensuremath{\,\e^{#1}}}
% ne pas oublier l'espace après le paramètre !



%%% CARACTERES GRECS
% \catcode `\§=11
% \let\§a\alpha\let\§A\Alpha
% \let\§b\beta\let\§B\Beta
% \let\§g\gamma\let\§G\Gamma
% \let\§d\delta\let\§D\Delta
% \let\§e\varepsilon
% \let\§z\zeta
% \let\§h\eta
% \let\§t\theta\let\§T\Theta
% \let\§i\iota
% \let\§k\kappa
% \let\§l\lambda\let\§L\Lambda
% \let\§m\mu
% \let\§n\nu
% \let\§x\xi\let\§X\Xi
% \let\§p\pi\let\§P\Pi
% \let\§r\rho
% \let\§s\sigma\let\§S\Sigma
% \let\§f\varphi\let\§F\Phi
% \let\§c\chi
% \let\§q\psi\let\§Q\Psi
% \let\§w\omega\let\§W\Omega
% \catcode `\§=\active
% \def§#1{\ensuremath{\csname \string§#1\endcsname}}





%%% TAILLE DU TEXTE
% Utiliser des accolades pour limiter la portée (par exemple {\taille{20} un test}).
% Le second paramètre est la taille des caractères en points (celle des 
% caractères normaux est définie dans \documentclass[taille]{...}), le 
% premier, optionnel, est l'interlignage en centimètres.
% Dans ce cas, taper \taille[1]{16} pour une taille de 16 points
% et un interlignage de 1 cm.
% L'interlignage ne fonctionne pas dans un groupe {}.
\newcommand{\taille}[2][1]{\fontsize{#2}{#1em}\selectfont}


\newcommand{\Xbar}{\ensuremath{\overline{\rule{0mm}{1.7ex}X}}\xspace}



%%% GRANDEURS GEOMETRIQUES
% longueur (en caractère droit, utile en mode mathématique)
% par exemple, taper \lng AB 
% il semblerait en fait que les noms de points devraient être en italique
% cette macro ne servirait donc à rien 
\newcommand{\lng}[2]{\ensuremath{\text{#1#2}}} 

% angle géométrique, taper par exemple \angle BAC
\renewcommand{\angle}[3]{\ensuremath{\widehat{#1#2#3}}}
%\def\angle#1#2#3{\ensuremath{\widehat{#1#2#3}}}

% mesure algébrique, taper \mesalg AB
\newcommand{\mesalg}[2]{\ensuremath{\overline{#1#2}}}

% arc de cercle, taper par exemple \arc{ACB}
% la commande \arc est déjà définie par, par exemple, (e)epic, d'où le providecommand

\providecommand{\arc}[1]{\ensuremath{\mathord{\mathchoice
{\shortstack[b]{\raisebox{-.6ex}[.4ex][-.2ex]{$\displaystyle\frown$}\\$\displaystyle#1$}}
{\shortstack[b]{\raisebox{-.6ex}[.4ex][-.2ex]{$\frown$}\\$#1$}}
{\shortstack[b]{\raisebox{-.6ex}[.4ex][-.2ex]{$\scriptstyle\frown$}\\$\scriptstyle #1$}}
{\shortstack[b]{\raisebox{-.5ex}[.4ex][-.2ex]{$\scriptscriptstyle\frown$}\\$\scriptscriptstyle #1$}}}}}
% \def\Arc#1{\ensuremath{\mathord{\mathchoice
% {\shortstack[b]{\raisebox{-.6ex}[.4ex][-.2ex]{$\displaystyle\frown$}\\$\displaystyle#1$}}
% {\shortstack[b]{\raisebox{-.6ex}[.4ex][-.2ex]{$\frown$}\\$#1$}}
% {\shortstack[b]{\raisebox{-.6ex}[.4ex][-.2ex]{$\scriptstyle\frown$}\\$\scriptstyle #1$}}
% {\shortstack[b]{\raisebox{-.5ex}[.4ex][-.2ex]{$\scriptscriptstyle\frown$}\\$\scriptscriptstyle #1$}}}}}



%%% VECTEURS ET MATRICES
%%% Vecteur "une lettre", par exemple \vect u   
\newcommand{\vect}[1]{\ensuremath{\vec #1}} 

%%% Vecteurs d'usage courant
\newcommand{\vecti}{\ensuremath{\vec{\imath}}\xspace}
\newcommand{\vectj}{\ensuremath{\vec{\jmath}}\xspace}
\newcommand{\vectk}{\ensuremath{\vec{k}}\xspace}
\newcommand{\vectu}{\ensuremath{\vec{u}}\xspace}
\newcommand{\vectv}{\ensuremath{\vec{v}}\xspace}
\newcommand{\vectw}{\ensuremath{\vec{w}}\xspace}
\newcommand{\vectnul}{\ensuremath{\vec{0}}\xspace}


%%% Vecteur "deux lettres", par exemple \Vect AB
%%% commande récupérée sur internet dans un fichier preambul.tex
\newcommand{\Vect}[2]
{\setbox0\hbox{$#1#2$}\setbox1\copy0\ht1 0.8\ht0%
\setbox2\hbox{\ensuremath{\mathord{\mathop{\smash{#1#2}%
\vphantom{\copy1}\mskip0.8\thinmuskip}%
\limits^{\hbox to\wd0{$\mskip0.8\thinmuskip$\rightarrowfill}}\mskip-0.8\thinmuskip}}}%
\setbox3\copy2\ht3 0.83\ht2\ensuremath{\box3}}

%%% idem mais avec un peu plus d'espace au dessus
\newcommand{\VECT}[2]
{\ensuremath{\mathord{\setbox0\hbox{$#1#2$} \mathop{\smash{#1#2}\setbox1\copy0\ht1 0.8\ht0
\vphantom{\copy1}\mskip0.8\thinmuskip}
\limits^{\hbox to\wd0{$\mskip0.8\thinmuskip$\rightarrowfill}}\mskip-0.8\thinmuskip}}}

%%% norme : taper \norme{\vectu}
\newcommand{\norme}[1]{\ensuremath{\left\|\,{#1}\,\right\|}}
%%% produit scalaire : par exemple, \prosc ABAD 
\newcommand{\prosc}[4]{\ensuremath{\Vect#1#2\,.\,\Vect#3#4}}
%%% produit vectoriel : par exemple, \prov ABAD
\newcommand{\prov}[4]{\ensuremath{\Vect#1#2\,\land\,\Vect#3#4}}


%%% Angles orientés de deux vecteurs : par exemple, \anglo ABAD
\newcommand{\anglo}[4]{\ensuremath{(\Vect#1#2\,,\,\Vect#3#4)}}

%%% Ecrit une matrice deux * deux
\newcommand{\matdd}[4]{\ensuremath{\left(\begin{array}{rr}#1 & #2 \\#3 & #4\end{array}\right)}}





%%% REPERES ET COORDONNÉES
%%% repère orthonormé dans le plan 
\newcommand{\ron}{\ensuremath{% 
\left( O \; ; \, \vecti\; ,\,\vectj\,\right)}\xspace} 
\newcommand{\Ron}{rep\`{e}re orthonormé \ensuremath{% 
\left( O \; ; \, \vecti\; ,\,\vectj\,\right)}\xspace} 

\let\Oij\ron

% axes de coordonnées
\newcommand{\Oi}{\ensuremath{% 
\left( O \; ; \, \vecti \right)}\xspace} 

\newcommand{\Oj}{\ensuremath{% 
\left( O \; ; \, \vectj \right)}\xspace} 

\newcommand{\Ok}{\ensuremath{% 
\left( O \; ; \, \vec{k} \right)}\xspace} 



%%% repère orthonormal dans le plan complexe
\newcommand{\roncom}{\ensuremath{%
\left( O \, ; \vect u \, , \vect v\right)}\xspace}
\newcommand{\Roncom}{rep\`{e}re orthonormal \ensuremath{%
\left( O \,  ; \vect u \,  , \vect v\right)}\xspace}

\let\repcomp\roncom

\let\Ouv\roncom

%%% repère orthogonal dans le plan
\newcommand{\Rog}{rep\`{e}re orthogonal \ensuremath{%
\left( O \  ; \vecti \  , \vectj\right)}\xspace}

%%% repère orthonormal dans le plan défini par O, I, J
\newcommand{\roij}{\ensuremath{%
\left( O \  ; \Vect OI \  , \Vect OJ \right)}\xspace}
\newcommand{\Roij}{rep\`{e}re orthonormé \ensuremath{%
\left( O \  ; \Vect OI \  , \Vect OJ \right)}\xspace}

\let\OIJ\roij

%\newcommand{\ron}{\ensuremath{% 
%\left( {\text O} \; ; \, \vecti\; ;\,\vectj\,\right)}\xspace} 


%%% repère orthonormal dans l'espace
\newcommand{\ronspace}{\ensuremath{%
\left( O \, ; \, \vec{\imath} \; ,\, \vec{\jmath} \; ,\, \smash{\vec{k}}%
\vrule height 10pt depth 0pt width 0pt\right)}\xspace}
\newcommand{\Ronspace}{rep\`{e}re orthonormé \ensuremath{%
\left( O \; ; \, \vec{\imath} \; ,\, \vec{\jmath}\; ,\, \smash{\vec{k}}\right)}\xspace}

\let\Oijk\ronspace

%%% base orthonormée dans le plan
\newcommand{\bon}{\ensuremath{%
\left(\vec{\imath} \; ,\, \vec{\jmath}\right)}\xspace}
\newcommand{\Bon}{base orthonormée \ensuremath{%
\left(\vec{\imath} \; ,\, \vec{\jmath}\right)}\xspace}

%%% base orthonormée dans l'espace
\newcommand{\bonspace}{\ensuremath{%
\left(\vec{\imath} \; ,\, \vec{\jmath}\; ,\, \vec{k}\right)}\xspace}
\newcommand{\Bonspace}{base orthonormée \ensuremath{%
\left(\vec{\imath} \; ;\, \vec{\jmath}\; ,\, \vec{k}\right)}\xspace}


%%% coordonnées d'un vecteur dans le plan
\newcommand{\coord}[2]{\ensuremath{\genfrac{(}{)}{0pt}{1}{#1}{#2}}\xspace}
% \newcommand{\Coord}[2]{\ensuremath{\genfrac{(}{)}{0pt}{1}{#1}{#2}}\xspace}
\newcommand{\Coord}[2]{\ensuremath{\left(\!\!\begin{array}{c}#1\\#2\end{array}\!\!\right)}\xspace}
%%% coordonnées dans le plan écrites en ligne
\newcommand{\coordh}[2]{\ensuremath{\left(#1\,;\,#2\right)}\xspace}

%%% coordonnées d'un vecteur dans l'espace            14-11-2000  : pas top !
\newcommand{\Coordsp}[3]{\ensuremath{\dsp\left(
{\mathop{\vrule height 2ex depth 1ex width 0pt \textstyle #2}_{\textstyle #3}^{\textstyle #1}}\right)}}
%%% coordonnées dans l'espace écrites en ligne
\newcommand{\coordsph}[3]{\ensuremath{\left(#1\,;\,#2\,;\,#3\right)}\xspace}



\newcommand{\couple}[2]{\ensuremath{\left(\,{#1}\, ;\, {#2}\,\right)}}
\newcommand{\triplet}[3]{\ensuremath{\left(\,{#1}\, ;\, {#2}\, ;\, {#3}\,\right)}}


%%% DELIMITEURS
\newcommand{\accolades}[1]{\ensuremath{\left\{ {#1} \right\}}}
\newcommand{\crochets}[1]{\ensuremath{\left[ {#1} \right]}}
\newcommand{\parentheses}[1]{\ensuremath{\left( {#1} \right)}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% RACCOURCIS POUR LES EXPRESSIONS COURANTES

\newcommand{\SSI}{si et seulement si\ }
\newcommand{\trino}{\ensuremath{ax^2+bx+c}\xspace}
\newcommand{\polyn}{\ensuremath{a_nx^n+a_{n-1}x^{n-1}+...+a_2x^2+a_1x+a_0}\xspace}
\newcommand{\triABC}{Soit ABC un triangle.} 
% \newcommand\points[9]{Soient #1 (#2 ; #3), #4 (#5 ; #6) et #7 (#8 ; #9).} 
\newcommand{\cf}{\textit{cf.}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 			SUPPLEMENTS

% Symbole de danger (extrait du TeXbook)
\font\manual=manfnt\newcommand{\danger}{{\manual\char127}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% OBSOLETES
%%%
%%% Pour compatibilité avec mes textes déjà tapés, il faudra les modifier
%%% suivant les nouvelles macros

\newcommand{\interfer}[2]{\ensuremath{\left[\, #1\> ;\> #2\, \right]}}
\newcommand{\interouv}[2]{\ensuremath{\ \left]\, #1\> ;\> #2\, \right[\ }}
\newcommand{\intouvfer}[2]{\ensuremath{\ \left]\, #1\> ;\> #2\, \right]}}
\newcommand{\intferouv}[2]{\ensuremath{\left[\, #1\> ;\> #2\, \right[\ }}
\newcommand{\intferab}{\interfer{a}{b}\xspace}
\newcommand{\intouvab}{\interouv{a}{b}\xspace}


%%% Abréviations pour les packages :
\newcommand{\graph}{\usepackage{graphics}}
\newcommand{\calc}{\usepackage{calc}}
\newcommand{\courbes}{\usepackage{curves}}
\newcommand{\mfgeom}{\usepackage{mfpic}}
\newcommand{\figeps}{\usepackage{graphicx}}
\newcommand{\imageeps}{\includegraphics*}


% Ancienne définition de R, etc.
% fait de trop grandes lettres quand mise en indice
% \newcommand{\R}{\ensuremath{\mbox{I\hspace{-.15em}R}}\xspace}






%\makeatletter
%\renewcommand{\@makefnmark}{\noindent\makebox[1.8em][r]{(\thefootnote)}\,\ }
%\makeatother
%\newcommand{\note}[1]{\,\ensuremath{^{(}\footnote{#1}^{)}}}
%\newcommand{\note}[1]{\,\ensuremath{^{\footnote{~#1}}}}


%% Extrait de mytex.tex

%------ Comme \buildrel, mais en dessous ---
\def\builddown#1\over#2{\mathrel{\mathop{\kern 0pt #1}\limits_{#2}}}

\endinput



%%% obsolète


% arc AB : taper \arccercle AB			10-10-2001
\newlength{\@longarc}
\newcommand{\arccercle}[2]{\settowidth{\@longarc}{$#1#2$}%
\addtolength{\@longarc}{-0.5em}%
\unitlength \@longarc%
\ensuremath{%
\stackrel{\begin{picture}(1,0)
\qbezier(0,0)(0.5,0.3)(1,0)
\end{picture}}
{#1#2}
}}


% les suivantes utilisent des arguments à espace
% \fract 2x+1 x-2 au lieu de $\dfrac{2x+1}{x-2}$
% A éviter ...
\def\fract #1 #2 {\ensuremath{\displaystyle{\frac{#1}{#2}}}\xspace}
\def\inv #1 {\ensuremath{\displaystyle{\frac{1}{#1}}}\xspace}
% Idem avec plus d'espace verticaux
\def\tabfract#1 #2 {\ensuremath{\displaystyle{\frac{\strut #1}{\strut #2}}}\xspace}
\def\tabinv #1 {\ensuremath{\displaystyle{\frac{1\strut}{#1\strut}}}\xspace}

