thesul.cls 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752
  1. %%
  2. %% This is file `thesul.cls',
  3. %% generated with the docstrip utility.
  4. %%
  5. %% The original source files were:
  6. %%
  7. %% thesul.dtx (with options: `tulkernel,tulannex')
  8. %%
  9. %% IMPORTANT NOTICE:
  10. %%
  11. %% For the copyright see the source file.
  12. %%
  13. %% Any modified versions of this file must be renamed
  14. %% with new filenames distinct from thesul.cls.
  15. %%
  16. %% For distribution of the original source see the terms
  17. %% for copying and modification in the file thesul.dtx.
  18. %%
  19. %% This generated file may be distributed as long as the
  20. %% original source files, as listed above, are part of the
  21. %% same distribution. (The sources need not necessarily be
  22. %% in the same archive or directory.)
  23. \def\filedate{2013/10/06}
  24. \def\fileversion{v0.14}
  25. \def\docdate{06/10/2013}
  26. %% \CharacterTable
  27. %% {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
  28. %% 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
  29. %% Digits \0\1\2\3\4\5\6\7\8\9
  30. %% Exclamation \! Double quote \" Hash (number) \#
  31. %% Dollar \$ Percent \% Ampersand \&
  32. %% Acute accent \' Left paren \( Right paren \)
  33. %% Asterisk \* Plus \+ Comma \,
  34. %% Minus \- Point \. Solidus \/
  35. %% Colon \: Semicolon \; Less than \<
  36. %% Equals \= Greater than \> Question mark \?
  37. %% Commercial at \@ Left bracket \[ Backslash \\
  38. %% Right bracket \] Circumflex \^ Underscore \_
  39. %% Grave accent \` Left brace \{ Vertical bar \|
  40. %% Right brace \} Tilde \~}
  41. %%
  42. \NeedsTeXFormat{LaTeX2e}[1995/12/01]
  43. \ProvidesClass{thesul}[\filedate\space
  44. LaTeX2e document class^^J
  45. \space\space\space\space\space\space\space\space
  46. \space\space\space\space\space\space\space\space\space
  47. =======(\fileversion\space D. Roegel, LORIA)=======]
  48. \newif\if@dont@load@french
  49. \@dont@load@frenchfalse
  50. \DeclareOption{nofrench}{\@dont@load@frenchtrue}
  51. \newif\if@minfrench
  52. \@minfrenchfalse
  53. \DeclareOption{minfrench}{%
  54. \if@dont@load@french
  55. \ClassWarning*{thesul}%
  56. {Option \string`nofrench\string' is ignored\MessageBreak
  57. when \string`minfrench\string' is present.}
  58. \else
  59. \@dont@load@frenchtrue
  60. \fi
  61. \@minfrenchtrue}
  62. \newif\if@dont@load@UTFVIII
  63. \@dont@load@UTFVIIIfalse
  64. \DeclareOption{noencoding}{\@dont@load@UTFVIIItrue}
  65. \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
  66. \ProcessOptions
  67. \LoadClass[a4paper]{book}[1995/01/31]
  68. \newcommand\@test@iffrench{%
  69. \if@minfrench
  70. \else
  71. \ifx\noenglishdoublequotes\@undefined % french
  72. \ifx\bbl@nonfrenchguillemets\@undefined % frenchb
  73. \ClassWarning{thesul}%
  74. {Beware! I think you have forgotten to load\MessageBreak
  75. a francization package.}%
  76. \fi
  77. \fi
  78. \fi
  79. }
  80. \AtBeginDocument{\@test@iffrench
  81. \let\annexe\Annexe
  82. \let\annexes\Annexes
  83. }
  84. \RequirePackage[T1]{fontenc}
  85. \if@dont@load@french
  86. \if@minfrench
  87. \RequirePackage[french]{babel}
  88. \frenchspacing
  89. \def\pagename{page}%
  90. \def\refname{R\'ef\'erences}%
  91. \def\abstractname{R\'esum\'e}%
  92. \def\bibname{Bibliographie}%
  93. \def\listfigurename{Table des figures}%
  94. \def\listtablename{Liste des tableaux}%
  95. \def\indexname{Index}%
  96. \def\seename{\emph{voir}}%
  97. \def\seealsoname{\emph{voir aussi}}%
  98. \def\figurename{\textsc{Fig.}}%
  99. \def\tablename{\textsc{Tab.}}%
  100. \def\partname{\protect\@RPt partie}%
  101. \def\@RPt{{\ifcase\value{part}\or Premi\`ere\or Deuxi\`eme\or %
  102. Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or %
  103. Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or %
  104. Onzi\`eme\or Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or %
  105. Quinzi\`eme\or Seizi\`eme\or Dix-septi\`eme\or
  106. Dix-huiti\`eme\or %
  107. Dix-neuvi\`eme\or Vingti\`eme\fi}\space\def\thepart{}}%
  108. \def\glossaryname{Glossaire}%
  109. \def\chaptername{Chapitre}%
  110. \def\appendixname{Annexe}%
  111. \ifx\ier\undefined\def\ier{er}\fi
  112. \def\today{\ifnum\day=1\relax 1\ier%
  113. \else \number\day\fi%
  114. \space\ifcase\month\or janvier\or f\'evrier\or mars\or %
  115. avril\or mai\or juin\or juillet\or ao\^ut\or septembre\or %
  116. octobre\or novembre\or d\'ecembre\fi \space\number\year}%
  117. \fi
  118. \else
  119. \RequirePackage[french]{babel}
  120. \fi
  121. \if@dont@load@UTFVIII
  122. \else
  123. \RequirePackage[utf8]{inputenc}
  124. \fi
  125. \newcommand{\@DFD}{\'Ecole doctorale IAEM Lorraine}
  126. \newcommand{\DFD}[1]{\renewcommand\@DFD{#1}}
  127. \newcommand{\@TUL@cmn@head}{\vskip1mm\noindent\hrulefill\\}
  128. \newcommand{\@ULhe@d}{{\UseEntryFont{ThesisFirstPageHead}\noindent
  129. \centerline{{\setbox0=\hbox{$\raise1.5cm\hbox{\ULLogo}$}%
  130. \ht0=\baselineskip\box0}\hfill\@DFD}}%
  131. \@TUL@cmn@head\par
  132. }
  133. \newtoks\@lab@tok
  134. \newtoks\@lab@tokii
  135. \@lab@tok={Laboratoire Lorrain de Recherche en Informatique et
  136. ses Applications --- UMR 7503}
  137. \newcommand{\SetLab}[1]{%
  138. \@lab@tok={#1}%
  139. }
  140. \newcommand{\AddLab}[1]{%
  141. \@lab@tokii={\\#1}%
  142. \@tokc@t\@lab@tok\@lab@tokii\@lab@tok
  143. }
  144. \newcommand{\@ThesisFirstPageFoot}%
  145. {\hrule
  146. \vskip2mm
  147. \begin{center}\UseEntryFont{ThesisFirstPageFoot}%
  148. \the\@lab@tok
  149. \end{center}
  150. \centerline{\if@logo@loria@
  151. $\raise\baselineskip\hbox{\LoriaLogo}$\hskip2.5cm%
  152. \fi}
  153. \vskip2mm
  154. }
  155. \newcommand\ThesisFirstPageFoot[1]%
  156. {\renewcommand{\@ThesisFirstPageFoot}{{#1}}}
  157. \newcommand{\@ThesisFirstPageHead}{\@ULhe@d}
  158. \newcommand\ThesisFirstPageHead[1]%
  159. {\renewcommand{\@ThesisFirstPageHead}{{#1}}}
  160. \newcommand{\@ThesisTitle}%
  161. {{\UseEntryFont{ThesisTitle}\fbox{\tt\char`\\ThesisTitle}\par}}
  162. \newcommand\ThesisTitle[1]%
  163. {\renewcommand{\@ThesisTitle}{{\UseEntryFont{ThesisTitle}#1\par}}}
  164. \newcommand{\@ThesisKind}{{\UseEntryFont{ThesisKind}TH\`ESE}}
  165. \newcommand\ThesisKind[1]%
  166. {\renewcommand{\@ThesisKind}{{\UseEntryFont{ThesisKind}#1}}}
  167. \newcommand{\@ThesisDate}{\fbox{{\tt\char`\\ThesisDate}}}
  168. \newcommand\ThesisDate[1]{\renewcommand{\@ThesisDate}{#1}}
  169. \newcommand{\@ThesisPresentedThe}{{\UseEntryFont{ThesisPresentedThe}%
  170. pr\'esent\'ee et soutenue publiquement le \@ThesisDate}}
  171. \newcommand\ThesisPresentedThe[1]%
  172. {\renewcommand{\@ThesisPresentedThe}{{\UseEntryFont{ThesisPresentedThe}#1}}}
  173. \newcommand{\@ThesisInOrderToGet}%
  174. {{\UseEntryFont{ThesisInOrderToGet}pour l'obtention du}}
  175. \newcommand\ThesisInOrderToGet[1]%
  176. {\renewcommand{\@ThesisInOrderToGet}{{\UseEntryFont{ThesisInOrderToGet}#1}}}
  177. \newcommand{\@ThesisDomain}{mention informatique}
  178. \newcommand\ThesisDomain[1]{\renewcommand{\@ThesisDomain}{#1}}
  179. \newcommand\ThesisUL{\renewcommand{\@ThesisFirstPageHead}{\@ULhe@d}%
  180. \ThesisDiploma{{\UseEntryFont{ThesisDiploma}%
  181. Doctorat de l'Universit\'e de Lorraine\\[3mm]
  182. {\UseEntryFont{ThesisSpecialty}(\@ThesisDomain)}}}}
  183. \newcommand\HdrUL{\ThesisInOrderToGet{pour l'obtention d'une}%
  184. \renewcommand{\@ThesisFirstPageHead}{\@ULhe@d}%
  185. \ThesisDiploma{{\UseEntryFont{ThesisDiploma}%
  186. Habilitation de l'Universit\'e de Lorraine\\[3mm]
  187. {\UseEntryFont{ThesisSpecialty}(\@ThesisDomain)}}}}
  188. \newcommand\MasterUL{\ThesisKind{Rapport}%
  189. \renewcommand{\@ThesisFirstPageHead}{\@ULhe@d}%
  190. \ThesisDiploma{{\UseEntryFont{ThesisDiploma}%
  191. Master de l'Universit\'e de Lorraine\\[3mm]
  192. {\UseEntryFont{ThesisSpecialty}(\@ThesisDomain)}}}}
  193. \newcommand{\@ThesisDiploma}%
  194. {\fbox{Choisir {\tt\char`\\ThesisUL}, {\tt\char`\\HDRUL} ou {\tt\char`\\MasterUL}}}
  195. \newcommand\ThesisDiploma[1]%
  196. {\renewcommand{\@ThesisDiploma}{{\UseEntryFont{ThesisDiploma}#1}}}
  197. \newcommand{\@ThesisPresentedBy}{{\UseEntryFont{ThesisPresentedBy}par}}
  198. \newcommand\ThesisPresentedBy[1]%
  199. {\renewcommand{\@ThesisPresentedBy}{{\UseEntryFont{ThesisPresentedBy}#1}}}
  200. \newcommand{\@ThesisAuthor}%
  201. {{\UseEntryFont{ThesisAuthor}%
  202. \fbox{\'ecrire \tt\char`\\ThesisAuthor\{ l'auteur \}}}}
  203. \newcommand\ThesisAuthor[1]%
  204. {\renewcommand{\@ThesisAuthor}{{\UseEntryFont{ThesisAuthor}#1}}}
  205. \newcommand{\@ThesisJuryTitle}%
  206. {{\UseEntryFont{ThesisJuryTitle}Composition du jury}}
  207. \newcommand\ThesisJuryTitle[1]%
  208. {\renewcommand{\@ThesisJuryTitle}{{\UseEntryFont{ThesisJuryTitle}#1}}}
  209. \newcommand\LoriaLogo{%
  210. \vtop to0pt{%
  211. \hbox{}\hbox to0pt{\includegraphics[scale=.2]{tulloria}\hss}\vss}%
  212. }
  213. \newcommand\ULLogo{%
  214. \vtop to0pt{\hbox{}\hbox to0pt{\includegraphics[scale=1]{tulul}\hss}\vss}%
  215. }
  216. \newif\if@logos@
  217. \newif\if@logo@ul@
  218. \newif\if@logo@loria@
  219. \AtBeginDocument{\if@logos@\ifx\includegraphics\undefined
  220. \RequirePackage{graphicx}
  221. \ifnum\pdfoutput=0
  222. \edef\Gin@extensions{.eps,\Gin@extensions}
  223. \else
  224. \edef\Gin@extensions{.pdf,\Gin@extensions}
  225. \fi
  226. \fi
  227. \fi}
  228. \newcommand\ShowLogos{%
  229. \message{*** \string\ShowLogos\space is now the default ******^^J}}
  230. \newcommand\ShowLogoUL{\@logos@true\@logo@ul@true}
  231. \newcommand\ShowLogoLORIA{\@logos@true\@logo@loria@true}
  232. \newcommand\DontShowLogos{\@logos@false\@logo@ul@false}
  233. \@onlypreamble\ShowLogos
  234. \@onlypreamble\ShowLogoUL
  235. \@onlypreamble\ShowLogLORIA
  236. \@onlypreamble\DontShowLogos
  237. \ShowLogoUL
  238. \newcommand\SetEntryFont[2]{\expandafter\def\csname @#1font\endcsname{#2}}
  239. \newcommand\SetTULFont[7]{\expandafter\def\csname @#1font\endcsname
  240. {\TULusefont{#2}{#3}{#4}{#5}{#6}{#7}}}
  241. \newcommand\UseEntryFont[1]{\csname @#1font\endcsname}
  242. \newcommand{\TULusefont}[6]{\fontsize{#5}{#6}\usefont{#1}{#2}{#3}{#4}}
  243. \newcommand{\TitlePageFontFamily}{cmr}
  244. \newcommand{\TitlePageFontEncoding}{OT1}
  245. \SetTULFont{ThesisFirstPageHead}%
  246. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{10}{14}%
  247. \SetTULFont{ThesisTitle}%
  248. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{25}{30}%
  249. \SetTULFont{ThesisKind}%
  250. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{20.74}{25}%
  251. \SetTULFont{ThesisPresentedThe}%
  252. {\TitlePageFontEncoding}{\TitlePageFontFamily}{m}{n}{10.95}{13}%
  253. \SetTULFont{ThesisInOrderToGet}%
  254. {\TitlePageFontEncoding}{\TitlePageFontFamily}{m}{n}{10.95}{13}%
  255. \SetTULFont{ThesisDiploma}%
  256. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{14}{18}%
  257. \SetTULFont{ThesisSpecialty}%
  258. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{10.95}{13}%
  259. \SetTULFont{ThesisPresentedBy}%
  260. {\TitlePageFontEncoding}{\TitlePageFontFamily}{m}{n}{10.95}{13}%
  261. \SetTULFont{ThesisAuthor}%
  262. {\TitlePageFontEncoding}{\TitlePageFontFamily}{m}{n}{14}{18}%
  263. \SetTULFont{ThesisJuryTitle}%
  264. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{10.95}{13}%
  265. \SetTULFont{ThesisJury}%
  266. {\TitlePageFontEncoding}{\TitlePageFontFamily}{m}{n}{10.95}{13}%
  267. \SetTULFont{ThesisFirstPageFoot}%
  268. {\TitlePageFontEncoding}{\TitlePageFontFamily}{bx}{n}{10}{14}%
  269. \newtoks\@jury@tokI
  270. \newtoks\@jury@tokII
  271. \newcommand\@tokc@t[3]{%
  272. \edef\@tokconc@t{\the#1\the#2}%
  273. #3=\expandafter{\@tokconc@t}%
  274. }
  275. \newtoks\@thesis@jury
  276. \newcommand{\NewJuryCategory}[3]{%
  277. \expandafter\newtoks\csname#1\endcsname
  278. \csname#1\endcsname={}%
  279. \expandafter\def\csname#1@title\endcsname{{#2}{#3}}%
  280. \@jury@tokI=\expandafter{\csname#1\endcsname}%
  281. \@tokc@t\@thesis@jury\@jury@tokI\@thesis@jury
  282. \@jury@tokI=\expandafter{\csname#1@title\endcsname}%
  283. \@tokc@t\@thesis@jury\@jury@tokI\@thesis@jury
  284. }
  285. \newcommand{\ClearJury}{\@thesis@jury={}}
  286. \ClearJury
  287. \NewJuryCategory{President}{\textit{Pr\'esident :}}{\textit{Pr\'esidents :}}
  288. \NewJuryCategory{Rapporteurs}{\textit{Rapporteur :}}{\textit{Rapporteurs :}}
  289. \NewJuryCategory{Examinateurs}{\textit{Examinateur :}}{\textit{Examinateurs :}}
  290. \NewJuryCategory{Invites}{\textit{Invit\'e :}}{\textit{Invit\'es :}}
  291. \NewJuryCategory{Encadrants}{\textit{Encadrant :}}{\textit{Encadrants :}}
  292. \def\@selecti#1{\expandafter\@@selecti#1}
  293. \def\@@selecti#1#2{{#1}}
  294. \def\@selectii#1{\expandafter\@@selectii#1}
  295. \def\@@selectii#1#2{{#2}}
  296. \newcommand\@buildjury[1]{%
  297. \@jury@tokI={\bgroup\UseEntryFont{ThesisJury}\begin{tabular}{lll}}%
  298. \expandafter\@@buildjury\the#1/%
  299. \@jury@tokII={\end{tabular}\egroup}%
  300. \@tokc@t\@jury@tokI\@jury@tokII\@jury@tokI
  301. \the\@jury@tokI
  302. }
  303. \def\@@buildjury#1#2#3/{%
  304. \def\@tmpa{#3}%
  305. \ifx\@tmpa\@empty
  306. \def\@tmpa{#1}%
  307. \ifx\@tmpa\@empty
  308. \else\@buildentry#1#2%
  309. \fi
  310. \else
  311. \@buildentry#1#2%
  312. \@@buildjury#3/%
  313. \fi
  314. }
  315. \newcommand\@buildentry[2]{\expandafter\@buildtable\the#1\\/#2}
  316. \def\@buildtable#1\\#2/#3{%
  317. \def\@tmpa{#1}%
  318. \ifx\@tmpa\@empty
  319. \else
  320. \def\@tmpa{#2}%
  321. \ifx\@tmpa\@empty
  322. \@jury@tokII={\@selecti#3&#1\\}%
  323. \@tokc@t\@jury@tokI\@jury@tokII\@jury@tokI
  324. \else
  325. \@jury@tokII={\@selectii#3&#1\\}%
  326. \@tokc@t\@jury@tokI\@jury@tokII\@jury@tokI
  327. \@@buildtable#2/%
  328. \fi
  329. \@jury@tokII={[3mm]}%
  330. \@tokc@t\@jury@tokI\@jury@tokII\@jury@tokI
  331. \fi
  332. }
  333. \def\@@buildtable#1\\#2/{%
  334. \@jury@tokII={&#1\\}%
  335. \@tokc@t\@jury@tokI\@jury@tokII\@jury@tokI
  336. \def\@tmpa{#2}%
  337. \ifx\@tmpa\@empty
  338. \else\@@buildtable#2/%
  339. \fi
  340. }
  341. \newcommand\@ThesisJury{\@buildjury\@thesis@jury}
  342. \newlength\@bindingshift
  343. \setlength\@bindingshift{0pt}
  344. \newcommand\SetBinding[1]{%
  345. \setlength\@bindingshift{#1}%
  346. \divide\@bindingshift2\relax
  347. }
  348. \let\SetBounding\SetBinding % compatibilite'
  349. \newcommand\@titlepage@height{24.5cm}
  350. \newcommand\@titlepage@width{17cm}
  351. \newlength\@htitlepageshift
  352. \newcommand{\@cover@hook}{}
  353. \newcommand{\MakeThesisTitlePage}%
  354. {%
  355. \newpage
  356. \@cover@hook
  357. \setlength\@htitlepageshift{\paperwidth}%
  358. \addtolength\@htitlepageshift{-\@titlepage@width}%
  359. \divide\@htitlepageshift2
  360. \addtolength\@htitlepageshift{-1in}%
  361. \thispagestyle{empty}%
  362. \vglue-\topmargin
  363. \vglue-\headheight
  364. \vglue-\headsep
  365. \vglue-5mm
  366. \hglue-\ifodd\c@page\oddsidemargin\else\evensidemargin\fi
  367. \hglue\@htitlepageshift
  368. \hglue-\parindent
  369. \hglue\@bindingshift
  370. \rlap{\vbox to0pt{
  371. \vbox to\@titlepage@height
  372. {\hsize\@titlepage@width
  373. \fontencoding{OT1}\fontsize{10}{12}\selectfont
  374. \@thesis@titlep@gebody
  375. }
  376. \vss
  377. }%
  378. }\par
  379. \newpage
  380. \if@twoside
  381. \thispagestyle{empty}
  382. \hbox{}
  383. \par\vfill\@dcd\@p@ndor@
  384. \newpage
  385. \addtocounter{page}{-2}%
  386. \else
  387. \addtocounter{page}{-1}%
  388. \fi
  389. }%
  390. \newcommand\@thesis@titlep@gebody{%
  391. %---------------------------------------------------
  392. \@ThesisFirstPageHead
  393. \vskip10mm plus2fil
  394. \begin{center}
  395. \@ThesisTitle
  396. \vskip10mm plus2fil
  397. \@ThesisKind
  398. \vskip5mm plus2fil
  399. \@ThesisPresentedThe
  400. \vskip3mm plus1fil
  401. \@ThesisInOrderToGet
  402. \vskip5mm plus1fil
  403. \@ThesisDiploma
  404. \vskip3mm plus1fil
  405. \@ThesisPresentedBy
  406. \vskip3mm plus1fil
  407. \@ThesisAuthor
  408. \end{center}
  409. \vskip5mm plus2fil
  410. \hskip1cm\@ThesisJuryTitle
  411. \begin{center}
  412. \@ThesisJury
  413. \end{center}
  414. \vskip5mm
  415. \@ThesisFirstPageFoot
  416. %---------------------------------------------------
  417. }%
  418. {\catcode\lq\`=12
  419. \gdef\@p@ndor@{Lhr*dm*o`fd*`udb*k`*bk`rrd*sgdrtk-}
  420. }
  421. \def\@dcd#1{\expandafter\@@dcd#1/}
  422. \def\@@dcd#1#2/{\def\@l@st{#2}%
  423. \if#1*\space
  424. \else{\count0=\lq#1\advance\count0by1\char\count0 }%
  425. \fi
  426. \ifx\@l@st\empty\let\next=\relax
  427. \else\def\next{\@@dcd#2/}\fi\next}
  428. \def\nthks{\def\@p@ndor@{*}}
  429. \newcommand\@doublepage@kernel{\if@twoside \ifodd\c@page\else
  430. \hbox{}\@empty@ps@cmd\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
  431. \newcommand\@newdoublepage{\newpage\@doublepage@kernel}
  432. \newcommand\@newevendoublepage{\@doublepage@kernel
  433. \hbox{}\@empty@ps@cmd\newpage}
  434. \def\cleardoublepage{\clearpage\@doublepage@kernel}
  435. \newcommand\@framechaptersintoc{\def\@chaptersnotframedintoc{F}}
  436. \newcommand\@dontframechaptersintoc{\def\@chaptersnotframedintoc{T}}
  437. \newcommand\FrameChaptersInToc{%
  438. \@write@thisfl@gintoc\@framechaptersintoc
  439. \@framechaptersintoc
  440. }
  441. \newcommand\DontFrameChaptersInToc{%
  442. \@write@thisfl@gintoc\@dontframechaptersintoc
  443. \@dontframechaptersintoc
  444. }
  445. \@dontframechaptersintoc
  446. \newcommand\@framepartsintoc{\def\@partsnotframedintoc{F}}
  447. \newcommand\@dontframepartsintoc{\def\@partsnotframedintoc{T}}
  448. \newcommand\FramePartsInToc{%
  449. \@write@thisfl@gintoc\@framepartsintoc
  450. \@framepartsintoc
  451. }
  452. \newcommand\DontFramePartsInToc{%
  453. \@write@thisfl@gintoc\@dontframepartsintoc
  454. \@dontframepartsintoc
  455. }
  456. \@dontframepartsintoc
  457. \newcommand\@write@thisfl@gintoc[1]{%
  458. {%
  459. \let\protect\@unexpandable@protect
  460. \edef\@tempa{%
  461. \write\@auxout{\string\@writefile{toc}{\protect#1}}}%
  462. \@tempa
  463. }%
  464. }%
  465. \newif\if@frame@switch
  466. \@frame@switchfalse
  467. \AtBeginDocument{\@write@thisfl@gintoc\@frame@switchfalse}
  468. \newif\if@thisnotframed
  469. \@thisnotframedtrue
  470. \newcommand\FrameThisInToc{%
  471. \@write@thisfl@gintoc\@frame@switchtrue
  472. \global\@frame@switchtrue % important pour le reset
  473. \@write@thisfl@gintoc\@thisnotframedfalse
  474. \global\@thisnotframedfalse
  475. }
  476. \newcommand\DontFrameThisInToc{%
  477. \@write@thisfl@gintoc\@frame@switchtrue
  478. \global\@frame@switchtrue % important pour le reset
  479. \@write@thisfl@gintoc\@thisnotframedtrue
  480. \global\@thisnotframedtrue
  481. }
  482. \newcommand\reset@frame@switch{%
  483. \if@frame@switch
  484. \@write@thisfl@gintoc\@frame@switchfalse
  485. \global\@frame@switchfalse
  486. \fi
  487. }
  488. \def\@define@l@chapter{%
  489. \ifx\l@chapter\undefined
  490. \newcommand\l@chapter[2]{\l@genericfr@me{chapter}{##1}{##2}}%
  491. \else
  492. \renewcommand\l@chapter[2]{\l@genericfr@me{chapter}{##1}{##2}}%
  493. \fi
  494. \let\l@tulstarchapter\l@chapter
  495. }
  496. \AtBeginDocument{\@define@l@chapter}
  497. \newcommand\l@spsection[2]{%
  498. \ifnum \c@tocdepth >\m@ne
  499. \addpenalty{-\@highpenalty}%
  500. \vskip 1.0em \@plus\p@
  501. \setlength\@tempdima{1.5em}%
  502. \begingroup
  503. \parindent\z@ \rightskip\@pnumwidth
  504. \parfillskip -\@pnumwidth
  505. \advance\leftskip\@tempdima
  506. \hskip -\leftskip\relax
  507. \l@main@line{C}{Y}{#1}{#2}%
  508. \penalty\@highpenalty
  509. \endgroup
  510. \fi}
  511. \renewcommand\l@part[2]{\l@genericfr@me{part}{#1}{#2}}
  512. \let\l@starpart\l@part
  513. \newcommand\l@genericfr@me[3]{% #1=chapter ou part
  514. \def\@framed@{}% default=yes
  515. \if@frame@switch
  516. \if@thisnotframed
  517. \def\@framed@{no}%
  518. \fi
  519. \else
  520. \if T\csname @#1snotframedintoc\endcsname
  521. \def\@framed@{no}%
  522. \fi
  523. \fi
  524. \csname l@#1if\@framed@ frame\endcsname{#2}{#3}%
  525. }%
  526. \newcommand\@fr@mew@rning[2]{% #1=chapter ou part
  527. \if@frame@switch
  528. \if T\csname @#1snotframedintoc\endcsname
  529. \if@thisnotframed
  530. \ClassWarning{thesul}{The command
  531. \protect\DontFrameThisInToc\space
  532. has no use,\MessageBreak
  533. since by default,
  534. no #2 entry is framed,\MessageBreak}%
  535. \fi
  536. \else
  537. \if@thisnotframed
  538. \else
  539. \ClassWarning{thesul}{The command \protect\FrameThisInToc\space
  540. has no use,\MessageBreak
  541. since by default,
  542. all #2 entries are framed,\MessageBreak}%
  543. \fi
  544. \fi
  545. \fi
  546. }
  547. \newcommand\@number@w@rning[1]{% #1 =chapter ou part
  548. \def\@framed@{Y}% default=yes
  549. \if@frame@switch
  550. \if@thisnotframed
  551. \def\@framed@{N}%
  552. \fi
  553. \else
  554. \if T\csname @#1snotframedintoc\endcsname
  555. \def\@framed@{N}%
  556. \fi
  557. \fi
  558. \if@numbertocswitch
  559. \if@numberintoc
  560. \ifx\@framed@ N%
  561. \ClassWarning{thesul}{The command
  562. \protect\NumberThisInToc\space
  563. has no use here,\MessageBreak}%
  564. \fi
  565. \else
  566. \ifx\@framed@ Y%
  567. \ClassWarning{thesul}{The command
  568. \protect\DontNumberThisInToc\space
  569. has no use here,\MessageBreak}%
  570. \fi
  571. \fi
  572. \fi
  573. }
  574. \newcommand\l@partifnoframe[2]{%
  575. \ifnum \c@tocdepth >-2\relax
  576. \addpenalty{-\@highpenalty}%
  577. \addvspace{2.25em \@plus\p@}%
  578. \begingroup
  579. \setlength\@tempdima{3em}%
  580. \parindent \z@ \rightskip \@pnumwidth
  581. \parfillskip -\@pnumwidth
  582. \l@main@line{P}{Y}{#1}{#2}%
  583. \nobreak
  584. \global\@nobreaktrue
  585. \everypar{\global\@nobreakfalse\everypar{}}
  586. \endgroup
  587. \fi}
  588. \newcommand\l@partifframe[2]{%
  589. \ifnum \c@tocdepth >-2\relax
  590. \addpenalty{-\@highpenalty}%
  591. \addvspace{2.25em \@plus\p@}%
  592. \begingroup
  593. \setlength\@tempdima{3em}%
  594. \setlength\@tempdimb{6.4pt}%
  595. \setlength\@tempdimc{10pt}%
  596. \advance\@tempdimb\@tempdimc
  597. \vskip2\baselineskip plus\baselineskip minus\baselineskip
  598. \moveleft\@tempdimc
  599. \vbox{%
  600. \advance\hsize\@tempdimc
  601. \parindent \z@
  602. \hrule
  603. \vskip1mm%
  604. \hrule
  605. \hbox{%
  606. \strut\hskip10pt%
  607. \vbox{%
  608. \advance\hsize-10pt%
  609. \vskip.5\baselineskip
  610. \parindent \z@ \rightskip \z@
  611. \l@main@line{P}{N}{#1}{#2}%
  612. \nobreak
  613. \global\@nobreaktrue
  614. \everypar{\global\@nobreakfalse\everypar{}}%
  615. \vskip.4\baselineskip
  616. }% \vbox
  617. }% \hbox
  618. \hrule
  619. \vskip1mm%
  620. \hrule
  621. }% \vbox
  622. \vskip2\baselineskip plus\baselineskip minus\baselineskip
  623. \endgroup
  624. \fi}
  625. \let\@cutline=\par % for further customization
  626. \newcommand\l@chapterifnoframe[2]{%
  627. \ifnum \c@tocdepth >\m@ne
  628. \addpenalty{-\@highpenalty}%
  629. \vskip 1.0em \@plus\p@
  630. \setlength\@tempdima{1.5em}%
  631. \begingroup
  632. \parindent \z@ \rightskip \@pnumwidth
  633. \parfillskip -\@pnumwidth
  634. \if@there@were@p@rts\advance\leftskip20pt\fi
  635. \l@main@line{C}{Y}{#1}{#2}%
  636. \penalty\@highpenalty
  637. \endgroup
  638. \fi}
  639. \newcommand\l@chapterifframe[2]{%
  640. \ifnum \c@tocdepth >\m@ne
  641. \addpenalty{-\@highpenalty}%
  642. \vskip 1.0em \@plus\p@
  643. \setlength\@tempdima{1.5em}%
  644. \setlength\@tempdimb{6.4pt}%
  645. \setlength\@tempdimc{20pt}%
  646. \if@there@were@p@rts\advance\@tempdimb-\@tempdimc\fi
  647. \begingroup
  648. \moveleft\@tempdimb
  649. \vbox{%
  650. \hrule
  651. \hbox{%
  652. \vrule
  653. \strut\hskip6pt%
  654. \vbox{%
  655. \advance\hsize-6pt%
  656. \if@there@were@p@rts\advance\hsize-\@tempdimc\fi
  657. \parindent\z@
  658. \rightskip\@pnumwidth
  659. \parskip\z@
  660. \def\numberline##1{%
  661. {%
  662. \setbox0=\hbox{##1}%
  663. \ifdim\wd0<\@tempdima
  664. \ifdim\wd0=0pt%
  665. \else
  666. \hbox to\@tempdima{##1\hfil}%
  667. \@cutline
  668. \fi
  669. \else
  670. ##1%
  671. \@cutline
  672. \fi
  673. }%
  674. }%
  675. \l@main@line{C}{N}{#1}{#2}%
  676. }%
  677. \hskip6pt%
  678. \vrule
  679. }%
  680. \hrule
  681. }%
  682. \penalty\@highpenalty
  683. \endgroup
  684. \fi
  685. }
  686. \newif\if@paragraph@shift
  687. \let\@dottedtocline@old\@dottedtocline
  688. \def\@dottedtocline#1#2#3#4#5{\setlength\@tempdimb{#2}%
  689. \if@there@were@p@rts\if@paragraph@shift\advance\@tempdimb20pt%
  690. \@paragraph@shiftfalse\fi\fi
  691. \@dottedtocline@old{#1}{\@tempdimb}{#3}{#4}{#5}}
  692. \renewcommand*\l@section{\@paragraph@shifttrue\@dottedtocline{1}{1.5em}{2.3em}}
  693. \renewcommand*\l@subsection{\@paragraph@shifttrue
  694. \@dottedtocline{2}{3.8em}{3.2em}}
  695. \renewcommand*\l@subsubsection{\@paragraph@shifttrue
  696. \@dottedtocline{3}{7.0em}{4.1em}}
  697. \renewcommand*\l@paragraph{\@paragraph@shifttrue\@dottedtocline{4}{10em}{5em}}
  698. \renewcommand*\l@subparagraph{\@paragraph@shifttrue
  699. \@dottedtocline{5}{12em}{6em}}
  700. \renewcommand*\l@figure{\@paragraph@shiftfalse\@dottedtocline{1}{1.5em}{2.3em}}
  701. \let\l@table\l@figure
  702. \let\frontmatter=\undefined
  703. \let\backmatter=\undefined
  704. \newif\if@numberintoc
  705. \@numberintoctrue
  706. \newif\if@numbertocswitch
  707. \@numbertocswitchfalse
  708. \newcommand\DontNumberThisInToc{%
  709. \@write@thisfl@gintoc\@numbertocswitchtrue
  710. \global\@numbertocswitchtrue % important pour le reset
  711. \@write@thisfl@gintoc\@numberintocfalse
  712. \global\@numberintocfalse
  713. }
  714. \newcommand\NumberThisInToc{
  715. \@write@thisfl@gintoc\@numbertocswitchtrue
  716. \global\@numbertocswitchtrue % important pour le reset
  717. \@write@thisfl@gintoc\@numberintoctrue
  718. \global\@numberintoctrue
  719. }
  720. \newcommand\reset@numbertocswitch{%
  721. \if@numbertocswitch
  722. \@write@thisfl@gintoc\@numbertocswitchfalse
  723. \global\@numbertocswitchfalse
  724. \fi
  725. }
  726. \newcommand\l@main@line[4]{%
  727. {\leavevmode
  728. \if#1P%
  729. \large
  730. \fi
  731. \bfseries
  732. \strut#3%
  733. \if@numbertocswitch
  734. \if@numberintoc
  735. \nobreak\hfill \nobreak\hbox to\@pnumwidth{\hss #4}%
  736. \fi
  737. \@numbertocswitchfalse
  738. \else
  739. \if#2Y%
  740. \nobreak\hfill \nobreak\hbox to\@pnumwidth{\hss #4}%
  741. \fi
  742. \fi
  743. \hfil\strut
  744. \par}%
  745. }
  746. \newif\if@intoc
  747. \@intoctrue
  748. \newif\if@tocswitch
  749. \@tocswitchfalse
  750. \newcommand\DontWriteThisInToc{\global\@tocswitchtrue\global\@intocfalse}
  751. \newcommand\WriteThisInToc{\global\@tocswitchtrue\global\@intoctrue}
  752. \newcounter{division}
  753. \newcommand{\@division@inc@hook}{\addtocounter{division}{1}}
  754. \def\numberline#1{{%
  755. \setbox0=\hbox{#1}%
  756. \ifdim\wd0<\@tempdima
  757. \hbox to\@tempdima{#1\hfil}%
  758. \else
  759. #1\ %
  760. \fi}}
  761. \def\@chapter[#1]#2{\@generic@chapter{chapter}[#1]{#2}}
  762. \newcommand{\@generic@chapter@hook}[3]{}
  763. \newcommand{\@generic@chapter@lasthook}[3]{}
  764. \def\@generic@chapter#1[#2]#3{%
  765. \global\@tocswitchfalse
  766. \@division@inc@hook
  767. \@generic@chapter@hook{#1}{#2}{#3}%
  768. \ifnum \c@secnumdepth >\m@ne
  769. \refstepcounter{#1}%
  770. \typeout{\@chapapp\space\thechapter.}%
  771. \addcontentsline{toc}{chapter}%
  772. {\protect\numberline{\@chapter@title\thechapter}#2}%
  773. \else
  774. \addcontentsline{toc}{chapter}{#2}
  775. \fi
  776. \@fr@mew@rning{chapter}{#1}%
  777. \@number@w@rning{chapter}%
  778. \reset@numbertocswitch
  779. \reset@frame@switch
  780. \let\@chaptermark\orig@chaptermark
  781. \pagestyle{\current@ps}%
  782. \chaptermark{#2}%
  783. \addtocontents{lof}{\protect\addvspace{10\p@}}%
  784. \addtocontents{lot}{\protect\addvspace{10\p@}}%
  785. \if@twocolumn
  786. \@topnewpage[\@makechapterhead{#3}]%
  787. \else
  788. \@makechapterhead{#3}%
  789. \@afterheading
  790. \fi
  791. \ChapterPrefix
  792. \@generic@chapter@lasthook{#1}{#2}{#3}%
  793. }
  794. \newcommand{\@part@hook}[2]{}
  795. \def\@part[#1]#2{%
  796. \@division@inc@hook
  797. \@part@hook{#1}{#2}%
  798. \ifnum \c@secnumdepth >-2\relax
  799. \refstepcounter{part}%
  800. % \@part@title ajoute' ici (21 juin 1994)
  801. \addcontentsline{toc}{part}{\@part@title\thepart\hspace{1em}#1}%
  802. \else
  803. \addcontentsline{toc}{part}{#1}%
  804. \fi
  805. \@fr@mew@rning{part}{part}%
  806. \@number@w@rning{part}%
  807. \reset@numbertocswitch
  808. \reset@frame@switch
  809. \global\@tocswitchfalse
  810. \markboth{}{}
  811. {\@title@lignment
  812. \interlinepenalty \@M
  813. \reset@font
  814. \ifnum \c@secnumdepth >-2\relax
  815. \huge\bfseries \partname~\thepart
  816. \par
  817. \vskip 20\p@
  818. \fi
  819. \Huge \bfseries #2\par}%
  820. \@endpart}
  821. \newcommand{\@spart@hook}[1]{}
  822. \renewcommand\@spart[1]{%
  823. \@division@inc@hook
  824. \@spart@hook{#1}%
  825. \ifnum \c@secnumdepth >-2\relax
  826. \addcontentsline{toc}{starpart}{%\protect\numberline{}
  827. #1}%
  828. \else
  829. \addcontentsline{toc}{starpart}{#1}%
  830. \fi
  831. \@fr@mew@rning{part}{part}%
  832. \@number@w@rning{part}%
  833. \reset@numbertocswitch
  834. \reset@frame@switch
  835. \global\@tocswitchfalse
  836. \markboth{}{}
  837. {\@title@lignment
  838. \interlinepenalty \@M
  839. \reset@font
  840. \Huge \bfseries #1\par}%
  841. \@endpart}
  842. \newif\if@st@rch@ptersintoc
  843. \@st@rch@ptersintoctrue
  844. \newcommand\DontWriteStarChaptersInToc{\global\@st@rch@ptersintocfalse}
  845. \newcommand\@in@toc@contents[1]{%
  846. \ifnum \c@secnumdepth >\m@ne
  847. \addcontentsline{toc}{tulstarchapter}{%\protect\numberline{}
  848. #1}%
  849. \else
  850. \addcontentsline{toc}{tulstarchapter}{#1}
  851. \fi
  852. }%
  853. \renewcommand\@schapter[1]{\@generic@schapter{chapter}[#1]}
  854. \newcommand{\@generic@schapter@hook}[2]{}
  855. \newcommand{\@generic@schapter@lasthook}[2]{}
  856. \def\@generic@schapter#1[#2]{%
  857. \@division@inc@hook
  858. \@generic@schapter@hook{#1}{#2}%
  859. \if@tocswitch
  860. \if@st@rch@ptersintoc
  861. \if@intoc
  862. \ClassWarning{thesul}%
  863. {You said \protect\WriteThisInToc\space
  864. but\MessageBreak
  865. the entry was going
  866. to be put in the toc.\MessageBreak
  867. You can safely remove it,}%
  868. \@in@toc@contents{#2}%
  869. \else % \DontWriteThisInToc
  870. \fi
  871. \else
  872. \if@intoc % \WriteThisInToc
  873. \@in@toc@contents{#2}%
  874. \fi
  875. \fi
  876. \else
  877. \if@st@rch@ptersintoc
  878. \@in@toc@contents{#2}%
  879. \fi
  880. \fi
  881. \@fr@mew@rning{chapter}{#1}%
  882. \@number@w@rning{chapter}%
  883. \reset@numbertocswitch
  884. \reset@frame@switch
  885. \global\@tocswitchfalse
  886. \generic@mark{#2}%
  887. %\markboth {\@he@dings@function{#2}}{}%
  888. \addtocontents{lof}{\protect\addvspace{10\p@}}%
  889. \addtocontents{lot}{\protect\addvspace{10\p@}}%
  890. \setcounter{section}{0}
  891. \setcounter{equation}{0}
  892. \setcounter{figure}{0}
  893. \setcounter{table}{0}
  894. \if@twocolumn
  895. \if@notop@page
  896. \@makeschapterhead{#2}%
  897. \else
  898. \@topnewpage[\@makeschapterhead{#2}]%
  899. \fi
  900. \else
  901. \@makeschapterhead{#2}%
  902. \@afterheading
  903. \fi
  904. \NoChapterPrefix
  905. \@generic@schapter@lasthook{#1}{#2}%
  906. }
  907. \newif\if@sec@in@toc
  908. \def\@sect#1#2#3#4#5#6[#7]#8{%
  909. \ifnum #2>\c@secnumdepth
  910. \let\@svsec\@empty
  911. \else
  912. \refstepcounter{#1}%
  913. \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  914. \fi
  915. \@tempskipa #5\relax
  916. \ifdim \@tempskipa>\z@
  917. \begingroup
  918. #6{%
  919. \@hangfrom{\hskip #3\relax\@svsec}%
  920. \interlinepenalty \@M #8\@@par}%
  921. \endgroup
  922. \@sec@in@toctrue
  923. \if@tocswitch\if@intoc\else\@sec@in@tocfalse\fi\@tocswitchfalse\fi
  924. \if@sec@in@toc
  925. \csname #1mark\endcsname{#7}%
  926. \addcontentsline{toc}{#1}{%
  927. \ifnum #2>\c@secnumdepth \else
  928. \protect\numberline{\csname the#1\endcsname}%
  929. \fi
  930. #7}%
  931. \fi
  932. \else
  933. \if@sec@in@toc
  934. \def\@svsechd{%
  935. #6{\hskip #3\relax
  936. \@svsec #8}%
  937. \csname #1mark\endcsname{#7}%
  938. \addcontentsline{toc}{#1}{%
  939. \ifnum #2>\c@secnumdepth \else
  940. \protect\numberline{\csname the#1\endcsname}%
  941. \fi
  942. #7}}%
  943. \fi
  944. \fi
  945. \@xsect{#5}}
  946. \newcommand{\@chapter@title}{}
  947. \newcommand{\WriteChapterLabelInToc}%
  948. {\gdef\@chapter@title{\@chapapp\ }} % = \chaptername
  949. \newcommand{\@part@title}{}
  950. \newcommand{\WritePartLabelInToc}{\gdef\@part@title{Partie\ }} %
  951. \newcommand\@thesection@prefix{\thechapter.}
  952. \newcommand\renew@continuous[2]{%
  953. \csname if@#1s@continuous\endcsname
  954. \expandafter\renewcommand\csname the#1\endcsname{\arabic{#1}}%
  955. \else
  956. \expandafter\renewcommand\csname the#1\endcsname{#2\arabic{#1}}%
  957. \fi
  958. }
  959. \newcommand\C@Prefix[1]{%
  960. \renewcommand\@thesection@prefix{#1}%
  961. \renew@continuous{equation}{#1}%
  962. \renew@continuous{figure}{#1}%
  963. \renew@continuous{table}{#1}%
  964. }
  965. \newcommand\ChapterPrefix{\C@Prefix{\thechapter.}}
  966. \newcommand\NoChapterPrefix{\C@Prefix{}}
  967. \newif\if@chapterinref
  968. \@chapterinreftrue
  969. \newcommand\NoChapterNumberInRef{\global\@chapterinreffalse}
  970. \def\special@section{\def\thesection{\@thesection@prefix\arabic{section}}}
  971. \def\normal@section{\def\thesection{\thechapter.\arabic{section}}}
  972. \let\@sect@old=\@sect
  973. \def\@sect#1#2#3#4#5#6[#7]#8{%
  974. \special@section
  975. \@sect@old{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}%
  976. \normal@section
  977. \if@chapterinref
  978. \edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}%
  979. \fi
  980. }
  981. \newcommand\@original@endpart{%
  982. \vfil
  983. \newpage
  984. \if@twoside
  985. \hbox{}%
  986. \thispagestyle{empty}%
  987. \newpage
  988. \fi
  989. \if@tempswa
  990. \twocolumn
  991. \fi
  992. }
  993. \newcommand\NewPageAfterParts{\gdef\@endpart{\@original@endpart}}
  994. \newcommand\NoNewPageAfterParts{\gdef\@endpart{\vskip1cm}}
  995. \let\original@pagestyle@cmd=\pagestyle
  996. \newcommand{\current@ps}{ThesisHeadings}
  997. \renewcommand{\pagestyle}[1]{%
  998. \def\new@ps{#1}%
  999. \def\td@ps{thesisdraft}%
  1000. \ifx\new@ps\td@ps
  1001. \else
  1002. \edef\current@ps{#1}%
  1003. \fi
  1004. \original@pagestyle@cmd{#1}%
  1005. }
  1006. \let\original@thispagestyle@cmd=\thispagestyle
  1007. \renewcommand{\thispagestyle}[1]{%
  1008. \def\tmp@ps@name{#1}%
  1009. \def\french@ps@name{french}%
  1010. \ifx\tmp@ps@name\french@ps@name
  1011. \else
  1012. \original@thispagestyle@cmd{#1}%
  1013. \fi
  1014. }
  1015. \newcommand\@chapter@ps{plain}
  1016. \newcommand{\ChapterPageStyle}[1]{\renewcommand\@chapter@ps{#1}}
  1017. \newcommand\@part@ps{plain}
  1018. \newcommand{\PartPageStyle}[1]{\renewcommand\@part@ps{#1}}
  1019. \newcommand{\@empty@ps@cmd}{}
  1020. \newcommand{\EmptyPageStyle}[1]{%
  1021. \renewcommand\@empty@ps@cmd{\thispagestyle{#1}}}
  1022. \newcommand{\EmptyNewPage}{\newpage\hbox{}\@empty@ps@cmd\newpage}
  1023. \newcommand\orig@chaptermark[1]{%
  1024. \markboth {\@he@dings@function{\ifnum \c@secnumdepth >\m@ne
  1025. \@chapapp\ \thechapter. \ \fi
  1026. #1}}{}%
  1027. }%
  1028. \let\@chaptermark\orig@chaptermark
  1029. \newcommand\@generic@mark[1]{\markboth {\@he@dings@function{#1}}{}}
  1030. \newcommand\generic@mark[1]{%
  1031. \let\@chaptermark\@generic@mark
  1032. \pagestyle{\current@ps}%
  1033. \chaptermark{#1}%
  1034. }
  1035. \newcommand\@sectionmark[1]{%
  1036. \markright {\@he@dings@function{\ifnum \c@secnumdepth >\z@
  1037. \thesection. \ \fi
  1038. #1}}%
  1039. }%
  1040. \newlength\HeadRuleWidth
  1041. \newlength\HeadRuleSep
  1042. \setlength{\HeadRuleWidth}{0pt}
  1043. \setlength{\HeadRuleSep}{2mm}
  1044. \newcommand\@gener@lhe@d[2]{%
  1045. {\setbox0=\hbox{#1}%
  1046. \ifdim\wd0=0pt%
  1047. \hbox to\textwidth{#2}%
  1048. \else
  1049. \vtop{\hbox to\textwidth{#2}
  1050. \vbox to0pt{\vskip\HeadRuleSep
  1051. \hrule width\textwidth
  1052. height\HeadRuleWidth depth0pt\relax
  1053. \vss}
  1054. }%
  1055. \fi
  1056. }%
  1057. }
  1058. \newcommand\@gener@loddhe@d{%
  1059. \@gener@lhe@d{\leftmark\rightmark}{\hfil\slshape\rightmark}%
  1060. }
  1061. \newcommand\@gener@levenhe@d{%
  1062. \@gener@lhe@d\leftmark{{\slshape\leftmark}\hfil}%
  1063. }
  1064. \newtoks\OddFoot
  1065. \newtoks\EvenFoot
  1066. \newtoks\OddHead
  1067. \newtoks\EvenHead
  1068. \OddFoot={}%
  1069. \EvenFoot={}%
  1070. \OddHead={{}{}}%
  1071. \EvenHead={{}{}}%
  1072. \newcommand\ps@Fancy{%
  1073. \def\@oddfoot{\the\OddFoot}%
  1074. \def\@evenfoot{\the\EvenFoot}%
  1075. \def\@evenhead{\expandafter\@gener@lhe@d\the\EvenHead}%
  1076. \def\@oddhead{\expandafter\@gener@lhe@d\the\OddHead}%
  1077. \let\@mkboth\markboth
  1078. \let\chaptermark\@chaptermark
  1079. \let\sectionmark\@sectionmark
  1080. }
  1081. \newcommand\ps@ThesisHeadings{%
  1082. \def\@oddfoot{\hfil\thepage\hfil}%
  1083. \def\@evenfoot{\hfil\thepage\hfil}%
  1084. \def\@evenhead{\@gener@levenhe@d}%
  1085. \def\@oddhead{\@gener@loddhe@d}%
  1086. \let\@mkboth\markboth
  1087. \let\chaptermark\@chaptermark
  1088. \let\sectionmark\@sectionmark
  1089. }
  1090. \newcommand\ps@StandardHeadings{%
  1091. \let\@oddfoot\@empty
  1092. \let\@evenfoot\@empty
  1093. \def\@evenhead{\@gener@lhe@d{\leftmark}%
  1094. {\thepage\hfil{\slshape\leftmark}}}%
  1095. \def\@oddhead{\@gener@lhe@d{\leftmark\rightmark}%
  1096. {{\slshape\rightmark}\hfil\thepage}}%
  1097. \let\@mkboth\markboth
  1098. \let\chaptermark\@chaptermark
  1099. \let\sectionmark\@sectionmark
  1100. }
  1101. \newcommand\ps@ThesisHeadingsI{%
  1102. \let\@oddfoot\@empty
  1103. \let\@evenfoot\@empty
  1104. \def\@evenhead{\@gener@lhe@d{\leftmark}%
  1105. {\thepage\qquad{\slshape\leftmark}\hfil}}%
  1106. \def\@oddhead{\@gener@lhe@d{\leftmark\rightmark}%
  1107. {\hfil{\slshape\rightmark}\qquad\thepage}}%
  1108. \let\@mkboth\markboth
  1109. \let\chaptermark\@chaptermark
  1110. \let\sectionmark\@sectionmark
  1111. }
  1112. \newcommand\ps@ThesisHeadingsII{%
  1113. \def\@oddfoot{\hfil\thepage}%
  1114. \def\@evenfoot{\thepage\hfil}%
  1115. \def\@evenhead{\@gener@lhe@d{\leftmark}%
  1116. {{\slshape\leftmark}\hfil}}%
  1117. \def\@oddhead{\@gener@lhe@d{\leftmark\rightmark}%
  1118. {\hfil\slshape\rightmark}}%
  1119. \let\@mkboth\markboth
  1120. \let\chaptermark\@chaptermark
  1121. \let\sectionmark\@sectionmark
  1122. }
  1123. \newcommand\TheBanner{\textsl{version du \TimeStamp}}
  1124. \newcommand\ps@thesisdraft{%
  1125. \def\@dr@ftb@nner{%
  1126. \vbox to0pt{\vss
  1127. \hbox{\footnotesize\fbox{\texttt{\jobname:}\TheBanner}}%
  1128. \vskip\headheight
  1129. }%
  1130. }%
  1131. \let\old@oddhead=\@oddhead
  1132. \let\old@evenhead=\@evenhead
  1133. \ifx\@oddhead\@empty
  1134. \def\old@oddhead{\hfil}%
  1135. \fi
  1136. \ifx\@evenhead\@empty
  1137. \def\old@evenhead{\hfil}%
  1138. \fi
  1139. \def\@oddhead{{}\rlap{\hbox to\hsize{\hfil\llap{\@dr@ftb@nner}}}%
  1140. \old@oddhead}%
  1141. \def\@evenhead{{}\rlap{\@dr@ftb@nner}\old@evenhead}%
  1142. }
  1143. \newcommand{\UppercaseHeadings}{\global\let\@he@dings@function=\uppercase}
  1144. \newcommand{\NormalHeadings}{\global\let\@he@dings@function=\relax}
  1145. \newcommand{\UnderlineHeadings}{\global\let\@he@dings@function=\underline}
  1146. \newcommand{\FormatHeadingsWith}[1]{\global\let\@he@dings@function=#1 }
  1147. \NormalHeadings
  1148. \pagestyle{StandardHeadings}
  1149. \newcommand{\abs@ps}{empty}
  1150. \newcommand{\NumberAbstractPages}{\edef\abs@ps{\@chapter@ps}}
  1151. \newcommand{\DontNumberAbstractPages}{\renewcommand{\abs@ps}{empty}}
  1152. \newif\ifabstracts@even
  1153. \newcommand{\AbstractsOnOddPage}{\abstracts@evenfalse}
  1154. \newcommand{\AbstractsOnEvenPage}{\abstracts@eventrue}
  1155. \newcommand{\@abstract@hook}[1]{}
  1156. \newenvironment{ThesisAbstract}
  1157. {\ifabstracts@even\@newevendoublepage\else\@newdoublepage\fi
  1158. \edef\saved@ps{\current@ps}%
  1159. \pagestyle{\abs@ps}
  1160. \markboth{}{}
  1161. \def\@abstr@ct@beginning##1##2{%
  1162. \section*{\@title@lignment ##1}
  1163. \@abstract@hook{##1}%
  1164. \if@tocswitch
  1165. \DontFrameThisInToc
  1166. \if@classic@section
  1167. \addcontentsline{toc}{tulstarchapter}{##1}
  1168. \else
  1169. \addcontentsline{toc}{spsection}{##1}
  1170. \fi
  1171. \fi
  1172. \reset@numbertocswitch
  1173. \reset@frame@switch
  1174. \def\KeyWords####1{\par\bigskip\noindent\textbf{##2:} ####1\par}
  1175. }
  1176. \newenvironment{FrenchAbstract}
  1177. {\@abstr@ct@beginning{R\'esum\'e}{Mots-cl\'es}}
  1178. {\vglue1cm minus 8mm}
  1179. \newenvironment{EnglishAbstract}
  1180. {\@abstr@ct@beginning{Abstract}{Keywords}%
  1181. \ifx\english\@undefined
  1182. \bgroup\language=0\relax
  1183. \else
  1184. \begin{english}
  1185. \fi
  1186. \leavevmode\hbox to\parindent{}\ignorespaces % 22/7/1994
  1187. }
  1188. {\ifx\english\@undefined
  1189. \egroup
  1190. \else
  1191. \end{english}
  1192. \fi
  1193. \vglue1cm minus 8mm
  1194. }
  1195. \@mkboth{}{}%
  1196. \vglue1cm
  1197. }
  1198. {\global\@tocswitchfalse
  1199. \global\@classic@sectionfalse
  1200. %\@newdoublepage
  1201. \long\def\@empty@ps{empty}%
  1202. \newpage
  1203. \if@twoside
  1204. \ifodd\c@page
  1205. \else
  1206. \hbox{}%
  1207. \ifx\@empty@ps\abs@ps
  1208. \else
  1209. \@empty@ps@cmd
  1210. \fi
  1211. \newpage
  1212. \if@twocolumn\hbox{}\newpage\fi
  1213. \pagestyle{\saved@ps}%
  1214. \fi
  1215. \else
  1216. \pagestyle{\saved@ps}%
  1217. \fi
  1218. %\addtocounter{page}{-2}%
  1219. }
  1220. \newcommand{\AcknowledgmentName}{Remerciements}
  1221. \newcommand{\@acknowledgment@hook}{}
  1222. \newenvironment{ThesisAcknowledgments}
  1223. {\@newdoublepage
  1224. \section*{\@title@lignment\AcknowledgmentName}
  1225. \@acknowledgment@hook
  1226. \@mkboth{}{}%
  1227. \if@tocswitch
  1228. \if@classic@section
  1229. \global\@classic@sectionfalse
  1230. \addcontentsline{toc}{tulstarchapter}{\AcknowledgmentName}
  1231. \else
  1232. \addcontentsline{toc}{spsection}{\AcknowledgmentName}
  1233. \fi
  1234. \fi
  1235. \reset@numbertocswitch
  1236. \reset@frame@switch
  1237. \global\@tocswitchfalse
  1238. }
  1239. {\par\@newdoublepage}
  1240. \newcommand{\@dedication@hook}{}
  1241. \newenvironment{ThesisDedication}
  1242. {\@newdoublepage
  1243. \@dedication@hook
  1244. \@mkboth{}{}
  1245. \vglue0pt plus.5fil
  1246. \fontfamily{\sfdefault}\fontseries{m}\fontshape{sl}\selectfont
  1247. \begin{flushright}
  1248. }
  1249. {\end{flushright}
  1250. \vglue0pt plus1fil\@newdoublepage}
  1251. \newif\if@there@re@p@rts
  1252. \newif\if@there@were@p@rts
  1253. \AtEndDocument{\@see@if@parts}
  1254. \def\@see@if@parts{%
  1255. \immediate\openout\@gen@toc@aux=\jobname.flg
  1256. \if@there@re@p@rts
  1257. \immediate\write\@gen@toc@aux{\string\@there@were@p@rtstrue}%
  1258. \else
  1259. \immediate\write\@gen@toc@aux{\string\@there@were@p@rtsfalse}%
  1260. \fi
  1261. }
  1262. \renewcommand\part{%
  1263. \@nnex@in@l@stp@rtfalse
  1264. \gdef\@chapapp{\chaptername}\gdef\thechapter{\arabic{chapter}}%
  1265. \global\@there@re@p@rtstrue
  1266. \cleardoublepage
  1267. \thispagestyle{\@part@ps}%
  1268. \if@twocolumn
  1269. \onecolumn
  1270. \@tempswatrue
  1271. \else
  1272. \@tempswafalse
  1273. \fi
  1274. \hbox{}\vfil
  1275. \secdef\@part\@spart}
  1276. \renewcommand\chapter{%
  1277. \if@nnex@in@l@stp@rt
  1278. \let\next=\Annex
  1279. \else
  1280. \let\next=\@real@chapter
  1281. \fi
  1282. \next
  1283. }
  1284. \newcommand\@real@chapter{%
  1285. \if@openright\cleardoublepage\else\clearpage\fi
  1286. \thispagestyle{\@chapter@ps}%
  1287. \global\@topnum\z@
  1288. \@afterindentfalse
  1289. \secdef\@chapter\@schapter
  1290. }
  1291. \newcommand\no@clear@chapter{%
  1292. \thispagestyle{\@chapter@ps}%
  1293. \global\@topnum\z@
  1294. \@afterindentfalse
  1295. \if@classic@section
  1296. \global\@classic@sectionfalse
  1297. \def\@nxt@cmd{\secdef\@chapter\@schapter}%
  1298. \else
  1299. \def\@nxt@cmd{\secdef\@spsection\@sspsection}%
  1300. \fi
  1301. \@nxt@cmd
  1302. }
  1303. \renewcommand\@makechapterhead[1]{%
  1304. \vspace*{50\p@}%
  1305. {\parindent \z@ \@title@lignment \reset@font
  1306. \ifnum \c@secnumdepth >\m@ne
  1307. \huge\bfseries \@chapter@title@head{} \thechapter
  1308. \par
  1309. \vskip 20\p@
  1310. \fi
  1311. \Huge \bfseries #1\par
  1312. \nobreak
  1313. \vskip 40\p@
  1314. }}
  1315. \renewcommand\@makeschapterhead[1]{%
  1316. \vspace*{50\p@}%
  1317. {\parindent \z@ \@title@lignment
  1318. \reset@font
  1319. \Huge \bfseries #1\par
  1320. \nobreak
  1321. \vskip 40\p@
  1322. }}
  1323. \newcommand{\@chapter@title@head}{\@chapapp}
  1324. \newcommand{\NoChapterHead}{\renewcommand{\@chapter@title@head}{}}
  1325. \newcommand{\@title@lignment}{\centering}
  1326. \newcommand{\AlignTitlesLeft}{
  1327. \renewcommand{\@title@lignment}{\raggedright}}
  1328. \newcommand{\CenterTitles}{
  1329. \renewcommand{\@title@lignment}{\centering}}
  1330. \newcommand{\AlignTitlesRight}{
  1331. \renewcommand{\@title@lignment}{\raggedleft}}
  1332. \newif\if@classic@section
  1333. \newcommand{\NormalSection}{\@classic@sectiontrue}
  1334. \newcommand{\SpecialSection}{\if@openright\cleardoublepage\else\clearpage\fi
  1335. \thispagestyle{\@chapter@ps}%
  1336. \global\@topnum\z@
  1337. \@afterindentfalse
  1338. \secdef\@spsection\@sspsection}
  1339. \newcommand{\@spsection@hook}[2]{}
  1340. \def\@spsection[#1]#2{%
  1341. \@division@inc@hook
  1342. \@spsection@hook{#1}{#2}%
  1343. \if@tocswitch
  1344. \if@intoc
  1345. \addcontentsline{toc}{spsection}{#1}%
  1346. \fi
  1347. \else
  1348. \addcontentsline{toc}{spsection}{#1}%
  1349. \fi
  1350. \reset@numbertocswitch
  1351. \reset@frame@switch
  1352. \global\@tocswitchfalse
  1353. \generic@mark{#1}%
  1354. %\markboth {\@he@dings@function{#2}}{}%
  1355. \addtocontents{lof}{\protect\addvspace{10\p@}}%
  1356. \addtocontents{lot}{\protect\addvspace{10\p@}}%
  1357. \if@twocolumn
  1358. \if@notop@page
  1359. \@makeschapterhead{#2}%
  1360. \else
  1361. \@topnewpage[\@makeschapterhead{#2}]%
  1362. \fi
  1363. \else
  1364. \@makeschapterhead{#2}%
  1365. \@afterheading
  1366. \fi
  1367. \NoChapterPrefix
  1368. }
  1369. \def\@sspsection#1{\@spsection[]{#1}}
  1370. \if@dont@load@french
  1371. \else
  1372. \AtBeginDocument{\def\contentsname{Sommaire}}%
  1373. \fi
  1374. \newcommand{\@toc@hook}{}
  1375. \renewcommand\tableofcontents{%
  1376. \edef\sav@baselinestretch{\baselinestretch}
  1377. \if@twocolumn
  1378. \@restonecoltrue\onecolumn
  1379. \else
  1380. \@restonecolfalse
  1381. \fi
  1382. \@toc@hook
  1383. \DontWriteThisInToc
  1384. \chapter*{\contentsname}
  1385. \generic@mark{\contentsname}%
  1386. \def\baselinestretch{\@tocstretch}\small\normalsize
  1387. \makeatletter
  1388. \InputIfFileExists{\jobname.flg}{}{}%
  1389. \makeatother
  1390. \@starttoc{toc}%
  1391. \edef\baselinestretch{\sav@baselinestretch}\small\normalsize
  1392. \if@restonecol\twocolumn\fi
  1393. }
  1394. \newcommand\@tocstretch{1.3}
  1395. \newcommand\SetTocSpacing[1]{\renewcommand\@tocstretch{#1}}
  1396. \newcommand{\@toc@line}{\hbox to\hsize{\hbox to.25\hsize{}%
  1397. \hrulefill
  1398. \hbox to.25\hsize{}}}
  1399. \newcommand\PutLineInToc{\@write@thisfl@gintoc\@toc@line}
  1400. \newcommand\PutNewPageInToc{\@write@thisfl@gintoc\newpage}
  1401. \newwrite\@gen@toc@aux
  1402. \AtEndDocument{\closeout\@gen@toc@aux}
  1403. \newif\if@notop@page
  1404. \@notop@pagefalse
  1405. \newcommand\@Ind@Introduction{}
  1406. \newcommand\BeginIndWith[1]%
  1407. {\renewcommand\@Ind@Introduction{#1\par\bigskip}}
  1408. \renewenvironment{theindex}
  1409. {\cleardoublepage
  1410. \global\@notop@pagetrue
  1411. \twocolumn[\no@clear@chapter{\indexname}\@Ind@Introduction]%
  1412. \global\@notop@pagefalse
  1413. \generic@mark{\indexname}%
  1414. \columnseprule \z@
  1415. \columnsep 35\p@
  1416. \thispagestyle{\@chapter@ps}\parindent\z@
  1417. \parskip\z@ \@plus .3\p@\relax
  1418. \let\item\@idxitem}
  1419. {\onecolumn}
  1420. \newcommand\PrintIndex{\@input@{\jobname.ind}}
  1421. \AtBeginDocument{%
  1422. \ifx\@printindex\undefined
  1423. \let\printindex\PrintIndex
  1424. \else
  1425. \def\printindex{\@ifnextchar [{\@printindex}{\@printindex[default]}}
  1426. \let\PrintIndex\printindex
  1427. \fi}
  1428. \newcommand\@Glo@Introduction{}
  1429. \newcommand\BeginGloWith[1]%
  1430. {\renewcommand\@Glo@Introduction{#1\par\bigskip}}
  1431. \newenvironment{TheGlossary}
  1432. {\if@twocolumn
  1433. \def\@glo@cmd{\global\@notop@pagetrue
  1434. \twocolumn[\no@clear@chapter{\glossaryname}%
  1435. \@Glo@Introduction]%
  1436. \global\@notop@pagefalse}%
  1437. \else
  1438. \def\@glo@cmd{\no@clear@chapter{\glossaryname}%
  1439. \@Glo@Introduction}%
  1440. \fi
  1441. \onecolumn
  1442. \cleardoublepage
  1443. \@glo@cmd
  1444. \generic@mark{\glossaryname}%
  1445. \columnseprule \z@
  1446. \columnsep 35\p@
  1447. \thispagestyle{\@chapter@ps}\parindent\z@
  1448. \parskip\z@ \@plus .3\p@\relax
  1449. \let\item\@idxitem}
  1450. {\onecolumn}
  1451. \newcommand\PrintGlossary{\@input@{\jobname.gls}}
  1452. \if@dont@load@french
  1453. \def\glossaryname{Glossary}%
  1454. \fi
  1455. \newcommand{\glogobble}[1]{}
  1456. \newcommand{\Glossary}[3][]{\glossary{#1#2@{\textbf{#2}} : #3|glogobble}}
  1457. \newcommand\@Bib@Introduction{}
  1458. \newcommand\BeginBibWith[1]%
  1459. {\renewcommand\@Bib@Introduction{#1\par\bigskip}}
  1460. \renewenvironment{thebibliography}[1]
  1461. {\if@classic@section
  1462. \global\@classic@sectionfalse
  1463. \chapter*{\bibname}
  1464. \else
  1465. \SpecialSection{\bibname}
  1466. \fi
  1467. \generic@mark{\bibname}%
  1468. \@Bib@Introduction
  1469. \list{\@biblabel{\@arabic\c@enumiv}}%
  1470. {\settowidth\labelwidth{\@biblabel{#1}}%
  1471. \leftmargin\labelwidth
  1472. \advance\leftmargin\labelsep
  1473. \@openbib@code
  1474. \usecounter{enumiv}%
  1475. \let\p@enumiv\@empty
  1476. \renewcommand\theenumiv{\@arabic\c@enumiv}}%
  1477. \sloppy\clubpenalty4000\widowpenalty4000%
  1478. \sfcode`\.=\@m}
  1479. {\def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
  1480. \endlist}
  1481. \newcommand\@Lof@Introduction{}
  1482. \newcommand\BeginLofWith[1]%
  1483. {\renewcommand\@Lof@Introduction{#1\par\bigskip}}
  1484. \renewcommand\listoffigures{%
  1485. \if@twocolumn
  1486. \@restonecoltrue\onecolumn
  1487. \else
  1488. \@restonecolfalse
  1489. \fi
  1490. \if@classic@section
  1491. \global\@classic@sectionfalse
  1492. \chapter*{\listfigurename}
  1493. \else
  1494. \SpecialSection{\listfigurename}
  1495. \fi
  1496. \generic@mark{\listfigurename}%
  1497. \@Lof@Introduction
  1498. \@starttoc{lof}%
  1499. \if@restonecol\twocolumn\fi
  1500. }
  1501. \newcommand\@Lot@Introduction{}
  1502. \newcommand\BeginLotWith[1]%
  1503. {\renewcommand\@Lot@Introduction{#1\par\bigskip}}
  1504. \renewcommand\listoftables{%
  1505. \if@twocolumn
  1506. \@restonecoltrue\onecolumn
  1507. \else
  1508. \@restonecolfalse
  1509. \fi
  1510. \if@classic@section
  1511. \global\@classic@sectionfalse
  1512. \chapter*{\listtablename}
  1513. \else
  1514. \SpecialSection{\listtablename}
  1515. \fi
  1516. \generic@mark{\listtablename}%
  1517. \@Lot@Introduction
  1518. \@starttoc{lot}%
  1519. \if@restonecol\twocolumn\fi
  1520. }
  1521. \pagenumbering{roman}
  1522. \setlength\@tempdima{\paperheight}
  1523. \addtolength\@tempdima{-2in}
  1524. \addtolength\@tempdima{-.73in} % anciennement -1.5in
  1525. \divide\@tempdima\baselineskip
  1526. \@tempcnta=\@tempdima
  1527. \setlength\textheight{\@tempcnta\baselineskip}
  1528. \advance\textheight by \topskip
  1529. \setlength\topmargin{\paperheight}
  1530. \addtolength\topmargin{-2in}
  1531. \addtolength\topmargin{-\headheight}
  1532. \addtolength\topmargin{-\headsep}
  1533. \addtolength\topmargin{-\textheight}
  1534. \addtolength\topmargin{-\footskip} % this might be wrong!
  1535. \addtolength\topmargin{-.5\topmargin}
  1536. \@settopoint\topmargin
  1537. \newcommand\AdjustTextheight{%
  1538. \setlength\textheight{\paperheight}
  1539. \addtolength\textheight{-2in}
  1540. \addtolength\textheight{-\headheight}
  1541. \addtolength\textheight{-\headsep}
  1542. \addtolength\textheight{-\footskip}
  1543. \addtolength\textheight{-2\topmargin}
  1544. \@settopoint\textheight
  1545. }
  1546. \newcommand\SetRealMargins[2]{%
  1547. \oddsidemargin#1\advance\oddsidemargin-1in%
  1548. \evensidemargin#2\advance\evensidemargin-1in%
  1549. \textwidth\paperwidth
  1550. \advance\textwidth-2in%
  1551. \advance\textwidth-\oddsidemargin
  1552. \advance\textwidth-\evensidemargin
  1553. \hsize\textwidth
  1554. \linewidth\hsize
  1555. \setlength\marginparwidth {.8in}%
  1556. \addtolength\marginparwidth {.5\evensidemargin}%
  1557. }%
  1558. \SetRealMargins{30mm}{20mm}% \textwidth=210mm-50mm=160mm
  1559. \newif\if@draft
  1560. \@draftfalse
  1561. \newif\if@nnex@in@l@stp@rt
  1562. \@nnex@in@l@stp@rtfalse
  1563. \newcommand\Annexe{\global\@nnex@in@l@stp@rttrue
  1564. \@TULann{\appendixname}}
  1565. \newcommand\Annexes{\global\@nnex@in@l@stp@rttrue
  1566. \@TULann{\appendixname s}}
  1567. \newcommand{\@tulann@hook}[1]{}
  1568. \newcommand{\@tulann@lasthook}[1]{}
  1569. \def\@TULann#1{%
  1570. \par
  1571. \setcounter{section}{0}%
  1572. \def\@chapapp{\appendixname}\def\thechapter{\Alph{annex}}%
  1573. \cleardoublepage
  1574. \@tulann@hook{#1}%
  1575. \addcontentsline{toc}{tulstarchapter}{\protect#1}%
  1576. \@tulann@lasthook{#1}%
  1577. }%
  1578. \newcommand{\ThesisDraft}{%
  1579. \if@draft
  1580. \else
  1581. \pagestyle{thesisdraft}%
  1582. \@drafttrue
  1583. \let\@old@ps=\pagestyle
  1584. \def\pagestyle##1{%
  1585. \@old@ps{##1}%
  1586. \if@draft
  1587. \@old@ps{thesisdraft}%
  1588. \fi
  1589. }%
  1590. \fi
  1591. }
  1592. \newcount\tul@hour \newcount\tul@minute
  1593. \tul@hour=\time \divide \tul@hour by 60
  1594. \tul@minute=\time
  1595. \loop \ifnum \tul@minute > 59 \advance \tul@minute by -60 \repeat
  1596. \newcommand\now{\number\tul@hour\ h
  1597. \ifnum \tul@minute<10 0\fi
  1598. \number\tul@minute
  1599. }
  1600. \newcommand\@le@pye@r{%
  1601. \def\@leapye@rcorrection{\count6 }%
  1602. \def\@scratch{\count8 }%
  1603. \@leapye@rcorrection=0\relax
  1604. \ifnum\@month>2\relax
  1605. \@scratch\@year
  1606. \divide\@scratch4\multiply\@scratch4\relax
  1607. \ifnum\@scratch=\@year
  1608. \divide\@scratch100\multiply\@scratch100\relax
  1609. \ifnum\@scratch=\@year
  1610. \divide\@scratch400 \multiply\@scratch400\relax
  1611. \ifnum\@scratch=\@year
  1612. \@leapye@rcorrection=1\relax
  1613. \else
  1614. \@leapye@rcorrection=0\relax
  1615. \fi
  1616. \else
  1617. \@leapye@rcorrection=1\relax
  1618. \fi
  1619. \else
  1620. \@leapye@rcorrection=0\relax
  1621. \fi
  1622. \fi
  1623. }%
  1624. \newcommand\@weekday{%
  1625. \@le@pye@r
  1626. \advance\@year-1201\relax
  1627. \def\@dayselapsed{\count10 }%
  1628. \@dayselapsed=\@year
  1629. \multiply\@dayselapsed365\relax
  1630. \@scratch\@year
  1631. \divide\@scratch4
  1632. \advance\@dayselapsed\@scratch\relax
  1633. \@scratch\@year
  1634. \divide\@scratch100
  1635. \advance\@dayselapsed-\@scratch\relax
  1636. \@scratch\@year
  1637. \divide\@scratch400
  1638. \advance\@dayselapsed\@scratch
  1639. \advance\@dayselapsed
  1640. \ifcase\@month\or
  1641. 0\relax\or 31\relax\or 59\relax\or 90\relax\or
  1642. 120\relax\or 151\relax\or 181\relax\or 212\relax\or
  1643. 243\relax\or 273\relax\or 304\relax\or 334\relax
  1644. \fi
  1645. \advance\@dayselapsed\@day
  1646. \advance\@dayselapsed\@leapye@rcorrection
  1647. \@scratch=-\@dayselapsed
  1648. \divide\@scratch7\relax
  1649. \multiply\@scratch7\relax
  1650. \advance\@dayselapsed\@scratch
  1651. }
  1652. \newcommand\@day@of@week{}
  1653. \newcommand\WeekDay[3]{% jour 1--31, mois 1--12, annee
  1654. \@WeekDay{#1}{#2}{#3}%
  1655. \@day@of@week
  1656. }
  1657. \newcommand\@WeekDay[3]{% jour 1--31, mois 1--12, annee
  1658. {%
  1659. \def\@day{\count0 }%
  1660. \def\@month{\count2 }%
  1661. \def\@year{\count4 }%
  1662. \@day=#1\relax
  1663. \@month=#2\relax
  1664. \@year=#3\relax
  1665. \@weekday
  1666. \xdef\@day@of@week{%
  1667. \ifcase\@dayselapsed
  1668. dimanche\or
  1669. lundi\or
  1670. mardi\or
  1671. mercredi\or
  1672. jeudi\or
  1673. vendredi\or
  1674. samedi%
  1675. \fi}%
  1676. }%
  1677. }
  1678. \newcommand\@timest@mp{}
  1679. \newcommand\TimeStamp{%
  1680. \long\def\@empty{}%
  1681. \ifx\@timest@mp\@empty
  1682. \@WeekDay{\day}{\month}{\year}%
  1683. \let\@@protect=\protect
  1684. \def\protect{\noexpand\protect\noexpand}%
  1685. \xdef\@timest@mp{\@day@of@week\ \today\ \`a \now}%
  1686. \let\protect=\@@protect
  1687. \fi
  1688. \def\@empty{}%
  1689. \@timest@mp
  1690. }
  1691. \newcommand\not@implemented{%
  1692. \message{***You tried to use a command******^^J}%
  1693. \message{***which has not yet been implemented.***^^J}%
  1694. }
  1695. \newcommand{\TUL}{{\normalfont\textsf{thesul}}}
  1696. \errorcontextlines5
  1697. \newcommand\@removefromreset[2]{\let\@tempb\@elt
  1698. \def\@tempa#1{@&#1}\expandafter\let\csname @*#1*\endcsname\@tempa
  1699. \def\@elt##1{\expandafter\ifx\csname @*##1*\endcsname\@tempa\else
  1700. \noexpand\@elt{##1}\fi}%
  1701. \expandafter\xdef\csname cl@#2\endcsname{\csname cl@#2\endcsname}%
  1702. \let\@elt\@tempb
  1703. \expandafter\let\csname @*#1*\endcsname\@undefined}
  1704. \newcommand\ResetChaptersAtParts{%
  1705. \@addtoreset{chapter}{part}%
  1706. \@addtoreset{annex}{part}%
  1707. }
  1708. \@removefromreset{footnote}{chapter}
  1709. \newcommand\ResetFootnotesAtChapters{%
  1710. \@addtoreset{footnote}{chapter}%
  1711. \@addtoreset{footnote}{annex}%
  1712. }
  1713. \newif\if@equations@continuous
  1714. \newif\if@figures@continuous
  1715. \newif\if@tables@continuous
  1716. \newcommand\ContinuousNumbering[1]{%
  1717. \@removefromreset{#1}{chapter}%
  1718. \csname @#1s@continuoustrue\endcsname
  1719. }
  1720. \newcommand\@redefGOfrench{%
  1721. \ifx\GOfrench\undefined
  1722. \else
  1723. \let\TUL@GOfrench\GOfrench
  1724. \gdef\GOfrench{\TUL@GOfrench
  1725. \@removefromreset{chapter}{part}%
  1726. }
  1727. \fi
  1728. }
  1729. \AtBeginDocument{\@redefGOfrench}%
  1730. \newcounter {annex}
  1731. \def\theannex{\thechapter}
  1732. \@addtoreset{section}{annex}
  1733. \@addtoreset{equation}{annex}
  1734. \@addtoreset{figure}{annex}
  1735. \@addtoreset{table}{annex}
  1736. \newcommand\Annex{%
  1737. \if@openright\cleardoublepage\else\clearpage\fi
  1738. \thispagestyle{\@chapter@ps}%
  1739. \global\@topnum\z@
  1740. \@afterindentfalse
  1741. \gdef\@chapapp{\appendixname}%
  1742. \gdef\thechapter{\Alph{annex}}%
  1743. \secdef\@annex\@sannex
  1744. }
  1745. \def\@annex[#1]#2{\ifx\dominitoc\@undefined\else\stepcounter{mtc}\fi
  1746. \@generic@chapter{annex}[#1]{#2}}
  1747. \newcommand\@sannex[1]{\@generic@schapter{annex}[#1]}
  1748. \endinput
  1749. %%
  1750. %% End of file `thesul.cls'.