% \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} % % \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{./.ind}{\input{.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 | % | (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 | % | (huge) | % | ^ | % | vfill | % | v | % | Soutenue le ou rien (small) | = \soutname % | ^ | % | 1.5 cm | % | v | % | | % | ^ | % | 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 % \endinput %%