% Package `mafr' (mathématiques françaises).
% Adaptation aux règles de typographie mathématique française.
% Copyright (c) Christian Obrecht 2005.

\ProvidesPackage{mafr}[2005/10/31 v1.0 Mathématiques françaises]

% Format élargi, fontes accentuées et module `babel'.

\RequirePackage{a4wide}
\RequirePackage[T1]{fontenc}
\RequirePackage[francais]{babel}

% Les majuscules en romain droit.

\DeclareSymbolFont{Roman}{U}{cmr}{m}{n}
\SetSymbolFont{Roman}{bold}{U}{cmr}{b}{n}
\DeclareMathSymbol{A}\mathalpha{Roman}{`A}
\DeclareMathSymbol{B}\mathalpha{Roman}{`B}
\DeclareMathSymbol{C}\mathalpha{Roman}{`C}
\DeclareMathSymbol{D}\mathalpha{Roman}{`D}
\DeclareMathSymbol{E}\mathalpha{Roman}{`E}
\DeclareMathSymbol{F}\mathalpha{Roman}{`F}
\DeclareMathSymbol{G}\mathalpha{Roman}{`G}
\DeclareMathSymbol{H}\mathalpha{Roman}{`H}
\DeclareMathSymbol{I}\mathalpha{Roman}{`I}
\DeclareMathSymbol{J}\mathalpha{Roman}{`J}
\DeclareMathSymbol{K}\mathalpha{Roman}{`K}
\DeclareMathSymbol{L}\mathalpha{Roman}{`L}
\DeclareMathSymbol{M}\mathalpha{Roman}{`M}
\DeclareMathSymbol{N}\mathalpha{Roman}{`N}
\DeclareMathSymbol{O}\mathalpha{Roman}{`O}
\DeclareMathSymbol{P}\mathalpha{Roman}{`P}
\DeclareMathSymbol{Q}\mathalpha{Roman}{`Q}
\DeclareMathSymbol{R}\mathalpha{Roman}{`R}
\DeclareMathSymbol{S}\mathalpha{Roman}{`S}
\DeclareMathSymbol{T}\mathalpha{Roman}{`T}
\DeclareMathSymbol{U}\mathalpha{Roman}{`U}
\DeclareMathSymbol{V}\mathalpha{Roman}{`V}
\DeclareMathSymbol{W}\mathalpha{Roman}{`W}
\DeclareMathSymbol{X}\mathalpha{Roman}{`X}
\DeclareMathSymbol{Y}\mathalpha{Roman}{`Y}
\DeclareMathSymbol{Z}\mathalpha{Roman}{`Z}

% Majuscules d'anglaise.

\DeclareSymbolFont{rsfscript}{U}{rsfs}{m}{n}
\DeclareSymbolFontAlphabet{\mathrsfs}{rsfscript}
\newcommand\scr{\mathrsfs}

% Pour des symboles « inférieur ou égal », « supérieur ou égal », « ensemble
% vide » et « parallèles » conformes aux usages français.

\DeclareSymbolFont{AmsA}{U}{msa}{m}{n}
\SetSymbolFont{AmsA}{bold}{U}{msa}{b}{n}
\DeclareMathSymbol\leq\mathrel{AmsA}{"36}
\DeclareMathSymbol\geq\mathrel{AmsA}{"3E}
\DeclareSymbolFont{AmsB}{U}{msb}{m}{n}
\SetSymbolFont{AmsB}{bold}{U}{msb}{b}{n}
\DeclareMathSymbol\emptyset\mathord{AmsB}{"3F}
\def\parallel{\mathrel{/\!/}}

% Une macro pour les vecteurs qui donne de meilleurs résultats que
% \overrightarrow.

\def\vect#1{%
\vbox{\lineskip=-.04em\baselineskip=0pt
\halign{##\cr
\leaders\hbox{$\scriptstyle{-}$\kern-.4em}\hfil$\scriptstyle{\rightarrow}$\cr
$#1$\cr}}}

% Même chose pour les angles et \widehat.

\def\angl#1{%
\setbox100\hbox{$#1$}
\ifdim\wd100>1.8em\mathaccent"075B{#1}\else\mathaccent"0362{#1}\fi}

% Une macro pour obtenir de grandes fractions dans les formules en ligne.

\def\frc#1#2{\displaystyle{#1\over#2}}

% Des macros pour les notations usuelles.

\def\M@#1{\ifmmode #1\else $#1$\fi}

\def\A{\M@{\cal A}}
\def\B{\M@{\scr B}}
\def\C{\M@{\scr C}}
\def\D{\M@{\scr D}}
\def\E{\M@{\scr E}}
\def\F{\M@{\scr F}}
\def\I{\M@{\cal I}}
\def\J{\M@{\cal J}}
\def\K{\M@{\bf C}}
\def\N{\M@{\bf N}}
\def\P{\M@{\scr P}}
\def\Q{\M@{\bf Q}}
\def\R{\M@{\bf R}}
\def\S{\M@{\cal S}}
\def\Z{\M@{\bf Z}}

% Caractère € (Euro) et guillemets français.

\font\teneuro=feymr10
\catcode`\€=\active \def €{{\teneuro {\char "65}}}

\catcode`\«=\active \def «{<<\,}
\catcode`\»=\active \def »{\,>>}

\endinput
