thloria.cls 62 KB

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