%% Profmath.cls 
%%%%%%%%%%%%% 
% Classe de documents pour fiches d'exercices, de cours...
% D'après FICHE.CLS de D. Flipo  (Daniel.Flipo@univ-lille1.fr) 
% Profmath
% A faire : \qst[2] au lieu de \numqst 2 \qst 

%
% Ajouts et modifications (par rapport \`a la classe article.cls : 
% -- taille de page A4, texte : largeur 160mm, hauteur 247mm (4 marges de 25mm) 
% 
%
% Options possibles : 
% -- toutes celles d'article : 12pt, 11pt, a4paper, leqno, ... 
% -- seconly, (ou noitem),  pour ne r\'eduire que les tailles des fontes 
%    utilis\'ees dans les titres ; 
% -- itemonly, (ou nosec) pour ne r\'eduire que les 
%    espaces verticaux dans les listes.
% -- sansdemo : pour ne pas afficher les démonstrations des théorèmes, etc.
% -- aerer : pour avoir des espaces standard entre les parties, les théoèmes, etc. (sans cette option, on obtient un document très "serré")
% -- standard : pour une mise en page type article.cls (grosses marges, aération)
% -- ttwp : pour une mise en page adaptée à une publication sur Internet via ttwp.
% -- 2col : pour une mise en page au format paysage et deux colonnes
%
%
% Exemple : (l'ordre des options est sans importance) 
% \documentclass[12pt,sansdemo,aerer,2col]{profmath} 
% 
% Nom des exercices param\'etrable : 
% par exemple, \renewcommand{\NomExo}{\it Exercice} 
% 
% Fournit les macros suivantes :
% exo, exer{}, exer{}, qst, ssq, sssq, qstssq, partie, part,
% titre{}, rem, ex
% ds{}, dm{}, Titre{}{}{}, marges{}{}{}{}

\NeedsTeXFormat{LaTeX2e} 
%%% Identification 
\def\fileversion{v0} 
\def\filedate{9/1/2007} 
\ProvidesClass{profmath}[\filedate\space\fileversion\space 
                         Local document class (DF)] 
 

%%% Chargement des packages souvent utilisés
\RequirePackage{amsmath}
\RequirePackage{theorem}
% Gestion des espaces à l'intérieur des tableaux, trouvable ici : http://www.ctan.org/tex-archive/help/Catalogue/entries/cellspace.html
\RequirePackage{cellspace}


%% la suite ne marche plus sur mon implémentation de latex : latex lance pdfelatex !
%\ifx\pdfoutput\undefined
% compilation avec latex
%\RequirePackage[T1]{fontenc}
%\else
% compilation avec pdflatex
%\RequirePackage{aeguill}
%\fi

\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\RequirePackage[french]{babel}
\RequirePackage{fancybox} % pour le cadre entourant le titre (ombré)
\RequirePackage{calrsfs} % pour les lettres calligraphiées
\RequirePackage{fancyhdr}
%\RequirePackage{color} % pour ... les couleurs
 
%%% Dï¿½laration des options 
\DeclareOption{a5paper}{\PassOptionsToClass{a5paper}{article}} 
\DeclareOption{b5paper}{\PassOptionsToClass{b5paper}{article}} 
\DeclareOption{letterpaper}{\PassOptionsToClass{letterpaper}{article}} 
\DeclareOption{legalpaper}{\PassOptionsToClass{legalpaper}{article}} 
\DeclareOption{executivepaper}{\PassOptionsToClass{executivepaper}{article}} 
\DeclareOption{landscape}{\PassOptionsToClass{landscape}{article}} 
\DeclareOption{oneside}{\PassOptionsToClass{oneside}{article}} 
\DeclareOption{twoside}{\PassOptionsToClass{twoside}{article}} 
\DeclareOption{draft}{\PassOptionsToClass{draft}{article}} 
\DeclareOption{final}{\PassOptionsToClass{final}{article}} 
\DeclareOption{titlepage}{\PassOptionsToClass{titlepage}{article}} 
\DeclareOption{notitlepage}{\PassOptionsToClass{notitlepage}{article}} 
\DeclareOption{onecolumn}{\PassOptionsToClass{onecolumn}{article}} 
\DeclareOption{twocolumn}{\PassOptionsToClass{twocolumn}{article}} 
\DeclareOption{leqno}{\PassOptionsToClass{leqno}{article}} 
\DeclareOption{fleqn}{\PassOptionsToClass{fleqn}{article}} 
\DeclareOption{openbib}{\PassOptionsToClass{openbib}{article}} 
\DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}} 
\DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}} 
\DeclareOption{12pt}{\PassOptionsToClass{12pt}{article}} 
\DeclareOption{leqno}{\PassOptionsToClass{leqno}{article}} 
\DeclareOption{fleqn}{\PassOptionsToClass{fleqn}{article}} 
% 
\DeclareOption{nosec}{\NoSectrue} 
\DeclareOption{noitem}{\NoItemtrue} 
\DeclareOption{seconly}{\NoItemfalse} 
\DeclareOption{itemonly}{\NoSecfalse} 

\DeclareOption{sansdemo}{\newcommand{\sansdemo}{\null}}


%%% Option de mise en page
%%% Par défaut (sans option) : mise en page "compacte" : petites marges et petits espacements entre les parties

%%% Mise en page pour la publication sur Internet (avec ttwp)
\DeclareOption{ttwp}{\providecommand{\@ttwp}{\null}\providecommand{\@espstd}{\null}\newcommand{\titre}[1]{}}

%%% Mise en page avec des espacements standards entre les parties
\DeclareOption{aerer}{\providecommand{\@espstd}{\null}}

%%% Mise en page type article.cls
\DeclareOption{standard}{\providecommand{\@mrgstd}{\null}\providecommand{\@espstd}{\null}\providecommand{\@ind}{\null}}

%%% Mise en page sur deux colonnes, au format paysage avec ligne de séparation
%%% Commande \sautdecolonne, \begin{dupl} et \end{dupl}
\DeclareOption{2col}{\newcommand{\@deuxcol}{\null}}

%%% Mise en page spécifique aux annales
\DeclareOption{annales}{\newcommand{\@annales}{\null}\providecommand{\@espstd}{\null}}

%%% Ex\'ecution des options 
\ProcessOptions 

%%% Chargement de la classe standard 'article' suivant l'option de mise en page choisie
\ifx\@deuxcol\undefined
%%%%%%%%%%%%%%%%
% Mise en page "de base", format portrait et une colonne
%%%%%%%%%%%%%%%%
\LoadClass[a4paper,oneside,final,french]{article}
%
%%% des macros pour les profs...
\RequirePackage{profmath}
%
% Déclaration de la commande \Titre qui demande le nom de la classe puis
% le nom du texte, par exemple "Devoir 1" ou "Devoir surveillé 1" et enfin 
% "à rendre le + date " ou "date"   
\newcommand{\Titre}[3]{% 
{\Large \begin{center} {\textbf Math{\'e}matiques} \end{center}}% 
{\Large \makebox[5cm][l]{#1} \hfill \textsc{#2} \hfill \makebox[5cm][r]{#3}}\\[0pt]% 
\hrule \bigskip } 
%
\else
%%%%%%%%%%%%%%%%
% Mise en page sur deux colonnes, au format paysage avec ligne de séparation
%%%%%%%%%%%%%%%%
% \RequirePackage{moreverb}% pour l'environnement dupl
\LoadClass[a4paper,twocolumn,landscape,oneside,final,french]{article}
% Séparation entre les colonnes. 
\columnsep 15mm\columnseprule 0.5mm
%
\let\sautdecolonne\newpage
%
%%% des macros pour les profs...
\RequirePackage{profmath}
%
% Redéclaration de la commande \Titre qui demande le nom de la classe puis
% le nom du texte, par exemple "\ds{1}" ou "Devoir surveillï¿½1" et enfin 
% "à rendre le + date " ou "date"
\newcommand{\Titre}[3]{%
{\Large \begin{center} {\textbf Math{\'e}matiques} \end{center}}%
\par\vskip -5mm
{\Large \centerline{\textsc{#2}}}%
\par\vskip 1mm\textsc{#1} \hfill \textsc{#3}\bigskip%
\hrule \bigskip }
% ici étaient les commandes relatives à dupl
\fi% deux colonnes



%%%%%%%%% MISE EN PAGE %%%%%%%%%%%%%%%%%%%%


% Environnement dupl
\RequirePackage{moreverb}

\newcounter{numpropri}\newcounter{numthm}
\newcounter{numpart}\newcounter{numspart}\newcounter{numsspart}\newcounter{numssspart}\newcounter{numpartie}
\newcounter{numexo}\newcounter{numqst}\newcounter{numssq}\newcounter{numsssq}
%

% duplique le contenu en plaçant un saut de page entre les deux
\newenvironment*{dupl}
{%
\setcounter{numpropri}{\theprop}%
\setcounter{numthm}{\thethm}%
\setcounter{numpart}{\value{part}}%
%\setcounter{numpartie}{\value{NumeroPartie}}%
\setcounter{numspart}{\value{section}}%
\setcounter{numsspart}{\value{subsection}}%
\setcounter{numssspart}{\value{subsubsection}}%
\setcounter{numexo}{\theNumeroExercice}%
\setcounter{numqst}{\theNumeroQuestion}%
\setcounter{numssq}{\theNumeroSousQuest}%
\setcounter{numsssq}{\theNumeroSSQuest}
\begingroup%
\verbatimwrite{tmp}%
}{%
\endverbatimwrite
\endgroup
\input{tmp}%
\setcounter{prop}{\thenumpropri}%
\setcounter{thm}{\thenumthm}%
\setcounter{part}{\thenumpart}% reinitialise le numï¿½o de partie...
%\setcounter{NumeroPartie}{\thenumpartie}% reinitialise le numï¿½o de partie...
\setcounter{section}{\thenumspart}%
\setcounter{subsection}{\thenumsspart}%
\setcounter{subsubsection}{\thenumssspart}%
\setcounter{NumeroExercice}{\thenumexo}%
\setcounter{NumeroQuestion}{\thenumqst}
\setcounter{NumeroSousQuest}{\thenumssq}
\setcounter{NumeroSSQuest}{\thenumsssq}
%\parindent 0cm
\newpage
\input{tmp}%
}








\RequirePackage{geometry}

% Macro "de confort" pour régler les marges :
% Taper, par exemple, \marges{1.3cm}{13mm}{1.5cm}{1.5cm} pour 
% régler les marges gauche, droite, haute et basse
\newcommand{\marges}[4]{%
\geometry{verbose,tmargin=#3,lmargin=#1,rmargin=#2,bmargin=#4,headheight=1mm}}

\ifx\@mrgstd\undefined
\setlength{\oddsidemargin}{-0.5cm}
\setlength{\evensidemargin}{-0.5cm}
\setlength{\marginparwidth}{0cm}
\setlength{\marginparsep}{0cm}
\setlength{\headsep}{0.5cm}
\setlength{\parskip}{0pt}
\geometry{verbose,tmargin=1cm,lmargin=1.1cm,rmargin=1.1cm,headheight=1mm}
\fi

\ifx\@annales\undefined
\else
%\geometry{verbose,tmargin=1.5cm,lmargin=1.5cm,rmargin=1.5cm,headheight=1mm}
\textwidth 17cm
\oddsidemargin 0cm
\evensidemargin 0cm
%\topmargin -1cm
\renewcommand{\baselinestretch}{1.3}
\everymath{\displaystyle}
% \catcode`\=\active\def{\ensuremath{^{\circ}}}
\fi


%%% Mise en page pour la publication sur Internet (avec ttwp)

\ifx\@ttwp\undefined
\newcommand{\ttwpnouvellepage}{}
\relax
\else
\edef\ttwpnouvellepage{\newpage}
\let\oldnewpage\newpage
\let\newpage\relax
\AtEndDocument{\let\newpage\oldnewpage}
\renewcommand{\marges}[4]{\relax}
\geometry{verbose,tmargin=9cm,lmargin=1cm,rmargin=1cm,bmargin=9cm}
\fi

\newcommand{\sautdepage}{\newpage}


%%% Indentation
\ifx\@ind\undefined
\setlength{\parindent}{0cm}
\fi

% gestion des pieds de pages
\pagestyle{fancy}
\cfoot{}
\renewcommand{\headrulewidth}{0pt}


\newcommand{\interligne}[1]{\baselineskip #1}

% espacement minimal entre le contenu d'un tableau et les lignes de celui-ci. Utilise le package cellspace. Mettre un S avant le type de colonne (exemple \begin{tabular}{Sl}).
\setlength{\cellspacetoplimit}{1mm}
\setlength{\cellspacebottomlimit}{1mm}


% affichage d'extraits de cours dans une fiche d'exercices
\newenvironment{extraitdecours}{%
\definecolor{shadecolor}{gray}{0.7}%
\begin{shaded}%
\medskip%
}{\end{shaded}}









%%%%%%%% FIN DE LA MISE EN PAGE %%%%%%%%

\newcommand{\NomExo}[1][\bf Exercice]{#1}


%%% abréviations courantes
\ifx\undefined\titre
\newcommand{\titre}[1]{%
\setcounter{NumeroExercice}{0}%
{\par\noindent\sc\large\centering
\shadowbox{\textbf{#1}}\par}\vskip -1mm
\setcounter{part}{0}
\setcounter{section}{0}
\gdef\letitre{#1}}
\fi


% usage : \pieddepage tout seul reprend le titre défini par la macro \titre
% \pieddepage[Terminale S -- \letitre] pour personnaliser (la macro \letitre est définie par la macro \titre)
\newcommand{\pieddepage}[1][\letitre]{%
\rfoot{\textit{#1}}}

% la suivante équivaut à \pieddepage[]
\newcommand{\pasdepieddepage}{\rfoot{}}



\newcommand{\rem}{\par\underline{Remarque :} }
\newcommand{\rems}{\par\underline{Remarques :} }
\newcommand{\Rem}{\par\smallskip\underline{Remarque :} } 
\newcommand{\Rems}{\par\smallskip\underline{Remarques :} } 
\newcommand{\REM}{\par\medskip\underline{Remarque :} } 
\newcommand{\REMS}{\par\medskip\underline{Remarques :} } 
%
\newcommand{\ex}{\par\underline{Exemple :} } 
\newcommand{\exs}{\par\underline{Exemples :} } 
\newcommand{\Ex}{\par\smallskip\underline{Exemple :} } 
\newcommand{\Exs}{\par\smallskip\underline{Exemples :} } 
\newcommand{\EX}{\par\medskip\underline{Exemple :} } 
\newcommand{\EXS}{\par\medskip\underline{Exemples :} } 





% insère un crochet à gauche de l'exemple.
% \newenvironment{expl}{\par\smallskip\newbox\@zebox\setbox\@zebox=\hbox\bgroup\(\vcenter\bgroup
% {\sc Exemple :}}
% {\egroup\)\egroup%
% \newbox\@labox\setbox\@labox=\hbox{\(\left[{\vrule height \ht\@zebox depth \dp\@zebox width 0mm}\right.\)}%
% \wd\@labox=0mm\hskip -0.8em\box\@labox\hskip 0.8em\box\@zebox}

% nouvelle version, plus puissante
% http://www.lesia.obspm.fr/~fhenry/CoursLatex/courslatex.php
% \newenvironment{expl}{\begin{leftbar}}{\end{leftbar}}

\newenvironment{expl}{%
\def\FrameCommand{{\definecolor{pfm}{rgb}{0.84,0.93,0.89}\color{pfm}\vrule width 2pt} \hspace{3pt}}%
\fram@d{\advance\hsize-\width}{\sc Exemple :}}%
{\endfram@d}

% le suivant aurait du devenir inutile mais on ne peut pas utiliser la leftbar et la shaded lors d'un saut de page !
% \newenvironment{suiteexpl}{\par\smallskip\newbox\@zebox\setbox\@zebox=\hbox\bgroup\(\vcenter\bgroup
% }
% {\egroup\)\egroup%
% \newbox\@labox\setbox\@labox=\hbox{\(\left[{\vrule height \ht\@zebox depth \dp\@zebox width 0mm}\right.\)}%
% \wd\@labox=0mm\hskip -0.8em\box\@labox\hskip 0.8em\box\@zebox}

\newenvironment{suiteexpl}{%
\def\FrameCommand{{\definecolor{pfm}{rgb}{0.84,0.93,0.89}\color{pfm}\vrule width 2pt} \hspace{3pt}}%
\fram@d{\advance\hsize-\width}}%
{\endfram@d}




\newenvironment{Expl}{\par\medskip\begin{expl}}
{\end{expl}}

\newenvironment{EXPL}{\par\bigskip\begin{expl}}
{\end{expl}}


% \newenvironment{expls}{\par\smallskip\newbox\@zebox\setbox\@zebox=\hbox\bgroup\(\vcenter\bgroup
% {\sc Exemples :}}
% {\egroup\)\egroup%
% \newbox\@labox\setbox\@labox=\hbox{\(\left[{\vrule height \ht\@zebox depth \dp\@zebox width 0mm}\right.\)}%
% \wd\@labox=0mm\hskip -0.8em\box\@labox\hskip 0.8em\box\@zebox}


\newenvironment{expls}{%
% \par
\def\FrameCommand{{\definecolor{pfm}{rgb}{0.84,0.93,0.89}\color{pfm}\vrule width 2pt} \hspace{3pt}}%
\fram@d{\advance\hsize-\width}{\sc Exemples :}}%
{\endfram@d}



\newenvironment{Expls}{\par\medskip\begin{expls}}
{\end{expls}}

\newenvironment{EXPLS}{\par\bigskip\begin{expls}}
{\end{expls}}



% trois options du package theorem
\theoremstyle{break}

\ifx\@espstd\undefined
\theorempreskipamount 0.3em
\theorempostskipamount 0.3em
\else\relax\fi

\newtheorem{thm}{Théorème}
\newtheorem{theoreme}{Théorème}
\newtheorem{lemme}{Lemme}[thm]
\newtheorem{corol}{Corollaire}[thm]
\newtheorem{prop}{Propriété}
\newtheorem{props}[prop]{Propriétés}

\newenvironment{propri}{\smallskip\textbf{Propriété}\par\textit\bgroup\ignorespaces}{\egroup}
\newenvironment{propris}{\smallskip\textbf{Propriétés}\par\textit\bgroup\ignorespaces}{\egroup}



\newcommand{\defi}{\par {\bf Définition}\par}
\newcommand{\Defi}{\par\smallskip {\bf Définition}\par}
\newcommand{\DEFI}{\par\medskip {\bf Définition}\par}
\newcommand{\defis}{\par {\bf Définitions}\par}
\newcommand{\Defis}{\par\smallskip {\bf Définitions}\par}
\newcommand{\dem}{\par\smallskip {\bf Démonstration}\par}
\newcommand{\findem}{\hfill CQFD\par}


% sans doute améliorable ...

\newcommand{\debavale}{\newbox\@zebox\setbox\@zebox=\vbox\bgroup}
\newcommand{\finavale}{\egroup}


\newenvironment{demo}{\ifx\sansdemo\undefined\par\smallskip \textbf{Démonstration :}\par%
\bgroup\taille{11}\else\debavale\fi}
{\ifx\sansdemo\undefined\egroup\hfill $\diamondsuit$\par\else\finavale\fi}

\newenvironment{demolemme}{\ifx\sansdemo\undefined\par\smallskip \textbf{Preuve du lemme :}\par%
\bgroup\taille{11}\else\debavale\fi}
{\ifx\sansdemo\undefined\egroup\hfill $\diamond$\par\else\finavale\fi}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Code spécifique à un document de type devoir 

\newcommand{\ds}[1]{Devoir surveillé n°#1}
\newcommand{\dm}[1]{Devoir maison n°#1}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Code spécifique à un cours

%% Les macros suivantes redéfinissant les styles de \section, etc. sont adaptés de celles provennant du site http://zoonek.free.fr/LaTeX/





% \section

\renewcommand\thesection{\@Roman\c@section}
\def\section{\@ifstar\unnumberedsection\numberedsection}
\def\numberedsection{\@ifnextchar[%]
  \numberedsectionwithtwoarguments\numberedsectionwithoneargument}
\def\unnumberedsection{\@ifnextchar[%]
  \unnumberedsectionwithtwoarguments\unnumberedsectionwithoneargument}
\def\numberedsectionwithoneargument#1{\numberedsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsectionwithoneargument#1{\unnumberedsectionwithtwoarguments[#1]{#1}}
\def\numberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \ifx\@espstd\undefined\vskip 3ex \@plus 0.7ex \@minus .1ex\goodbreak\else\vskip 3.5ex \@plus 1ex \@minus .2ex\goodbreak\fi
  \refstepcounter{section}%
  \begingroup
      \noindent
      \leavevmode\Large\bfseries
      \thesection.\,#2\par%\nobreak
  \endgroup
%   \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -2.3ex \@plus-.2ex\nobreak\fi
\noindent\nobreak\vskip -2.3ex \@plus-.2ex\nobreak
  \addcontentsline{toc}{section}{\protect\numberline{\thesection.} #1}%
  }
\def\unnumberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
%   \ifx\@espstd\undefined\bigskip\else\vskip 3.5ex \@plus 1ex \@minus .2ex\goodbreak\fi
\ifx\@espstd\undefined\vskip 3ex \@plus 0.7ex \@minus .1ex\goodbreak\else\vskip 3.5ex \@plus 1ex \@minus .2ex\goodbreak\fi
  \begingroup
      \noindent
      \leavevmode\Large\bfseries
      #2\par\nobreak
  \endgroup
%   \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -2.3ex \@plus-.2ex\nobreak\fi
\noindent\nobreak\vskip -2.3ex \@plus-.2ex\nobreak
  \addcontentsline{toc}{section}{#1}%
  }


\newcommand{\numpartie}[1]%
{\setcounter{section}{#1}
\addtocounter{section}{-1}}

\let\numeropartie\numpartie

% \subsection

\renewcommand\thesubsection{\@arabic\c@subsection)}

\def\subsection{\@ifstar\unnumberedsubsection\numberedsubsection}
\def\numberedsubsection{\@ifnextchar[%]
  \numberedsubsectionwithtwoarguments\numberedsubsectionwithoneargument}
\def\unnumberedsubsection{\@ifnextchar[%]
  \unnumberedsubsectionwithtwoarguments\unnumberedsubsectionwithoneargument}
\def\numberedsubsectionwithoneargument#1{\numberedsubsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsubsectionwithoneargument#1{\unnumberedsubsectionwithtwoarguments[#1]{#1}}
\def\numberedsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
%   \ifx\@espstd\undefined\medskip\else\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
\ifx\@espstd\undefined%
\ifnum\value{subsection}=0\relax% pour éviter un espace entre section et subsection
\else\vskip 2.25ex\@plus 0.7ex \@minus .1ex\goodbreak%
\fi%
\else%
\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak%
\fi
  \refstepcounter{subsection}%
  \begingroup
      \noindent
      \leavevmode\large\bfseries
      \thesubsection\ 
      #2\par
  \endgroup
  \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -1.5ex \@plus-.2ex\fi
  \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection} #1}%
  }
\def\unnumberedsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
\ifx\@espstd\undefined%
\ifnum\value{subsection}=0\relax% pour éviter un espace entre section et subsection
\else\vskip 2.25ex\@plus 0.7ex \@minus .1ex\goodbreak%
\fi%
\else%
\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak%
\fi
%   \ifx\@espstd\undefined\medskip\else\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
  \begingroup
      \noindent
      \leavevmode\large\bfseries
      #2\par
  \endgroup
  \ifx\standard\undefined\relax\else\noindent\nobreak\vskip -1.5ex \@plus-.2ex\fi
  \addcontentsline{toc}{subsection}{#1}%
  }


\newcommand{\numspartie}[1]%
{\setcounter{subsection}{#1}
\addtocounter{subsection}{-1}}

\let\numerospartie\numspartie


% \subsubsection

\renewcommand\thesubsubsection{\@alph\c@subsubsection)}

\def\subsubsection{\@ifstar\unnumberedsubsubsection\numberedsubsubsection}
\def\numberedsubsubsection{\@ifnextchar[%]
  \numberedsubsubsectionwithtwoarguments\numberedsubsubsectionwithoneargument}
\def\unnumberedsubsubsection{\@ifnextchar[%]
  \unnumberedsubsubsectionwithtwoarguments\unnumberedsubsubsectionwithoneargument}
\def\numberedsubsubsectionwithoneargument#1{\numberedsubsubsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsubsubsectionwithoneargument#1{\unnumberedsubsubsectionwithtwoarguments[#1]{#1}}
\def\numberedsubsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
\ifx\@espstd\undefined\vskip 1ex\@plus 0.5ex \@minus .1ex\goodbreak\else\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
%   \ifx\@espstd\undefined\smallskip\else\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
  \refstepcounter{subsubsection}%
  \begingroup
      \noindent
      \leavevmode\normalfont\bfseries
      \thesubsubsection\ 
      #2\par
  \endgroup
%   \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -1.5ex \@plus-.2ex\fi
\noindent\nobreak\vskip -1.5ex \@plus-.2ex
  \addcontentsline{toc}{subsubsection}{\protect\numberline{\thesubsubsection}#1}%
  }
\def\unnumberedsubsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
\ifx\@espstd\undefined\vskip 1ex\@plus 0.5ex \@minus .1ex\goodbreak\else\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
%   \ifx\@espstd\undefined\smallskip\else\vskip 3.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
  \begingroup
      \noindent
      \leavevmode\normalfont\bfseries
      #2\par
  \endgroup
%   \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -1.5ex \@plus-.2ex\fi
\noindent\nobreak\vskip -1.5ex \@plus-.2ex
  \addcontentsline{toc}{subsubsection}{#1}%
  }

\newcommand{\numsspartie}[1]%
{\setcounter{subsubsection}{#1}
\addtocounter{subsubsection}{-1}}

\let\numerosspartie\numsspartie


%%% déclaration de la commande \ssspartie (numérotées i), ii), ...) 
\newcounter{subsubsubsection}[subsubsection]
\@addtoreset{subsubsubsection}{section} 

\renewcommand\thesubsubsubsection{\@roman\c@subsubsubsection)}

\def\subsubsubsection{\@ifstar\unnumberedsubsubsubsection\numberedsubsubsubsection}
\def\numberedsubsubsubsection{\@ifnextchar[%]
  \numberedsubsubsubsectionwithtwoarguments\numberedsubsubsubsectionwithoneargument}
\def\unnumberedsubsubsubsection{\@ifnextchar[%]
  \unnumberedsubsubsubsectionwithtwoarguments\unnumberedsubsubsubsectionwithoneargument}
\def\numberedsubsubsubsectionwithoneargument#1{\numberedsubsubsubsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsubsubsubsectionwithoneargument#1{\unnumberedsubsubsubsectionwithtwoarguments[#1]{#1}}
\def\numberedsubsubsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
\ifx\@espstd\undefined\vskip 1ex\@plus 0.5ex \@minus .1ex\goodbreak\else\vskip 2.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
%   \ifx\@espstd\undefined\smallskip\else\vskip 2.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
  \refstepcounter{subsubsubsection}%
  \begingroup
      \noindent
      \leavevmode\normalfont\bfseries
      \thesubsubsubsection\ 
      #2\par
  \endgroup
%   \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -1.5ex \@plus-.2ex\fi
\noindent\nobreak\vskip -1.5ex \@plus-.2ex
  \addcontentsline{toc}{subsubsubsection}{\protect\numberline{\thesubsubsubsection}#1}%
  }
\def\unnumberedsubsubsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
\ifx\@espstd\undefined\vskip 1ex\@plus 0.5ex \@minus .1ex\goodbreak\else\vskip 2.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
%   \ifx\@espstd\undefined\smallskip\else\vskip 2.25ex\@plus 1ex \@minus .2ex\goodbreak\fi
  \begingroup
      \noindent
      \leavevmode\normalfont\bfseries
      #2\par
  \endgroup
%   \ifx\@espstd\undefined\relax\else\noindent\nobreak\vskip -1.5ex \@plus-.2ex\fi
\noindent\nobreak\vskip -1.5ex \@plus-.2ex
  \addcontentsline{toc}{subsubsubsection}{#1}%
  }



%\newcommand{\ssspartie}[1]% 
%{% 
%\par 
%\refstepcounter{subsubsubsection}%
%\setlength{\parindent}{0cm} 
%\par% 
%\smallskip 
%\textbf{\roman{subsubsubsection}) #1} \par%
%\addcontentsline{toc}{subsubsubsection}{%
%\alph{subsubsubsection}) #1}
%}


%%% déclaration de la commande \partie  (I - , II - , ...)
%%% utilisation : taper \partie{Titre...}. Numérotation automatique.
\newcommand{\partie}{\ttwpnouvellepage\section}

%%% déclaration de la commande \spartie (sous-partie : 1), 2), etc...)
\newcommand{\spartie}{\ifnum\value{subsection}>0\ttwpnouvellepage\fi\subsection}

%%% déclaration de la commande \sspartie (numérotées a), b), ...) 
\newcommand{\sspartie}{\subsubsection}

%%% déclaration de la commande \sspartie (numérotées i), ii), ...) 
\newcommand{\ssspartie}{\subsubsubsection}



 


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

%%% Divers
 
% \label, apr\`es un num\'ero de question peut introduire un espace parasite. 
\let\F@label\label 
\renewcommand{\label}[1]{\F@label{#1}\ignorespaces} 
 
% Nouvelle version de \part : num\'ero centr\'e en gras 
\newcommand{\Part}{\par
   \addvspace{2ex}% 
   \setcounter{section}{0}% 
   \@afterindentfalse 
   \secdef\@Part\@sPart} 
\def\@Part[#1]#2{\refstepcounter{part}% 
    \ifnum \c@secnumdepth >\m@ne 
      \addcontentsline{toc}{part}{\thepart\ -- #1}% 
    \else 
      \addcontentsline{toc}{part}{#1}% 
    \fi 
    \@sPart{\thepart\hspace{0.5em}#2}} 
\def\@sPart#1{% 
     {\interlinepenalty \@M 
      \reset@font \Large\bfseries -- #1% 
      \markboth{}{}\par}% 
      \nobreak 
      \vskip 2ex 
      \@afterheading} 


\endinput


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Fin du fichier `profmath.cls'.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% La suite est normalement obsolï¿½e ou inutilisï¿½ (j'attends de tester les nouveautï¿½)



%%% dï¿½laration de la commande \chap 
\newcounter{NumeroChap} 
\@addtoreset{NumeroChap}{section} 
\@addtoreset{NumeroChap}{subsection} 
\@addtoreset{NumeroChap}{subsubsection} 
\newcommand{\chap}% 
{% 
\par% 
\stepcounter{NumeroChap}% 
\medskip% 
\setlength{\parindent}{0cm}% 
\setlength{\hangindent}{0cm}% 
\par% 
\textbf{Chapitre \Roman{NumeroChap} : }% 
} 







%%% En-tï¿½e et renumï¿½otation des pages 
\newcommand\afficheentete{%
\pagestyle{empty}%
\renewcommand{\ps@plain}{% 
\renewcommand{\@oddhead}{\textsc{Lycï¿½ Jean Prouvï¿½\hfill% 
\oldstylenums{2005}-\oldstylenums{2006}}% 
\renewcommand{\@evenhead}{\@oddhead}% 
\renewcommand{\@evenfoot}{\hfil\textrm{\thepage\ / \pageref{LaPageDeFin}}\hfil}% 
\renewcommand{\@oddfoot}{\@evenfoot}% 
}%
\renewcommand{\ps@empty}{% 
\renewcommand{\@oddhead}{\ovalbox{\textsc{Lycï¿½ Jean Prouvï¿½}\hfill%  
\ovalbox{\oldstylenums{2000}-\oldstylenums{2001}}}% 
\renewcommand{\@evenhead}{\@oddhead}% 
\renewcommand{\@evenfoot}{}% 
\renewcommand{\@oddfoot}{\@evenfoot}% 
}%
}
% Modifiez ci-dessus le texte de l'en-tete 
\newcommand{\entete}{\afficheentete\pagestyle{empty}}










\newcommand{\tabqst}[1]{%
\setcounter{@nbcol}{#1}%
\setcounter{@numquest}{0}%
% crï¿½tion du prï¿½mbule du tableau : autant de l que de colonnes
\def\@preamb{l}%
\setcounter{@interm}{1}%
\whiledo{\the@interm<\the@nbcol}%
        {\stepcounter{@interm}%
        \edef\@concat{\@preamb|l}%
        \edef\@preamb{\@concat}% voir rï¿½.1 p 198
        }%
% crï¿½tion du tableau
\par\smallskip\hfill$\begin{array}{\@preamb}%
}


\newcommand{\fintabqst}{\end{array}$\hfill\null\par\smallskip%
\def\@preamb{}%utile pour les commandes \qst, \ssq et \sssq
}


% Numér½otation automatique des sous-parties.
% celle des parties est dï¿½larï¿½ plus haut.
% Le compteur des parties est commun à \partie et à
% \exopartie. N'utilisez pas les deux ï¿½la fois, ou ajoutez un 
% nouveau compteur dans ce fichier.

%\newcounter{NumeroSousPartie}[NumeroPartie] 
%\@addtoreset{NumeroSousPartie}{section} 
%\@addtoreset{NumeroSousPartie}{subsection} 
%\@addtoreset{NumeroSousPartie}{subsubsection} 
 
%\newcounter{NumeroSousSousPartie}[NumeroSousPartie] 
%\@addtoreset{NumeroSousSousPartie}{section} 
%\@addtoreset{NumeroSousSousPartie}{subsection} 
%\@addtoreset{NumeroSousSousPartie}{subsubsection} 


\newcommand{\partie}[1]%
{% 
\par% 
\refstepcounter{part}%
\setcounter{section}{0}
\bigskip% 
\setlength{\parindent}{0cm}% 
\setlength{\hangindent}{0cm}% 
\par% 
\textbf{\Large \thepart\ --\ {#1}}\par%
\addcontentsline{toc}{part}{\thepart\ --\,#1}%
} 



\newcommand{\spartie}[1]% 
{% 
\par%
%\stepcounter{NumeroSousPartie}% 
\refstepcounter{section}%
\setcounter{subsection}{0}
%\setlength{\parindent}{0.5cm} 
\setlength{\parindent}{0cm} 
\setlength{\parskip}{0cm} 
\par% 
%\setlength{\hangindent}{0.5cm}% 
\medskip 
\textbf{\large\thepart\,.\,\thesection\ -- #1}\par%
\addcontentsline{toc}{section}{\protect\thesection~)~#1}%
} 

\newcommand{\sspartie}[1]% 
{% 
\par 
%\stepcounter{NumeroSousSouspartie}% 
\refstepcounter{subsection}%
%\setlength{\parindent}{1cm} 
\setlength{\parindent}{0cm} 
\par% 
%\setlength{\hangindent}{0.5cm}% 
\smallskip 
\textbf{\thepart\,.\,\thesection\,.\,\alph{subsection} -- #1} \par%
\addcontentsline{toc}{subsection}{%
\underline{\alph{subsection}) #1}}
} 


%%% dï¿½laration de la commande \ssspartie (numï¿½otï¿½s i), ii), ...) 
\newcommand{\ssspartie}[1]% 
{% 
\par 
%\stepcounter{NumeroSousSouspartie}% 
\refstepcounter{subsubsection}%
%\setlength{\parindent}{1cm} 
\setlength{\parindent}{0cm} 
\par% 
%\setlength{\hangindent}{0.5cm}% 
\smallskip 
\textbf{\thepart\,.\,\thesection\,.\,\alph{subsection}\,.\,\roman{subsubsection} -- #1} \par%
\addcontentsline{toc}{subsubsection}{%
\underline{\alph{subsubsection}) #1}}
}




























  
  
  
  
  
  
  

























%% Les macros suivantes redï¿½inissant les styles de \section, etc. proviennent de
%% http://zoonek.free.fr/LaTeX/

% \section

\renewcommand\thesection{\@Roman\c@section}

\def\section{\@ifstar\unnumberedsection\numberedsection}
\def\numberedsection{\@ifnextchar[%]
  \numberedsectionwithtwoarguments\numberedsectionwithoneargument}
\def\unnumberedsection{\@ifnextchar[%]
  \unnumberedsectionwithtwoarguments\unnumberedsectionwithoneargument}
\def\numberedsectionwithoneargument#1{\numberedsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsectionwithoneargument#1{\unnumberedsectionwithtwoarguments[#1]{#1}}
\def\numberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \ifx\espacesweb\undefined\bigskip\else\vskip -3.5ex \@plus -1ex \@minus -.2ex\fi\goodbreak
  \refstepcounter{section}%
  %\hbox to \hsize{\hss\vbox{
      \noindent
      \leavevmode\Large\bfseries
      \thesection\ --\ 
      #2\par
      %%%\noindent
%      }}
\nobreak
      %\ifx\espacesweb\undefined\relax\else\vskip 2.3ex \@plus .2ex\fi\nobreak
  \addcontentsline{toc}{section}{\protect\numberline{\thesection} -- #1}%
  }
\def\unnumberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \ifx\espacesweb\undefined\bigskip\else\vskip 5ex\fi
  \goodbreak
  \hbox to \hsize{\hss\vbox{
      \noindent
      \leavevmode\Large\bfseries
      #2\par
      }}\nobreak
  \addcontentsline{toc}{section}{#1}%
  }


% \subsection

\renewcommand\thesubsection{\thesection\,.\,\@arabic\c@subsection}

\def\subsection{\@ifstar\unnumberedsubsection\numberedsubsection}
\def\numberedsubsection{\@ifnextchar[%]
  \numberedsubsectionwithtwoarguments\numberedsubsectionwithoneargument}
\def\unnumberedsubsection{\@ifnextchar[%]
  \unnumberedsubsectionwithtwoarguments\unnumberedsubsectionwithoneargument}
\def\numberedsubsectionwithoneargument#1{\numberedsubsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsubsectionwithoneargument#1{\unnumberedsubsectionwithtwoarguments[#1]{#1}}
\def\numberedsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  %\ifx\espacesweb\undefined\medskip\else\addvspace{3ex}\fi
  \ifx\espacesweb\undefined\bigskip\else\vskip -3.5ex \@plus -1ex \@minus -.2ex\fi\goodbreak
  \goodbreak
  \refstepcounter{subsection}%
  \hbox to \hsize{\hss\vbox{
      \noindent
      \leavevmode\large\bfseries
      \thesubsection\ --\ 
      #2\par
      %%%\noindent
      }}\nobreak
  \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection} -- #1}%
  }
\def\unnumberedsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \ifx\espacesweb\undefined\medskip\else\vskip 3ex\fi
  \goodbreak
  \hbox to \hsize{\hss\vbox{
      \noindent
      \leavevmode\large\bfseries
      #2\par
      }}\nobreak
  \addcontentsline{toc}{subsection}{#1}%
  }


% \subsubsection

\renewcommand\thesubsubsection{\thesubsection\,.\,\@alph\c@subsubsection}

\def\subsubsection{\@ifstar\unnumberedsubsubsection\numberedsubsubsection}
\def\numberedsubsubsection{\@ifnextchar[%]
  \numberedsubsubsectionwithtwoarguments\numberedsubsubsectionwithoneargument}
\def\unnumberedsubsubsection{\@ifnextchar[%]
  \unnumberedsubsubsectionwithtwoarguments\unnumberedsubsubsectionwithoneargument}
\def\numberedsubsubsectionwithoneargument#1{\numberedsubsubsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsubsubsectionwithoneargument#1{\unnumberedsubsubsectionwithtwoarguments[#1]{#1}}
\def\numberedsubsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \ifx\espacesweb\undefined\smallskip\else\vskip 1ex\fi
  \goodbreak
  \refstepcounter{subsubsection}%
  \hbox to \hsize{\hss\vbox{
      \noindent
      \leavevmode\large\bfseries
      \thesubsubsection\ --\ 
      #2\par
      %%%\noindent
      }}\nobreak
  \addcontentsline{toc}{subsubsection}{\protect\numberline{\thesubsubsection} -- #1}%
  }
\def\unnumberedsubsubsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \ifx\espacesweb\undefined\smallskip\else\vskip 1ex\fi
  \goodbreak
  \hbox to \hsize{\hss\vbox{
      \noindent
      \leavevmode\large\bfseries
      #2\par
      }}\nobreak
  \addcontentsline{toc}{subsubsection}{#1}%
  }


  
  
  
  
  
  
  
  
  
  
  
\usepackage{titlesec} % pour la modification des titres de parties, sous-parties, etc.

\renewcommand\thesection{\@Roman\c@section}
\renewcommand\thesubsection{\thesection\,.\,\@arabic\c@subsection}
\renewcommand\thesubsubsection{\thesubsection\,.\,\@alph\c@subsubsection}

\titleformat{\section}{\Large\bfseries}{\thesection\ --}{5pt}{}[]
\titleformat{\subsection}{\large\bfseries}{\thesubsection\ --}{5pt}{}[]
\titleformat{\subsubsection}{\bfseries}{\thesubsubsection\ --}{5pt}{}[]%

\ifx\standard\undefined%
\titlespacing{\section}{0pt}{1.7ex}{0pt}
\titlespacing{\subsection}{0pt}{1ex}{0pt}
\titlespacing{\subsubsection}{0pt}{0.5ex}{0pt}
\else
\relax
\fi


% Police grasse, petites capitales
% pb :pas d'accents !
%\newfont{\mapolice}{\ifnum\@ptsize=2 cmbxsc12\else\ifnum\@ptsize=1 cmbxsc11
%\else cmbxsc10\fi\fi}
