summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lifia-th/lifia-th.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/lifia-th/lifia-th.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/lifia-th/lifia-th.dtx')
-rw-r--r--macros/latex/contrib/lifia-th/lifia-th.dtx1789
1 files changed, 1789 insertions, 0 deletions
diff --git a/macros/latex/contrib/lifia-th/lifia-th.dtx b/macros/latex/contrib/lifia-th/lifia-th.dtx
new file mode 100644
index 0000000000..1f9b3643dc
--- /dev/null
+++ b/macros/latex/contrib/lifia-th/lifia-th.dtx
@@ -0,0 +1,1789 @@
+% \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
+%%
+