thloria.cls 60 KB

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