% \iffalse meta-comment
%
% Ce "package" fournit une classe thèse.
%
% Il est basé d'une part sur la classe "report", d'autre part sur le style
% thèse d'un auteur inconnu.
%
% Il est fourni tel quel, ce n'est pas de ma faute si vous plantez votre
% thèse ;-)
%
% Si vous changez ce fichier, vous le faites à vos dépends ...
%
% \fi
%
%
% \CheckSum{2005}
%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%
% \changes{v1.0b}{95/01/23}{Premiers pas ...}
% \changes{v1.0}{95/02/20}{Ça devrait aller !}
% \changes{v1.1}{95/04/12}{Qq modifs.}
% \changes{v1.2}{95/04/20}{Ajouté les césures.}
% \changes{v1.3}{95/06/20}{Éliminé l'ISO, ajouté des options.}
% \changes{v2.0}{95/07/01}{Remise à jour des manuels. Nouveau patch de
%   Makeindex} 
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \iffalse meta-comment
%
%     Things NOT to index
%
% \fi
%
% \DoNotIndex{\',\.,\@M,\@addtoreset,\@afterheading,\@esphack,\@index}
%
% \DoNotIndex{\arraycolsep,\arrayrulewidth,\c@page,\columnseprule,\columnsep,\columnwidth}
% \DoNotIndex{\dotfill,\dotfil,\efill,\endtrivlist,\enskip,\fbox}
%
% \DoNotIndex{\footnotesize,\footnoterule,\hfill,\hfil,\ifodd,\ifscan@allowed}
% \DoNotIndex{\ignorespaces,\indexentry,\leaders,\makebox,\marginpar}
% \DoNotIndex{\newsavebox,\newtheorem,\nopagebreak,\oddsidemargin}
% \DoNotIndex{\oldtextwidth,\oldoddmargin,\oldtextheight}
% \DoNotIndex{\pagestyle,\pfill,\protected@write,\rule,\sectionmark,\string}
% \DoNotIndex{\strut,\tabbingsep,\tabcolsep,\textwidth,\textheight}
% \DoNotIndex{\tmpleftmark,\tmprightmark,\trivlist,\unskip,\usebox}
% \DoNotIndex{\@arabic,\@author,\@beginparpenalty,\@biblabel,\@centercr,\@chapapp}
% \DoNotIndex{\@chapter,\@date,\@dblfloat,\@dotsep,\@dottedtocline,\@empty}
% \DoNotIndex{\@endparpenalty,\@endpart,\@evenfoot,\@evenhead,\@float,\@fontswitch}
% \DoNotIndex{\@gobble,\@gobbletwo,\@highpenalty,\@idxitem,\@itempenalty,\jurybox}
% \DoNotIndex{\@latex@warning,\@lowpenalty,\@m,\@makecaption,\@makechapterhead,\@makefnmark}
% \DoNotIndex{\@makefntext,\@makeschapterhead,\@maketitle,\@medpenalty,\@minipagefalse,\@minus}
% \DoNotIndex{\@mkboth,\@mparswitchfalse,\@mparswitchtrue,\@mpfootins,\@ne,\@nobreakfalse}
% \DoNotIndex{\@nobreaktrue,\@noitemerr,\@nomath,\@oddfoot,\@oddhead,\@openbibfalse}
% \DoNotIndex{\@openbibtrue,\@openrightfalse,\@openrighttrue,\@part,\@plus,\@pnumwidth}
% \DoNotIndex{\@ptsize,\@restonecolfalse,\@restonecoltrue,\@schapter,\@spart,\@startsection}
% \DoNotIndex{\@starttoc,\@tempboxa,\@tempdima,\@tempswafalse,\@tempswatrue,\@title}
% \DoNotIndex{\@tocrmarg,\@topnewpage,\@topnum,\@twocolumnfalse,\@twocolumntrue,\@twosidefalse}
% \DoNotIndex{\@twosidetrue,\\,\^,\`,\ ,\abovecaptionskip}
% \DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength,\addvspace,\advance}
% \DoNotIndex{\Alph,\alph,\arabic,\ast,\baselinestretch,\begin}
% \DoNotIndex{\begingroup,\belowcaptionskip,\bf,\bfseries,\bibindent,\bottomfraction}
% \DoNotIndex{\box,\bullet,\c@figure,\c@secnumdepth,\c@table,\c@tocdepth}
% \DoNotIndex{\cal,\cdot,\centering,\chaptermark,\cleardoublepage,\clearpage}
% \DoNotIndex{\clubpenalty,\col@number,\day,\dblfloatpagefraction,\dbltopfraction,\DeclareOldFontCommand}
% \DoNotIndex{\DeclareOption,\DeclareRobustCommand,\def,\descriptionlabel,\doublerulesep,\else}
% \DoNotIndex{\end,\end@dblfloat,\end@float,\endgroup,\endlist,\everypar}
% \DoNotIndex{\ExecuteOptions,\ext@figure,\ext@table,\fboxrule,\fboxsep,\fi}
% \DoNotIndex{\filedate,\fileversion,\floatpagefraction,\flushbottom,\fnum@figure,\fnum@table}
% \DoNotIndex{\footins,\fps@figure,\fps@table,\ftype@figure,\ftype@table,\gdef}
% \DoNotIndex{\global,\hangindent,\hbox,\hfil,\hrule,\hrulefill}
% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\Huge,\huge}
% \DoNotIndex{\if@compatibility,\if@restonecol,\if@tempswa,\ifcase,\ifdim,\ifnum}
% \DoNotIndex{\indexspace,\input,\interlinepenalty,\it,\item,\itemindent}
% \DoNotIndex{\itemsep,\itshape,\kern,\l@chapter,\l@figure,\l@paragraph}
% \DoNotIndex{\l@part,\l@section,\l@subparagraph,\l@subsection,\l@subsubsection,\l@table}
% \DoNotIndex{\labelenumi,\labelenumii,\labelenumiii,\labelenumiv,\labelitemi,\labelitemii}
% \DoNotIndex{\labelitemiii,\labelitemiv,\labelsep,\labelwidth,\LARGE,\Large}
% \DoNotIndex{\large,\leavevmode,\leftmargin,\leftmargini,\leftmarginii,\leftmarginiii}
% \DoNotIndex{\leftmarginiv,\leftmarginv,\leftmarginvi,\leftmark,\leftskip,\let}
% \DoNotIndex{\lineskip,\list,\listparindent,\long,\m@ne,\m@th}
% \DoNotIndex{\makelabel,\markboth,\markright,\mathbf,\mathcal,\mathit}
% \DoNotIndex{\mathnormal,\mathrm,\mathsf,\mathtt,\mit,\month}
% \DoNotIndex{\newblock,\newcommand,\newcounter,\newdimen,\newenvironment,\newif}
% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\normalfont,\normallineskip}
% \DoNotIndex{\normalsize,\null,\number,\numberline,\onecolumn,\or}
% \DoNotIndex{\overfullrule,\p@,\p@enumii,\p@enumiii,\p@enumiv,\pagenumbering}
% \DoNotIndex{\paperheight,\paperwidth,\par,\paragraph,\parfillskip,\parindent}
% \DoNotIndex{\parsep,\parskip,\part,\penalty,\ProcessOptions,\protect}
% \DoNotIndex{\ProvidesClass,\raggedbottom,\raggedright,\refstepcounter,\relax,\renewcommand}
% \DoNotIndex{\reset@font,\rightmargin,\rightmark,\rightskip,\rm,\rmfamily}
% \DoNotIndex{\Roman,\roman,\sbox,\sc,\scshape,\secdef}
% \DoNotIndex{\setcounter,\setlength,\settowidth,\sf,\sfcode,\sffamily}
% \DoNotIndex{\skip,\sl,\sloppy,\slshape,\small,\space}
% \DoNotIndex{\stackrel,\subitem,\subsubitem,\textfraction,\thechapter,\theenumi}
% \DoNotIndex{\theenumii,\theenumiii,\theenumiv,\theequation,\thefigure,\thepage}
% \DoNotIndex{\theparagraph,\thepart,\thesection,\thesubparagraph,\thesubsection,\thesubsubsection}
% \DoNotIndex{\thetable,\thispagestyle,\topfraction,\tt,\ttfamily}
% \DoNotIndex{\twocolumn,\typeout,\uppercase,\usecounter,\vfil,\vskip}
% \DoNotIndex{\vspace,\wd,\widowpenalty,\year,\z@,}
% \DoNotIndex{\@auxout,\@bsphack,\@cite,\@citea,\@citeb,\@for,\@iden}
%
% \DoNotIndex{\@ifundefined,\@sanitize,\active,\c@example,\catcode,\chardef}
% \DoNotIndex{\citation,\cocode,\csname,\diamond,\divide,\do,\edef}
%
% \DoNotIndex{\emcode,\endcsname,\expandafter,\font,\fontdimen,\footskip}
% \DoNotIndex{\G@refundefinedtrue,\if@twocolumn,\if@twoside,\ifhmode}
%
% \DoNotIndex{\ifmmode,\immediate,\l@example,\langle,\lastskip,\medskip}
%
% \DoNotIndex{\NeedsTeXFormat,\oldfootskip,\qmcode,\raggedleft,\raisebox}
% \DoNotIndex{\rangle,\RequirePackage,\sccode,\scriptscriptstyle,\the}
% \DoNotIndex{\thinspace,\tiny,\value,\vfill,\write}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \title{Fichier \texttt{lifia-th.dtx}, à utiliser avec
% LaTeX2e. \thanks{Version \fileversion, daté du \filedate.}
% Ce fichier implémente la classe \texttt{lifia-th.cls}}~\\[2pt]
% \author{W. Pfister {\tt Wilfried.Pfister@imag.fr}}
%
% \maketitle
% \CodelineNumbered
%
% Ce fichier implémente le style ``thèse'' pour \LaTeXe.
%
%\StopEventually{\PrintIndex,\PrintChanges}
%
% \tableofcontents
% 
% \iffalse
%    \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\usepackage{french,isolatin1}
\EnableCrossrefs
\RecordChanges
\PageIndex
\GetFileInfo{lifia-th.dtx}
\begin{document}
   \DocInput{lifia-th.dtx}
\end{document}
%</driver>
%    \end{macrocode}
% \fi
%
% \section{Introduction}
%
% La classe \texttt{lifia-th} est définie pour produire une thèse en
% français. Vous trouverez ici tous les éléments nécessaire à son
% utilisation. Les sections suivantes documentent le code \LaTeXe de
% la classe.
%
% \subsection{Les options}
% Les styles pris par défaut sont~:
% \begin{description}
% \item[a4paper~:] comme taille de papier. Sont aussi définies les
% options \texttt{a5paper, b5paper, legalpaper, executivepaper} ainsi
% que \texttt{landscape}.
% \item[11pt~:] comme taille de caractères. Les tailles \texttt{10pt}
% et \texttt{12pt} sont aussi possibles.
% \item[twoside~:] pour une impression recto-verso (\texttt{oneside}
% est aussi possible)~;
% \item[onecolumn~:] une seule colonne par page (\texttt{twocolumn}
% est aussi possible)~;
% \item[final~:] qui demande la version finale. Dans le cas de
% l'option \texttt{draft}, le texte est modifié comme suit~:
%   \begin{enumerate}
%   \item une page de titre simplifiée est produite (titre, auteur et
%     date)~;
%   \item un pavé noir est produit en marge pour les \texttt{*full
%     hbox}~;
%   \item la date est mise en bas de page~;
%   \item si l'option |draftindex| est choisie, une note en marge
%     donne les entrées de |\index|~;
%   \item si l'option |draftbib| est choisie, une note marginale est
%     posée pour toute référence bibliographique non trouvée et toutes
%     les commandes |\cite| sont listées dans l'index sous l'entrée
%     «bibliographie»~;
%   \item {\bf néanmoins}, la pagination reste la même.
%   \end{enumerate}
% \item[nodate~:] ne met pas la date de soutenance sur la page de
%   garde de la version finale~;
% \item[openright~:] afin que les chapitres commencent sur une page de
%   droite dans le cas recto-verso. L'option contraire est
%   \texttt{openany}.
% \item[frenchdp~:] pour avoir un espacement correct avec les
%   ponctuations doubles (;:!?). Comme cela pose des problèmes de
%   placement des figures avec |psfrag|, je le laisse en option.
% \end{description}
%
% En plus de ces options, il est possible de préciser~:
% \begin{description}
% \item[leqno~:] pour numéroter les équations à gauche~;
% \item[fleqn~:] pour aligner à gauche les environnements
%   mathématiques~;
% \item[openbib~:] pour avoir une bibliographie ``ouverte''
%   (i.e. où les références sont divisées en paragraphes).
% \end{description}
%
% isolatin1, n'est pas pris, car incompatible avec de nombreux packages
% (p.ex. \texttt{float.sty})
%
% \subsection{Le style {\tt french}}
%
% Malheureusement, ce style introduit des surdéfinitions de
% |\chapter|, etc qui sont peu seyantes. De plus,il y a quelques
% imperfections avec l'environnement |eqnarray|. Par conséquent, je
% déconseille de l'appeler par la commande |\usepackage|, dans le
% texte.
%
% \subsection{La présentation du document}
%
% Le mieux est sans doute de regarder les deux exemples joints, voici
% néanmoins quelques précisions.
%
% La page de garde finale est telle qu'à la
% page~\pageref{fig-page-de-garde}. En plus des champs |\author| et
% |\title|, nous avons défini |\jury|. Les longueurs |\SautHaut| et
% |\SautBas| peuvent être redéfinies pour adapter la mise-en-page.
%
% Le reste du document est fortement inspiré de la classe
% \texttt{report}, à l'exception des détails suivants~:
% \begin{description}
% \item[les paragraphes] sont tous indentés (pour suivre la
%   typographie française)~;
% \item[les en-têtes] sont définis de la manière suivante~:
%   \begin{description}
%   \item[dans le cas de l'impression recto-verso~:] à gauche, la page
%     et le chapitre, et à droite, la section et la page.
%   \item[dans le cas recto seul~:] on a le chapitre et la page.
%   \end{description}
%   La commande |\pagestyle{headings}| est prise par défaut.
% \item[les annexes] sont annoncés par la commande |\appendix| qui
%   fait une partie ``Annexes'' (avec une ligne dans le sommaire) et
%   affecte une lettre et non plus un nombre aux chapitres~;
% \item[l'index] commence sur une page de droite. De plus, on peut
%   utiliser le fichier de style \texttt{lifia-th.ist} pour le
%   produire. Une bonne méthode pour introduire l'index est d'utiliser
%   la nouvelle commande de \LaTeXe~:
%   \begin{center}
%   \begin{verbatim}
%     \IfFileExists{./<fichier>.ind}{\input{<fichier>.ind}}{}
%   \end{verbatim}
%   \end{center}
%   Le patch de \texttt{makeindex} joint permet de traiter
%   correctement les mots accentués (p.ex. ``énorme'' ira sous
%   l'entrée ``E''). Il est prévu pour être utilisé avec
%   \texttt{lifia-th.ist}.
% \item[la conclusion] de la thèse peut être produite grâce à la
%   commande |\conclusion|. La seule différence avec |\chapter| est
%   qu'elle introduit un plus grand espace dans le sommaire~;
% \item[le résumé~:] en plus de la commande |\abstract|, nous
%   définissons |\resume| qui donne un paragraphe intitulé
%   ``Résumé''~;
% \item[les mots-clés~:] deux environnements permettent de placer les
%   mots-clés, |\motscles| et |\keywords|.
% \end{description}
%
% \subsection{La numérotation des pages}
%
% \DescribeMacro{\frontmatter}
% \DescribeMacro{\mainmatter}
% Deux commandes supplémentaires permettent de changer la numérotation
% des pages |\frontmatter| qui numérote en romain et |\mainmatter| qui
% numérote en arabe. En toute logique, elles peuvent être utilisées
% pour distinguer la partie ``avant'' (remerciements, tables, etc) du
% contenu réel de la thèse.
%
% À noter que selon les normes AFNOR, la pagination doit être continue
% (la page de titre étant la page 1). Voir le paragraphe
% \ref{s-biblio} pour quelques références bibliographiques.
%
% \subsection{Les nouveaux environnements}
%
% \DescribeEnv{theorem}
% \DescribeEnv{lemma}
% \DescribeEnv{proposition}
% \DescribeEnv{corollary}
% \DescribeEnv{proof}
% \DescribeEnv{definition}
% \DescribeEnv{remark}
% Nous avons définis les environnements |theorem|, |lemma|,
% |proposition|, |corollary|, |proof|, |definition| et
% |remark| qui sont numérotés par~: chapitre.section.numéro (à
% l'exception de |remark| et |proof| qui ne sont pas numérotés).
%
% \DescribeEnv{example}
% \DescribeMacro{\listofexamples}
% De plus, nous avons ajouté un environnement |example| qui produit
% une liste des exemples similaire à celle des figures ou des tables.
%
% \subsection{Les signes de ponctuation}
%
% En français, les signes {\bf ;~:~!~?} sont précédés d'un espace plus
% ou moins fin. La classe \texttt{lifia-th} permet d'ajouter
% automatiquement cet espace (option |frenchdp|). Celà pose des
% problèmes avec \texttt{psfrag} (et je suis preneur de toute
% solution~!).
%
% \subsection{Un exemple}
%
% Le fichier \texttt{test-lifia-th.\{texf,ps\}} donne un exemple
% d'utilisation de la classe \texttt{lifia-th}. Le fichier
% \texttt{test-draft.texf} donne un exemple de l'option draft.
%
% \section{Petite bibliographie}
% \label{s-biblio}
%
% Je rappelle que {\bf les majuscules sont accentuées}. Ceux
% intéressés pourront consulter le petit bouquin sur la typographie
% française édité par l'Imprimerie Nationale.
%
% Concernant les documents, une petite plaquette éditée par l'AFNOR
% cite les références suivantes~:
% \begin{description}
% \item[ISO 5996~:] présentation des rapports sci. et techn.
% \item[NF Z 44-004~:] recommandations aux auteurs pour le rédaction
%   des résumés d'articles sci. et techn.
% \item[Z 44-005~:] contenu, forme et structures des réf. biblio. (ISO
%   690-1987)
% \item[NF Z 47-102~:] principes généraux pour l'indexation des
%   documents
% \item[ISO 2108~:] système internat. pour la numérotation des livres
%   (ISBN)
% \end{description}
%
% \section{Adapter la classe à un autre labo}
%
% L'essentiel de l'adaptation se fait en modifiant la page de titre
% (puisque le nom du laboratoire est inscrit en bas de page). On peut
% soit créer une nouvelle classe (ce qui est le plus propre), soit
% redéfinir les paramètres de la page de titre dans le préambule
% (|\gradename|, |\domainname|, |\soutname| et |\laboname|, voir les
% sections \ref{s-page-titre} et \ref{s-noms-francises}).
%
% La distribution est fourni avec un makefile assez générique~: il
% suffit de changer la variable |PREFIX| en lui donnant le nom de la
% nouvelle classe.
%
% \section{Paramètres généraux}
%
% Identification de la classe et de sa version~:
%    \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}[95/01/31]
\ProvidesClass{lifia-th}[95/07/01 v2.0] 
\typeout{Classe ``thèse'' du LIFIA, bon courage ...}
%    \end{macrocode}
%
% Paramètres généraux de la classe~:
%
%    \begin{macrocode}
\newcommand{\@ptsize}{}
\newif\if@restonecol
\newif\if@openright
\newif\if@openbib
\newif\if@draft
\newif\if@draftindex
\newif\if@draftbib
\newif\if@nodate
\newif\if@frenchdp
\@openbibfalse
\@draftfalse
\@draftindexfalse
\@draftbibfalse
\@nodatefalse
\@frenchdpfalse
%    \end{macrocode}
%
% \section{Les options disponibles}
%
% Tout d'abord, nous définissons les différentes options. Par rapport
% aux styles de base de \LaTeXe, nous éliminons l'option de page de
% titre (la page de titre sera plus dénudée dans le cas d'un ``draft'')~:
%
%    \begin{macrocode}
\DeclareOption{a4paper}
   {\setlength\paperheight {297mm}%
    \setlength\paperwidth  {210mm}}
\DeclareOption{a5paper}
   {\setlength\paperheight {210mm}%
    \setlength\paperwidth  {148mm}}
\DeclareOption{b5paper}
   {\setlength\paperheight {250mm}%
    \setlength\paperwidth  {176mm}}
\DeclareOption{letterpaper}
   {\setlength\paperheight {11in}%
    \setlength\paperwidth  {8.5in}}
\DeclareOption{legalpaper}
   {\setlength\paperheight {14in}%
    \setlength\paperwidth  {8.5in}}
\DeclareOption{executivepaper}
   {\setlength\paperheight {10.5in}%
    \setlength\paperwidth  {7.25in}}
\DeclareOption{landscape}
   {\setlength\@tempdima   {\paperheight}%
    \setlength\paperheight {\paperwidth}%
    \setlength\paperwidth  {\@tempdima}}
\DeclareOption{10pt}{\renewcommand{\@ptsize}{0}}
\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}}
\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}}
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
\DeclareOption{onecolumn}{\@twocolumnfalse}
\DeclareOption{twocolumn}{\@twocolumntrue}
\DeclareOption{draft}{\setlength\overfullrule{5pt} \@drafttrue}
\DeclareOption{draftindex}{\@draftindextrue}
\DeclareOption{draftbib}{\@draftbibtrue}
\DeclareOption{final}{\setlength\overfullrule{0pt} \@draftfalse
  \@draftindexfalse \@draftbibfalse}
\DeclareOption{nodate}{\@nodatetrue}
\DeclareOption{openright}{\@openrighttrue}
\DeclareOption{openany}{\@openrightfalse}
\DeclareOption{leqno}{\input{leqno.clo}}
\DeclareOption{fleqn}{\input{fleqn.clo}}
\DeclareOption{openbib}{\@openbibtrue}
\DeclareOption{frenchdp}{\@frenchdptrue}
%    \end{macrocode}
%
% Les options prises par défaut sont~:
% \begin{itemize}
% \item papier A4,
% \item impression en 11 point, sur deux faces et une seule colonne,
% \item version finale,
% \item chapitres démarrant à droite.
% \end{itemize}
%
%    \begin{macrocode}
\ExecuteOptions{a4paper,11pt,twoside,onecolumn,final,openright}
\ProcessOptions
%    \end{macrocode}
%
% Quelques paramètres généraux~:
%
%    \begin{macrocode}
\input{size1\@ptsize.clo}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand{\baselinestretch}{}
\setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\setcounter{topnumber}{2}
\renewcommand{\topfraction}{.7}
\setcounter{bottomnumber}{1}
\renewcommand{\bottomfraction}{.3}
\setcounter{totalnumber}{3}
\renewcommand{\textfraction}{.2}
\renewcommand{\floatpagefraction}{.5}
\setcounter{dbltopnumber}{2}
\renewcommand{\dbltopfraction}{.7}
\renewcommand{\dblfloatpagefraction}{.5}
%    \end{macrocode}
%
% \section{Les en-têtes et bas-de-page}
%
% \DescribeMacro{\ps@headings}
%
% Si la commande |\pagestyle{headings}| apparait, les en-têtes sont~:
% \begin{description}
% \item[dans le cas de l'impression recto-verso~:] à gauche, la page
% et le chapitre, et à droite, la section et la page.
% \item[dans le cas recto seul~:] on a le chapitre et la page.
% \end{description}
%
% Dans les deux cas, un trait est tracé sur toute la largeur de la
% page.
%
% Les bas-de-page sont vides si l'option |final| est choisie ou
% indiquent la date dans le cas |draft|.
%
%    \begin{macrocode}
\if@twoside
\def\ps@headings{%
  \if@draft
    \def\@oddfoot{\hfill{\tiny Épreuve du \today}}
    \def\@evenfoot{\hfill{\tiny Épreuve du \today}}
  \else
    \let\@oddfoot\@empty
    \let\@evenfoot\@empty
  \fi
  \def\@evenhead{%
  $\stackrel{\makebox[\textwidth]{\slshape\thepage\hfil\hfill\leftmark}}%
    {\hrulefill}$}
  \def\@oddhead{%
  $\stackrel{\makebox[\textwidth]{\slshape\rightmark\hfil\hfill\thepage}}%
    {\hrulefill}$}
  \let\@mkboth\markboth
  \def\chaptermark##1{%
    \markboth {\uppercase{%
        \ifnum \c@secnumdepth >\m@ne
        \@chapapp\ \thechapter. \ %
        \fi
        ##1}}{}}%
  \def\sectionmark##1{%
    \markright {%
        \ifnum \c@secnumdepth >\z@
        \thesection. \ %
        \fi
        ##1}}}
\else
\def\ps@headings{%
  \if@draft
    \def\@oddfoot{\hfill{\tiny Épreuve du \today}}
  \else
    \let\@oddfoot\@empty
  \fi
  \def\@oddhead{%
  $\stackrel{\makebox[\textwidth]{\slshape\rightmark\hfil\hfill\thepage}}%
    {\hrulefill}$}
  \let\@mkboth\markboth
  \def\chaptermark##1{%
    \markright {\uppercase{%
        \ifnum \c@secnumdepth >\m@ne
        \@chapapp\ \thechapter. \ %
        \fi
        ##1}}}}
\fi
%    \end{macrocode}
%
% Il est possible aussi de personnaliser les en-têtes~:
%
% \DescribeMacro{\ps@myheadings}
%    \begin{macrocode}
\def\ps@myheadings{%
  \let\@oddfoot\@empty\let\@evenfoot\@empty
  \def\@evenhead{\thepage\hfil\slshape\leftmark}%
  \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
  \let\@mkboth\@gobbletwo
  \let\chaptermark\@gobble
  \let\sectionmark\@gobble
  }
%    \end{macrocode}
%
% \section{La page de titre}
% \label{s-page-titre}
%
% \DescribeMacro{\maketitle}
%
% \DescribeMacro{\jury}
%
% En plus des paramètres classiques (titre, auteur, date), nous définissons
% la variable |\jury| comme contenant le jury en format |tabular|~:
%
%    \begin{macrocode}
\newsavebox{\jurybox}
\DeclareRobustCommand{\jury}[1]{\begin{lrbox}{\jurybox}{#1}\end{lrbox}}
%    \end{macrocode}
%
% \DescribeMacro{\SautHaut}
% \DescribeMacro{\SautBas}
% Les paramètres |\SautHaut| et |\SautBas| permettent de contrôler
% globalement la mise en page (version finale).
%
% \DescribeMacro{\gradename}
% \DescribeMacro{\domainname}
% \DescribeMacro{\soutname}
% \DescribeMacro{\laboname}
% Les commandes |\gradename|, |\domainname|, |\soutname| et
% |\laboname| permettent de définir la page de titre. Ces paramètres
% sont mis à jour dans la section \ref{s-noms-francises}.
%
%    \begin{macrocode}
\newlength{\SautHaut}
\setlength{\SautHaut}{-10pt}
\newlength{\SautBas}
\setlength{\SautBas}{70pt}
%    \end{macrocode}
%
% Dans le cas d'une version provisoire, la page de titre contient
% seulement le titre, l'auteur et la date de compilation~:
%
%    \begin{macrocode}
\if@draft
\newcommand{\maketitle}{%
  \thispagestyle{empty}
  \null\vfil
  \vskip 60\p@
  \begin{center}%
    {\LARGE \@title \par}%
    \vskip 3em%
    {\large
      \lineskip .75em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1.5em%
    {\large \@date \par}%
  \end{center}\par
  \vfil\null
\setcounter{footnote}{0}%
\let\maketitle\relax
\gdef\@author{}\gdef\@title{}
  \clearpage
  \thispagestyle{empty}
  \vfil \clearpage}
%    \end{macrocode}
%
% \pagebreak
%
% Dans le cas de la version finale, la page est présentée de la
% manière suivante~: \label{fig-page-de-garde}
% \begin{center}
% \begin{verbatim}
% +-----------------------------------------------+
% |                    ^                          |            
% |                  SautHaut                     |
% |                    v                          |
% |                  THÈSE (huge)                 |
% |                    ^                          |            
% |                  0,5 cm                       |
% |                    v                          |
% |              présentée par                    |
% |                    ^                          |            
% |                  0,5 cm                       |
% |                    v                          |
% |                 <auteur> (Large)              |
% |                    ^                          |            
% |                  0,5 cm                       |
% |                    v                          |
% |           pour obt. le titre de Docteur       | )
% |         de l'Inst. Nat. Pol. de Gre.          | ) = \gradename
% |            (Arr. min. du 23 nov. 88)          | )
% |           Spécialité : informatique           | = \domainname
% |                    ^                          |            
% |                  vfill                        |
% |                    v                          |
% |                 <titre> (huge)                |
% |                    ^                          |
% |                  vfill                        |
% |                    v                          |
% |       Soutenue le <date> ou rien (small)      | = \soutname
% |                    ^                          |         
% |                 1.5 cm                        |
% |                    v                          |
% |                 <jury>                        |
% |                    ^                          |            
% |                SautBas                        |
% |                    v                          |
% | Thèse préparée au sein du LIFIA (small)       | = \laboname
% +-----------------------------------------------+
%
% \end{verbatim}
% \end{center}
%
%
%    \begin{macrocode}
\else
\newcommand{\maketitle}{%
  \thispagestyle{empty}
  \newlength{\oldoddmargin}
  \setlength{\oldoddmargin}{\oddsidemargin}
  \setlength{\oddsidemargin}{-5.4mm}
  \newlength{\oldfootskip}
  \setlength{\oldfootskip}{\footskip}
  \setlength{\footskip}{0pt}
  \newlength{\titlewidth}
  \setlength{\titlewidth}{\paperwidth}
  \addtolength{\titlewidth}{-4cm}
  \begingroup
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \fi
    \thispagestyle{empty}
  \endgroup
  \setlength{\oddsidemargin}{\oldoddmargin}
  \setlength{\footskip}{\oldfootskip}
  \setcounter{footnote}{0}%
  \let\maketitle\relax
  \let\@maketitle\relax
  \gdef\@author{}\gdef\@title{}}
\def\@maketitle{%
  \begin{minipage}{\titlewidth}
    \begin{center}%
      \vskip \SautHaut%
      {\huge TH\`ESE \par}%
      \vskip 15pt%
      {présentée par \par}%
      \vskip 15pt%
      {\Large \@author \par}%
      \vskip 15pt%
      {\gradename \par}%
      \vskip 15pt%
      {\domainname\par}%
    \end{center}
  \end{minipage}
      \vfill%
  \begin{minipage}{\titlewidth}
    \begin{center}%
      \vskip \SautHaut%
      {\huge \@title \par}%
    \end{center}
  \end{minipage}
      \vfill%
  \begin{minipage}{\titlewidth}
    \begin{center}%
      \vskip \SautHaut%
      \if@nodate
        \vskip 40pt
      \else
        {\small \soutname \@date \par}%
        \vskip 40pt%
      \fi
      {\usebox{\jurybox} \par}%
      \vskip \SautBas
      {\small \laboname}%
    \end{center}%
  \end{minipage}
  \clearpage
  \thispagestyle{empty}
  \vfil \clearpage}
\fi
%    \end{macrocode}
%
% \section{Le sectionnement}
%
% Il est exactement identique à celui donné dans
% \texttt{report.cls}. Les noms des sections et les numéros des
% parties sont francisés
% (voir la section \ref{s-noms-francises}).
%
%    \begin{macrocode}
\newcommand*{\chaptermark}[1]{}
\setcounter{secnumdepth}{2}
\newcounter {part}
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\renewcommand{\thepart}         {\Roman{part}}
\renewcommand{\thechapter}      {\arabic{chapter}}
\renewcommand{\thesection}      {\thechapter.\arabic{section}}
\renewcommand{\thesubsection}   {\thesection.\arabic{subsection}}
\renewcommand{\thesubsubsection}{\thesubsection .\arabic{subsubsection}}
\renewcommand{\theparagraph}    {\thesubsubsection.\arabic{paragraph}}
\renewcommand{\thesubparagraph} {\theparagraph.\arabic{subparagraph}}
\newcommand{\@chapapp}{\chaptername}
%    \end{macrocode}
%
% \subsection{Les parties}
%
% Elles commencent sur une nouvelle page et seul le numéro et le titre
% apparaissent. À noter que je n'ai pas considéré les thèses ayant
% plus de vingt parties ;-)
%
% \DescribeMacro{\part}
%    \begin{macrocode}
\newcommand{\part}{\cleardoublepage
                 \thispagestyle{empty}%
                 \if@twocolumn
                     \onecolumn
                     \@tempswatrue
                   \else
                     \@tempswafalse
                 \fi
                 \hbox{}\vfil
                 \secdef\@part\@spart}

\def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{}{}
    {\centering
     \interlinepenalty \@M
     \reset@font
     \ifnum \c@secnumdepth >-2\relax
       \huge\bfseries \thepartspell~\partname
       \par
       \vskip 20\p@
     \fi
     \Huge \bfseries #2\par}%
    \@endpart}
\def\@spart#1{%
    {\centering
     \interlinepenalty \@M
     \reset@font
     \Huge \bfseries #1\par}%
    \@endpart}
\def\@endpart{\vfil\newpage
              \if@twoside
                \hbox{}%
                \thispagestyle{empty}%
                \newpage
              \fi
              \if@tempswa
                \twocolumn
              \fi}
%    \end{macrocode}
%
% \subsection{Les chapitres}
%
% Ils commencent sur une nouvelle page.
%
% \DescribeMacro{\chapter}
%    \begin{macrocode}
\newcommand{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{empty}%
                    \global\@topnum\z@
                    \secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \addtocontents{loe}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \reset@font
    \ifnum \c@secnumdepth >\m@ne
        \huge\bfseries \@chapapp{} \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}
\def\@schapter#1{\if@twocolumn
                   \@topnewpage[\@makeschapterhead{#1}]%
                 \else
                   \@makeschapterhead{#1}%
                   \@afterheading
                 \fi}
\def\@makeschapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright
    \reset@font
    \interlinepenalty\@M
    \Huge \bfseries  #1\par\nobreak
    \vskip 40\p@
  }}
%    \end{macrocode}
%
% \subsection{Les sections, ..., paragraphes}
%
% Tous les premiers paragraphes sont indentés (ce qui correspond à la
% typographie française).
%
% \DescribeMacro{\section}
% \DescribeMacro{\subsection}
% \DescribeMacro{\subsubsection}
% \DescribeMacro{\paragraph}
% \DescribeMacro{\subparagraph}
%    \begin{macrocode}
\newcommand{\section}{\@startsection {section}{1}{\z@}%
                                   {3.5ex \@plus 1ex \@minus .2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\reset@font\Large\bfseries}}
\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
                                     {3.25ex\@plus 1ex \@minus .2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\reset@font\large\bfseries}}
\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
                                     {3.25ex\@plus 1ex \@minus .2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\reset@font\normalsize\bfseries}}
\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
                                    {3.25ex \@plus1ex \@minus.2ex}%
                                    {-1em}%
                                    {\reset@font\normalsize\bfseries}}
\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\parindent}%
                                       {3.25ex \@plus1ex \@minus .2ex}%
                                       {-1em}%
                                      {\reset@font\normalsize\bfseries}}
%    \end{macrocode}
%
% \subsection{Les annexes}
%
% Elles sont désignées par une lettre et suivent la même présentation
% que les chapitres. Une ligne ``Annexes'' est ajoutée à la table des
% matières.
%
% \DescribeMacro{\appendix}
%    \begin{macrocode}
\newcommand{\appendix}{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \part*{\appendicesname}%
  \addcontentsline{toc}{part}{\protect\appendicesname}%
  \renewcommand{\@chapapp}{\appendixname}%
  \renewcommand{\thechapter}{\Alph{chapter}}}
%    \end{macrocode}
%
% \section{Les environnements mathématiques}
%
% Nous définissons quelques environnements de base et modifions le
% style des preuves.
% 
% \DescribeEnv{theorem}
% \DescribeEnv{lemma}
% \DescribeEnv{proposition}
% \DescribeEnv{corollary}
% \DescribeEnv{definition}
%    \begin{macrocode}
\newtheorem{theorem}{Théorème}[chapter]
\newtheorem{lemma}[theorem]{Lemme}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollaire}
\newtheorem{definition}[theorem]{Définition}
%    \end{macrocode}
%
% Afin d'avoir une numérotation française, nous redéfinissons les
% commandes |\@begintheorem| et |\@oparbegintheorem|~:
% \DescribeMacro{\@begintheorem}
%    \begin{macrocode}
\def\@begintheorem#1#2{\trivlist
  \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
%    \end{macrocode}
% \DescribeMacro{\@oparbegintheorem}
%    \begin{macrocode}
\def\@oparbegintheorem#1#2#3{\trivlist
  \item[\hskip \labelsep{\bfseries #1\ #2.\ (#3)}]\itshape}
%    \end{macrocode}
%
% Enfin, nous avons ajouté un environnement |\proof| qui place un
% carré blanc en fin de preuve.
% \DescribeEnv{proof}
%    \begin{macrocode}
\newenvironment{proof}
  {{\raggedleft{\bf Preuve~:}}}%
  {\nopagebreak\par \hfill \fbox{\rule{0ex}{1ex}\hspace{1ex}\rule{0ex}{1ex}}%
    \hfil\par\medskip}
%    \end{macrocode}
%
% \subsection{Les remarques}
%
% Cet environnement est sans numérotation et utilise la taille
% |small|. Un diamant termine la remarque.
%
% \DescribeEnv{remark}
%    \begin{macrocode}
\newenvironment{remark}
  {\medskip{\raggedleft{\bf\small\remarkname~:}}\nopagebreak
    \begin{small}}
  {\end{small}\nopagebreak\par \hfill $\diamond$ \hfil\par\medskip}
%    \end{macrocode}
%
% \section{Les exemples}
%
% Cet environnement est du même type que |proof|, mais il permet de
% produire une table des exemples. L'environnement |example*| n'ajoute
% pas de ligne dans la liste des exemples et par conséquent, ne
% numérote pas l'exemple (de même qu'il n'a pas de titre).
%
% \DescribeEnv{example}
%    \begin{macrocode}
\newcounter{example}[chapter]
\renewcommand{\theexample}{\thechapter.\@arabic\c@example}
\newlength{\examplewidth}
\setlength{\examplewidth}{\textwidth}
\addtolength{\examplewidth}{-\parindent}
\newenvironment{example}[1]
  {\refstepcounter{example}%
    \addcontentsline{loe}{example}%
      {\protect\numberline{\theexample}{#1}}%
      \trivlist\item[\hskip \labelsep{\bf
        \examplename~\theexample~:}~#1.]%
    \hfil\par\nopagebreak
    \begin{small}}
  {\end{small}\endtrivlist}
\newenvironment{example*}
  {\trivlist\item[\hskip \labelsep{\bf \examplename~:}~]
    \begin{small}}
  {\end{small}\endtrivlist}
%    \end{macrocode}
%
% \DescribeMacro{\listofexamples}
%    \begin{macrocode}
\newcommand{\listofexamples}{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listexamplename
      \@mkboth{\uppercase{\listexamplename}}{\uppercase{\listexamplename}}}%
    \@starttoc{loe}%
    \if@restonecol\twocolumn\fi
    }
\newcommand*{\l@example}{\@dottedtocline{1}{1.5em}{2.3em}}
%    \end{macrocode}
%
% \section{Les énumérations}
%
% Sans changement par rapport à \texttt{report.cls}.
%
%    \begin{macrocode}
\if@twocolumn 
  \setlength\leftmargini {2em} 
\else
  \setlength\leftmargini {2.5em} 
\fi 
\setlength\leftmarginii {2.2em}
\setlength\leftmarginiii {1.87em} 
\setlength\leftmarginiv {1.7em}
\if@twocolumn 
  \setlength\leftmarginv {.5em}
  \setlength\leftmarginvi {.5em} 
\else 
  \setlength\leftmarginv {1em} 
  \setlength\leftmarginvi {1em} 
\fi 
\setlength\leftmargin {\leftmargini} 
\setlength \labelsep {.5em} 
\setlength \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep} 
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty 
\@itempenalty -\@lowpenalty
\renewcommand{\theenumi}{\arabic{enumi}}
\renewcommand{\theenumii}{\alph{enumii}}
\renewcommand{\theenumiii}{\roman{enumiii}}
\renewcommand{\theenumiv}{\Alph{enumiv}}
\newcommand{\labelenumi}{\theenumi.}
\newcommand{\labelenumii}{(\theenumii)}
\newcommand{\labelenumiii}{\theenumiii.}
\newcommand{\labelenumiv}{\theenumiv.}
\renewcommand{\p@enumii}{\theenumi}
\renewcommand{\p@enumiii}{\theenumi(\theenumii)}
\renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
\newcommand{\labelitemi}{$\m@th\bullet$}
\newcommand{\labelitemii}{\normalfont\bfseries --}
\newcommand{\labelitemiii}{$\m@th\ast$}
\newcommand{\labelitemiv}{$\m@th\cdot$} 
\newenvironment{description}%
  {\list{}{\labelwidth\z@ \itemindent-\leftmargin
      \divide \itemindent by 2
      \let\makelabel\descriptionlabel}} {\endlist}
\newcommand{\descriptionlabel}[1]{\hspace\labelsep
                                \normalfont\bfseries #1}
%    \end{macrocode}
%
% \section{La conclusion}
%
% \DescribeMacro{\conclusion}
% La commande |\conclusion| permet de mettre un chapitre numéroté en
% introduisant un plus grand saut dans le sommaire. Bien que prévu
% pour la conclusion, il peut être utilisé pour n'importe quel
% chapitre hors parties.
%
%    \begin{macrocode}
\newcommand{\conclusion}[1]{\addtocontents{toc}{\protect\addvspace{1.25em%
      \@plus\p@}}\chapter{#1}} 
%    \end{macrocode}
%
% \section{Les résumés et les mots-clés}
%
% Les résumés sont sur une page de droite, seuls. Ils y a deux
% environnements pour des résumés en français et en anglais. La page
% n'est pas numérotée.
%
% \DescribeEnv{resume}
%    \begin{macrocode}
\newenvironment{resume}{%
    \cleardoublepage
    \thispagestyle{empty}
    \vskip 30pt
    {\Large \bfseries \resumename} \par \vskip 10pt}
  {\par \vskip 30pt}
%    \end{macrocode}
% \DescribeEnv{abstract}
%    \begin{macrocode}
\newenvironment{abstract}{%
  \thispagestyle{empty}
  \vskip 40pt
  {\Large \bfseries \abstractname} \par \vskip 10pt}
  {\par \vfil \null}
%    \end{macrocode}
%
% Les mots clés ne sont pas sur une nouvelle page.
%
% \DescribeEnv{motscles}
%    \begin{macrocode}
\newenvironment{motscles}{%
    \vskip 40pt
    {\large \bfseries \motsclesname~:~}}
  {\par \vskip 30pt}
%    \end{macrocode}
% \DescribeEnv{keywords}
%    \begin{macrocode}
\newenvironment{keywords}{%
  \vskip 20pt
  {\large \bfseries \keywordsname~:~}}
  {\par \vfil \null}
%    \end{macrocode}
%
% \section{Les autres environnements}
%
% Ils sont sans changement par rapport à \texttt{report.cls}.
%
% \DescribeMacro{\verse}
% \DescribeMacro{\quotation}
% \DescribeMacro{\quote}
%    \begin{macrocode}
\newenvironment{verse}
               {\let\\=\@centercr
                \list{}{\itemsep      \z@
                        \itemindent   -1.5em%
                        \listparindent\itemindent
                        \rightmargin  \leftmargin
                        \advance\leftmargin 1.5em}%
                \item[]}
               {\endlist}
\newenvironment{quotation}
               {\list{}{\listparindent 1.5em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item[]}
               {\endlist}
\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item[]}
               {\endlist}
%    \end{macrocode}
%
% \section{Les corps flottants}
%
% Seul changement par rapport à \texttt{report.cls}~: les numéros de
% figures/tables dans la légende sont suivis d'un point.
%
% De plus, nous ajoutons l'environnement |figure|.
%
% \DescribeEnv{figure}
% \DescribeEnv{table}
%    \begin{macrocode}
\newcounter{figure}[chapter]
\renewcommand{\thefigure}{\thechapter.\@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{{\bf \figurename~\thefigure~: }}
\newenvironment{figure}
               {\@float{figure}}
               {\end@float}
\newenvironment{figure*}
               {\@dblfloat{figure}}
               {\end@dblfloat}
\newcounter{table}[chapter]
\renewcommand{\thetable}{\thechapter.\@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{{\bf \tablename~\thetable~: }}
\newenvironment{table}
               {\@float{table}}
               {\end@float}
\newenvironment{table*}
               {\@dblfloat{table}}
               {\end@dblfloat}
%    \end{macrocode}
%
% \subsection{Les légendes}
%
% \DescribeMacro{\caption}
%    \begin{macrocode}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1#2}%
  \ifdim \wd\@tempboxa >\hsize
    #1#2\par
  \else
    \global \@minipagefalse
    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
%    \end{macrocode}
%
% 
% \section{Les tables, index et bibliographies}
%
% \subsection{La table des matières}
% 
% \DescribeMacro{\tableofcontents}
%    \begin{macrocode}
\newcommand{\@pnumwidth}{1.55em}
\newcommand{\@tocrmarg} {2.55em}
\newcommand{\@dotsep}{4.5}
\setcounter{tocdepth}{2}
\newcommand{\tableofcontents}{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
    }
\newcommand*{\l@part}[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \begingroup
      \setlength\@tempdima{3em}%
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      {\leavevmode
       \Large \bfseries #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}
    \endgroup
  \fi}
\newcommand*{\l@chapter}[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\newcommand*{\l@section}      {\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*{\l@subsection}   {\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}}
\newcommand*{\l@paragraph}    {\@dottedtocline{4}{10em}{5em}}
\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}}
%    \end{macrocode}
%
% \subsection{Les listes des figures et des tables}
%
% \DescribeMacro{\listoffigures}
%    \begin{macrocode}
\newcommand{\listoffigures}{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listfigurename
      \@mkboth{\uppercase{\listfigurename}}%
              {\uppercase{\listfigurename}}}%
    \@starttoc{lof}%
    \if@restonecol\twocolumn\fi
    }
\newcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{3em}}
%    \end{macrocode}
% \DescribeMacro{\listoftables}
%    \begin{macrocode}
\newcommand{\listoftables}{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listtablename
      \@mkboth{\uppercase{\listtablename}}{\uppercase{\listtablename}}}%
    \@starttoc{lot}%
    \if@restonecol\twocolumn\fi
    }
\let\l@table\l@figure
%    \end{macrocode}
%
% \subsection{La bibliographie}
%
% La commande |\cite| est partiellement redéfinie pour tenir compte de
% l'option |draftbib|.
%
% \DescribeMacro{\@citex}
%    \begin{macrocode}
\def\@citex[#1]#2{%
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
      \edef\@citeb{\expandafter\@iden\@citeb}%
      \if@filesw\immediate\write\@auxout{%
        \string\citation{\@citeb}}%
      \if@draftbib\protected@write\@indexfile{}%
      {\string\indexentry{bibliographie!\@citeb}{\thepage}}\fi\fi
      \@ifundefined{b@\@citeb}{{\reset@font\bfseries ?}%
        \if@draftbib\marginpar{\footnotesize\it{\@citeb}}\fi%
        \G@refundefinedtrue\@latex@warning%
        {Citation `\@citeb' page \thepage \space indéfinie}}%
      {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
%    \end{macrocode}
%
% \DescribeEnv{thebibliography}
% Elle commence sur une page de droite, puisqu'elle est définie comme
% un chapitre.
%
%    \begin{macrocode}
\newdimen\bibindent
\bibindent=1.5em
\newenvironment{thebibliography}[1]
     {\chapter*{\bibname}
       \@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}%
      \addtocontents{toc}{\protect\addvspace{1.25em \@plus\p@}}
      \addcontentsline{toc}{chapter}{\bibname}%
      \addtocontents{lof}{\protect\addvspace{10\p@}}%
      \addtocontents{lot}{\protect\addvspace{10\p@}}%
      \list{\@biblabel{\arabic{enumiv}}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \if@openbib
              \advance\leftmargin\bibindent
              \itemindent -\bibindent
              \listparindent \itemindent
              \parsep \z@
            \fi
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand{\theenumiv}{\arabic{enumiv}}}%
      \if@openbib
        \renewcommand{\newblock}{\par}
      \else
        \renewcommand{\newblock}{\hskip .11em \@plus.33em \@minus.07em}%
      \fi
      \sloppy\clubpenalty4000\widowpenalty4000%
      \sfcode`\.=\@m}
     {\def\@noitemerr
       {\@latex@warning{Environnement `thebibliography' vide}}%
      \endlist}
%    \end{macrocode}
%
% \subsection{L'index}
%
% L'index est sur deux colonnes. Il est prévu qu'il soit traité par
% \texttt{makeindex} (éventuellement avec le fichier de style
% \texttt{lifia-th.ist}). Il démarre sur une page de droite dans le cas
% |twoside|.
%
% Joint à ce package, nous avons inclu une mise-à-jour de {\tt makeindex}
% ({\bf sur les sources de la version 2.12}) afin qu'il prenne en
% compte l'accentuation française. Il suffit de lancer {\tt makeindex}
% avec l'option {\tt -f}. Ceci est à utiliser conjointement avec le
% style {\tt lifia-th.ist} qui modifie le caractère {\tt quote} en
% {\tt \#}, afin d'éviter tout problème avec le tréma.
%
% De plus, nous redéfinissons la commande |\index| afin qu'en mode
% |draftindex| elle imprime la mot indexé en marge.
%
% La commande |\indexintro| peut être définie dans le
% fichier, afin de mettre une introduction à l'index.
%
% \DescribeMacro{\indexintro}
%    \begin{macrocode}
\newif\if@indexintro
\@indexintrofalse
\newcommand{\indexintro}[1]{\def\indexintrotext{#1} \@indexintrotrue}
%    \end{macrocode}
%
% \DescribeMacro{\@wrindex}
%    \begin{macrocode}
\def\@wrindex#1{\if@draftindex\marginpar{\footnotesize\it{#1}}\fi%
  \protected@write\@indexfile{}%
    {\string\indexentry{#1}{\thepage}}%
  \endgroup
  \@esphack
}
%    \end{macrocode}
%
% \DescribeEnv{theindex}
%    \begin{macrocode}
\newcommand{\newblock}{}
\newenvironment{theindex}
   {\if@twocolumn \@restonecoltrue \else \@restonecolfalse \twocolumn\fi%
    \if@indexintro \chapter*{\indexname\\[40pt]\indexintrotext}%
    \else \chapter*{\indexname} \fi%
    \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}%
    \addtocontents{toc}{\protect\addvspace{1.25em \@plus\p@}}
    \addcontentsline{toc}{chapter}{\indexname}%
    \addtocontents{lof}{\protect\addvspace{10\p@}}%
    \addtocontents{lot}{\protect\addvspace{10\p@}}%
    \columnseprule \z@%
    \columnsep 35\p@%
    \parskip\z@ \@plus .3\p@\relax
    \let\item\@idxitem}
  {\if@restonecol\clearpage\else\onecolumn\clearpage\fi}
\newcommand{\@idxitem}  {\par\hangindent 40\p@}
\newcommand{\subitem}   {\par\hangindent 40\p@ \hspace*{20\p@}}
\newcommand{\subsubitem}{\par\hangindent 40\p@ \hspace*{30\p@}}
\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@
  \@minus3\p@\relax}
%    \end{macrocode}
% À cela, nous rajoutons quelques commandes afin de pouvoir utiliser
% le fichier de style d'index \texttt{lifia-th.ist}.
%    \begin{macrocode}
\newif\ifscan@allowed
\def\efill{\hfill\nopagebreak}%
\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill}%
\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
               \dotfil~\ignorespaces}%
%    \end{macrocode}
%
% \section{Les noms francisés}
% \label{s-noms-francises}
%
%    \begin{macrocode}
\newcommand{\contentsname}{Table des matières}
\newcommand{\listfigurename}{Liste des figures}
\newcommand{\listtablename}{Liste des tables}
\newcommand{\listexamplename}{Liste des exemples}
\newcommand{\bibname}{Bibliographie}
\newcommand{\indexname}{Index}
\newcommand{\figurename}{Figure}
\newcommand{\tablename}{Table}
\newcommand{\examplename}{Exemple}
\newcommand{\remarkname}{Remarque}
\newcommand{\partname}{partie}
\newcommand{\thepartspell}%
  {\ifcase\value{part}\or
    Premi\`ere\or Deuxi\`eme\or %
    Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or %
    Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or %
    Onzi\`eme\or Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or %
    Quinzi\`eme\or Seizi\`eme\or Dix-septi\`eme\or Dix-huiti\`eme\or %
    Dix-neuvi\`eme\or Vingti\`eme\fi}
\newcommand{\chaptername}{Chapitre}
\newcommand{\appendixname}{Annexe}
\newcommand{\appendicesname}{Annexes}
\newcommand{\resumename}{Résumé}
\newcommand{\abstractname}{Abstract}
\newcommand{\motsclesname}{Mots clés}
\newcommand{\keywordsname}{Keywords}
\newcommand{\gradename}{pour obtenir le grade de Docteur \\%
        de l'Institut National Polytechnique de Grenoble \\%
        (Arr\^et\'e minist\'eriel du 23 novembre 1998)}
\newcommand{\soutname}{Soutenue le }
\newcommand{\laboname}{Th\`ese pr\'epar\'ee au sein du {\bf%
    L}aboratoire d'{\bf I}nformatique {\bf F}ondamentale et d'{\bf%
    I}ntelligence {\bf A}rtificielle}
\newcommand{\domainname}{Sp\'ecialit\'e~: informatique}
%    \end{macrocode}
% \DescribeMacro{\today}
%    \begin{macrocode}
\newcommand{\today}{\number\day\space \ifcase\month\or
  janvier\or février\or mars\or avril\or mai\or juin\or
  juillet\or août\or septembre\or octobre\or novembre\or décembre\fi
  \space \number\year}
%    \end{macrocode}
%
% \section{Les ponctuations doubles}
%
% Il s'agit de {\bf ;~:~!~?} qui nécessitent un espace avant. Nous
% définissons deux commandes (|\frenchpunct| et |\nofrenchpunct|) qui
% permettent de traiter ces signes comme des ponctuations françaises
% ou non. Tout d'abord, nous les définissons comme des caractères
% actifs, ensuite, il ne reste plus qu'à les définir en évitant
% d'ajouter un espace en mode {\tt math}.
%
% Tout d'abord, on sauvegarde les |\catcode| pour pouvoir les restituer~:
%    \begin{macrocode}
\newif\ifnofrpu
\if@frenchdp
  \global \chardef \sccode = \the \catcode `\;
  \global \chardef \cocode = \the \catcode `\:
  \global \chardef \emcode = \the \catcode `\!
  \global \chardef \qmcode = \the \catcode `\?
%    \end{macrocode}
%
% On rend ensuite actifs les caractères~:
% \DescribeMacro{\frenchpunct}
%    \begin{macrocode}
  \def\frenchpunct{%
    \catcode `\; \active
    \catcode `\: \active
    \catcode `\! \active
    \catcode `\? \active
    \nofrpufalse
    }
  \frenchpunct
%    \end{macrocode}
%
% On défini chaque caractère avec ses espacements~:
% \DescribeEnv{;}
%    \begin{macrocode}
  \def;{%
    \ifmmode \string;%
    \else \relax
      \ifnofrpu \string;%
      \else \relax
        \ifhmode
          \ifdim\lastskip>\z@
            \unskip\penalty\@M\thinspace
          \fi
        \fi
      \string;%
      \fi
    \fi}
%    \end{macrocode}
% \DescribeEnv{:}
%    \begin{macrocode}
  \def:{%
    \ifmmode \string:%
    \else \relax
      \ifnofrpu \string:%
      \else \relax
        \ifhmode
          \ifdim\lastskip>\z@
            \unskip\penalty\@M\thinspace
          \fi
        \fi
      \string:%
      \fi
    \fi}
%    \end{macrocode}
% \DescribeEnv{!}
%    \begin{macrocode}
  \def!{%
    \ifmmode \string!%
    \else \relax
      \ifnofrpu \string!%
      \else \relax
        \ifhmode
          \ifdim\lastskip>\z@
            \unskip\penalty\@M\thinspace
          \fi
        \fi
      \string!%
      \fi
    \fi}
%    \end{macrocode}
% \DescribeEnv{?}
%    \begin{macrocode}
  \def?{%
    \ifmmode \string?%
    \else \relax
      \ifnofrpu \string?%
      \else \relax
        \ifhmode
          \ifdim\lastskip>\z@
            \unskip\kern\fontdimen2\font\kern-1.4\fontdimen3\font
          \fi
        \fi
      \string?%
      \fi
    \fi}
%    \end{macrocode}
% \DescribeMacro{\nofrenchpunct}
%    \begin{macrocode}
  \def\nofrenchpunct{%
    \catcode `\; = \the \sccode
    \catcode `\: = \the \cocode
    \catcode `\! = \the \emcode
    \catcode `\? = \the \qmcode
    \nofrputrue
    }
\fi
%    \end{macrocode}
%
% \section{Divers}
%
% Quelques petits bouts de code divers ...
% \begin{description}
% \item[la commande {\tt cleardoublepage}~:]
% nous la redéfinissons afin d'éviter d'avoir les noms de chapitres
% imprimés au verso (dans le cas où le chapitre s'arrête sur le recto).
% \DescribeMacro{\cleardoublepage}
%    \begin{macrocode}
\renewcommand{\cleardoublepage}{%
  \clearpage
    \if@twoside
      \ifodd\c@page
      \else
        \thispagestyle{empty}\hbox{}\newpage
        \if@twocolumn\thispagestyle{empty}\hbox{}\newpage
        \fi
      \fi
    \fi}
%    \end{macrocode}
% \item[sur les notes de bas-de-page~:]
%    \begin{macrocode}
\renewcommand{\footnoterule}{%
  \kern-3\p@
  \hrule width .4\columnwidth
  \kern 2.6\p@}
\@addtoreset{footnote}{chapter}
\long\def\@makefntext#1{%
    \parindent 1em%
    \noindent
    \hbox to 1.8em{\hss\@makefnmark}#1}
%    \end{macrocode}
% \item[sur les tableaux~:]
%    \begin{macrocode}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
%    \end{macrocode}
% \item[sur la style de la page~:]
%    \begin{macrocode}
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
\pagestyle{headings}
\pagenumbering{arabic}
\if@twoside
\else
  \raggedbottom
\fi
\if@twocolumn
  \twocolumn
  \sloppy
  \flushbottom
\else
  \onecolumn
\fi
\skip\@mpfootins = \skip\footins
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
%    \end{macrocode}
% \item[sur la numérotation~:]
% Les commandes |\frontmatter| et |\mainmatter| permettent de changer
% le type de numérotation (resp. romain et arabe). Elles agissent
% comme dans le style \texttt{book}.
%
% \DescribeMacro{\frontmatter}
% \DescribeMacro{\mainmatter}
%    \begin{macrocode}
\newcommand{\frontmatter}{\cleardoublepage \pagenumbering{roman}}
\newcommand{\mainmatter}{\cleardoublepage \pagenumbering{arabic}}
%    \end{macrocode}
% \item[sur les équations~:]
%    \begin{macrocode}
\@addtoreset{equation}{chapter}
\renewcommand{\theequation}{\thechapter.\arabic{equation}}
%    \end{macrocode}
% \item[sur les fontes~:]
%    \begin{macrocode}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
%    \end{macrocode}
% \item[les guillemets~:]
%   \index{guillemets}
%    \begin{macrocode}
\catcode171=13
\def^^ab{\protect\raisebox{0.3ex}{%
    $\protect\scriptscriptstyle\protect\mathbf{\langle\!\langle\;}$}}
\catcode187=13
\def^^bb{\protect\raisebox{0.3ex}{%
    $\protect\scriptscriptstyle\protect\mathbf{\;\rangle\!\rangle}$}}
%    \end{macrocode}
% \item[les césures~:]
%   \index{césures}
%    \begin{macrocode}
\input frhyphex
%    \end{macrocode}
% \end{description}
%
% \section{Ouiiin ! ... ça marche pas !}
%
% Avant de m'envoyer un mail, regardez ci-dessous~:
% \begin{description}
% \item[chapter*] ou autres n'apparaissent pas dans le sommaire~:
%   ajouter une commande |\addcontentsline| après le chapitre (voir le
%   bouquin de Lamport), ou utilisez |\conclusion| ;
% \item[c'est pas la bonne référence] d'une figure, d'une table ou
%   d'un exemple~: placez la commande |\label| juste avant la fin de
%   l'environnement. Et hop !
% \item[le numéro de figure/exemple... colle au titre] dans la table
%   des figure/exemple. Rajoutez les lignes suivantes en préambule~:
%   \begin{verbatim}
%       % Fixe la boîte du numéro à 4em
%       \makeatletter
%       \renewcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{4em}}
%       \let\l@table\l@figure
%       \let\l@example\l@figure
%       \makeatother
%   \end{verbatim}
%   en ajustant éventuellement la taille à votre cas.
% \item[j'ai un] \begin{verbatim} ! Missing \endcsname
%   inserted. \end{verbatim} lorsqu'il lit une référence (ou autre
%   chose). Avez-vous une ponctuation double ({\bf :;?!}) et l'option
%   |frenchdp|~? Dans ce 
%   cas, changez la ponctuation par un tiret ou éliminez l'option. En
%   effet, en français, ces 
%   ponctuations sont entourées d'espaces et sont donc
%   |\active|. Sinon, donnez un coup de pied en haut à gauche de
%   l'écran pour remettre \LaTeXe en marche |;-)|.
% \item[il m'insulte avec un] \begin{verbatim} ! LaTeX Error: Too many
%   unprocessed floats. \end{verbatim}. Si vous êtes en mode
%   |draftindex| ou |draftbib|,
%   la classe produit une note pour les entrées dans l'index (ou la
%   biblio si l'entrée est inconnue). Soit
%   vous mettez une commande |\clearpage| pour termniner la page, soit
%   vous utilisez |\multindex| suivante~:
%   \begin{verbatim}
%     % Comme je l'ai faite assez ``brute'',
%     % elle accepte 5 entrées (mais cela devrait suffire ;-)).
%     \def\multindex{\@bsphack\begingroup \@sanitize\@wrmultindex}
%     \def\@wrmultindex#1#2#3#4#5{%
%       \if@draftindex\marginpar{%
%         \footnotesize\it{#1}\\{#2}\\{#3}\\{#4}\\{#5}}\fi%
%       \protected@write\@indexfile{}%
%         {\string\indexentry{#1}{\thepage}}%
%       \protected@write\@indexfile{}%
%         {\string\indexentry{#2}{\thepage}}%
%       \protected@write\@indexfile{}%
%         {\string\indexentry{#3}{\thepage}}%
%       \protected@write\@indexfile{}%
%         {\string\indexentry{#4}{\thepage}}%
%       \protected@write\@indexfile{}%
%         {\string\indexentry{#5}{\thepage}}%
%       \endgroup
%       \@esphack
%     }
%   \end{verbatim}
% \item[en mode draftindex] les indexations de formules maths donnent un
%   truc |*%$$#!!| en marge. Je sais. Je n'ai pas encore trouvé pourquoi
%   (et je n'ai plus le temps). Une manière de contourner le problème
%   est~:
%   \begin{verbatim}
%     \newcommand{\symindex}[1]{\index{\ensuremath{#1}}}
%     \newcommand{\multsymindex}[5]{
%       \multindex{\ensuremath{#1}|emphasize}{\ensuremath{#2}|emphasize}{%
%         \ensuremath{#3}|emphasize}{\ensuremath{#4}|emphasize}{%
%         \ensuremath{#5}|emphasize}}
%   \end{verbatim}
%   en éliminant les |$| autour des symboles indexés (sinon ils vont
%   être centrés dans l'index).
% \item[les césures] sont faites n'importe comment~! |frhyphex| ne
%   saurait tout savoir, il est toujours possible de rajouter des césures par
%   une commande |\hyphenation{liste_de_mots}|, où chaque mot de la
%   liste est séparé du suivant par un espace et où des tirets ont été
%   introduits aux endroits idoines (par ex. {\tt pré-condi-tion}.
% \item[les en-têtes] sont moches car le titre de mon chapitre est
%   trop long~: utilisez le paramètre optionnel de |\chapter|
%   (e.g. \\ 
%   |\chapter[Petite en-tête]{Et un trop long titre qui bave partout}|). 
% \item[je préfère ...]~: vous êtes un insatisfait :-)
% \end{description}
% \Finale
%</package>
\endinput
%%

