summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/yathesis
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/yathesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/yathesis')
-rw-r--r--macros/latex/contrib/yathesis/README.md40
-rw-r--r--macros/latex/contrib/yathesis/doc/README-TRANSLATION.md5
-rw-r--r--macros/latex/contrib/yathesis/doc/yathesis-fr.pdfbin0 -> 6494376 bytes
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/bibliographie.bib54
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/comue.pdfbin0 -> 702363 bytes
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/labo.pdfbin0 -> 135127 bytes
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/latexmkrc23
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/paris13.pdfbin0 -> 4856 bytes
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/these.pdfbin0 -> 1231592 bytes
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/these.tex814
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/tiger.pdfbin0 -> 33436 bytes
-rw-r--r--macros/latex/contrib/yathesis/exemples/specimen/ulco.pdfbin0 -> 47613 bytes
-rw-r--r--macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx1376
-rw-r--r--macros/latex/contrib/yathesis/source/yathesis.dtx7000
14 files changed, 9312 insertions, 0 deletions
diff --git a/macros/latex/contrib/yathesis/README.md b/macros/latex/contrib/yathesis/README.md
new file mode 100644
index 0000000000..fdbaeb4727
--- /dev/null
+++ b/macros/latex/contrib/yathesis/README.md
@@ -0,0 +1,40 @@
+-----------------------------------------------------------------------
+
+- `yathesis` --- Yet Another Thesis Class, version 0.99u
+- E-mail: `denis.bitouze@univ-littoral.fr`
+- Released under the LaTeX Project Public License v1.3c or later. See
+ http://www.latex-project.org/lppl.txt
+
+-----------------------------------------------------------------------
+
+**The `yathesis` bundle provides a LaTeX class file to help to write a thesis
+following French rules.**
+
+The class is supplied in `.dtx` format. If you want to unpack the `.dtx`
+yourself, running:
+
+ pdftex yathesis.dtx
+
+will extract the class whereas:
+
+ pdflatex yathesis.dtx
+
+will extract it and also typeset the documentation of the code.
+
+Typesetting the documentation of the class requires:
+
+- a number of packages in addition to those needed to use the `yathesis`
+ classes. To compile the documentation without error, you will need, among
+ others, my personal (dirty) package `denisbdoc` for documenting the classes
+ I've written.
+- a complete `pdflatex` run of `these.tex` to be found in the
+ `.../doc/latex/yathesis/french/exemples/specimen/a-plat` directory,
+ with `yathesis-demo` package load at first place. If `latexmk` is available,
+ it is easier to run:
+
+ latexmk -g -norc -r ./latexmkrc -jobname=these -pdflatex="pdflatex %O '\RequirePackage{etoolbox}\AtEndPreamble{\RequirePackage{yathesis-demo}}\input{%S}'" these.tex
+
+- to compile `yathesis-fr.tex` to be found in the
+ `.../doc/latex/yathesis/french/documentation` directory as follows:
+
+ latexmk -norc -r ./latexmkrc yathesis-fr
diff --git a/macros/latex/contrib/yathesis/doc/README-TRANSLATION.md b/macros/latex/contrib/yathesis/doc/README-TRANSLATION.md
new file mode 100644
index 0000000000..07d496fd45
--- /dev/null
+++ b/macros/latex/contrib/yathesis/doc/README-TRANSLATION.md
@@ -0,0 +1,5 @@
+# Contributions welcome!
+
+Currently, the `yathesis` documentation is not translated in English. In case
+you're interested, please contact the maintainer:
+`denis.bitouze@lmpa.univ-littoral.fr`
diff --git a/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf b/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf
new file mode 100644
index 0000000000..1e44bc250d
--- /dev/null
+++ b/macros/latex/contrib/yathesis/doc/yathesis-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/bibliographie.bib b/macros/latex/contrib/yathesis/exemples/specimen/bibliographie.bib
new file mode 100644
index 0000000000..7a545f1207
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/bibliographie.bib
@@ -0,0 +1,54 @@
+@Article{ hp,
+ author = {Poincaré, Henri},
+ title = {Démonstration nouvelle des propriétés de l'indicatrice
+ d'une surface},
+ journal = {Annales de Mathématiques},
+ volume = 13,
+ date = {1874},
+ pages = {449-456}
+}
+
+@Book{ relativite,
+ author = {Einstein, Albert and Lorentz, Hendrik Antoon and
+ Minkowski, Hermann and Weyl, Hermann},
+ title = {The Principle of Relativity},
+ publisher = {Methuen},
+ address = {London},
+ date = {1923}
+}
+
+@InBook{ cond,
+ author = {de Condorcet, Nicolas},
+ editor = {O'Connor, Arhur and Arago, François},
+ title = {Discours prononcé à l'Assemblée Nationale au nom de
+ l'Académie des Sciences à la séance du
+ \formatdate{12}{06}{1790}},
+ booktitle = {Œuvres de Condorcet},
+ publisher = {Firmin Didot Frères},
+ address = {Paris},
+ volume = {1},
+ origdate = {1790-06-12},
+ pages = {508-511},
+ url = {http://gallica.bnf.fr/ark:/12148/bpt6k58105584},
+ date = {1847}
+}
+
+@TechReport{ unrapport,
+ author = {Nom, Prénom},
+ title = {Titre du rapport technique},
+ institution = {Institution où le rapport a vu le jour},
+ date = {2012}
+}
+
+@Manual{ amsmath,
+ title = {User's Guide for the \textsf{amsmath} Package},
+ organization = {American Mathematical Society},
+ date = {2002-02-25}
+}
+
+@PhDThesis{ knuth63,
+ author = {Knuth, Donald Ervin},
+ title = {Finite semifields and projective planes},
+ school = {California Institute of Technology},
+ date = {1963}
+}
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/comue.pdf b/macros/latex/contrib/yathesis/exemples/specimen/comue.pdf
new file mode 100644
index 0000000000..c3918f2927
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/comue.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/labo.pdf b/macros/latex/contrib/yathesis/exemples/specimen/labo.pdf
new file mode 100644
index 0000000000..0467c0a2af
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/labo.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc b/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc
new file mode 100644
index 0000000000..6a0e01d39e
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/latexmkrc
@@ -0,0 +1,23 @@
+$pdf_mode = 1;
+
+$bibtex_use = 1;
+$bibtex = 'biber %O %B';
+
+add_cus_dep('glo', 'gls', 0, 'makeglossaries');
+add_cus_dep('glo2', 'gls2', 0, 'makeglossaries');
+add_cus_dep('acn', 'acr', 0, 'makeglossaries');
+add_cus_dep('slo', 'sls', 0, 'makeglossaries');
+sub makeglossaries{
+ system( "makeglossaries \"$_[0]\"" );
+}
+
+$makeindex = 'texindy -L french';
+
+add_cus_dep('idx', 'ind', 0, 'texindy');
+sub texindy{
+ system("texindy -L french \"$_[0].idx\"");
+}
+
+@generated_exts = qw(aux idx ind lo* out toc acn acr alg bbl bcf fls gl* ist
+run.xml sbl* sl* sym* xdy unq synctex.gz mw *~
+);
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/paris13.pdf b/macros/latex/contrib/yathesis/exemples/specimen/paris13.pdf
new file mode 100644
index 0000000000..58be5770cb
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/paris13.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/these.pdf b/macros/latex/contrib/yathesis/exemples/specimen/these.pdf
new file mode 100644
index 0000000000..c15b4c57fb
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/these.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/these.tex b/macros/latex/contrib/yathesis/exemples/specimen/these.tex
new file mode 100644
index 0000000000..26c3a24d30
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/these.tex
@@ -0,0 +1,814 @@
+% Document de classe yathesis, en 12 points, interligne un et demi, et version finale
+\documentclass[12pt,space=onehalf,version=final]{yathesis}
+%
+% Chargement manuel de packages (pas déjà chargés par la classe yathesis)
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{lipsum} % À proscrire dans un vrai mémoire de thèse !
+\usepackage{kpfonts}
+\usepackage{booktabs}
+\usepackage{siunitx}
+\usepackage{pgfplots}
+\usepackage{floatrow}
+\usepackage{caption}
+\usepackage{listings}
+\usepackage{microtype}
+\usepackage{varioref}
+\usepackage[xindy,quiet]{imakeidx}
+\usepackage[autostyle]{csquotes}
+\usepackage[backend=biber,safeinputenc]{biblatex}
+\usepackage{hyperref}
+\usepackage[xindy,acronyms,symbols]{glossaries}
+%
+% Génération de l'index
+\makeindex
+%
+% Spécification de la ou des ressources bibliographiques
+\addbibresource{bibliographie.bib}
+\addbibresource{biblatex-examples.bib} % Fournie par biblatex.
+%
+% Génération du glossaire
+\makeglossaries
+%
+% (Facultatif) Configuration des styles du glossaire et de la liste d'acronymes
+% (à n'utiliser que si le package « glossaries » est chargé)
+\setglossarystyle{indexhypergroup}
+\setacronymstyle{long-sc-short}
+%
+% Entrées du glossaire, des acronymes et des symboles
+% Glossaire
+\newglossaryentry{latex}{%
+ name=\LaTeX,%
+ description=système de composition de beaux documents%
+}
+\newglossaryentry{vrnc}{%
+ name=langue vernaculaire,%
+ plural=langues vernaculaires,%
+ description=langue locale parlée au sein d'une communauté%
+}
+\newglossaryentry{af}{%
+ name=ancien français,%
+ description= état du français médiéval du \textsc{ix}\ieme{} au
+ \textsc{xiii}\ieme{} siècles inclus%
+}
+\newglossaryentry{mf}{%
+ name= moyen français,%
+ description= état du français médiéval du \textsc{xiv}\ieme{} au \textsc{xv}\ieme{}
+ siècles inclus%
+}
+% Acronymes
+\newacronym{pres}{pres}{Pôle de Recherche et d'Enseignement
+ Supérieur}
+\newacronym{comue}{comue}{Communauté d'universités et établissements}
+\newacronym{ulco}{ulco}{Université du Littoral Côte d'Opale}
+\newacronym{edspi}{edspi}{École Doctorale Sciences Pour
+ l'Ingénieur}
+\newacronym{lmpa}{lmpa}{Laboratoire de Mathématiques Pures et
+ Appliquées Joseph Liouville}
+\newacronym{laser}{laser}{Light Amplification by Stimulated Emission
+ of Radiation soit \enquote{amplification de la lumière par
+ émission stimulée de rayonnement}}
+\newacronym{irm}{irm}{Imagerie par Résonance Magnétique}
+\newacronym{rmn}{rmn}{Résonance Magnétique Nucléaire}
+\newacronym{ascii}{ascii}{American Standard Code for Information Interchange}
+\newacronym{bios}{bios}{Basic Input Output System}
+\newacronym{ctan}{ctan}{Comprehensive \TeX{} Archive Network}
+\newacronym{dvd}{dvd}{Digital Video Disc}
+\newacronym{erp}{erp}{Enterprise Resource Planning}
+\newacronym{faq}{faq}{Frequently Asked Questions, traduit en français par
+ \enquote{Foire Aux Questions}}
+\newacronym{gnu}{gnu}{GNU's Not Unix (acronyme récursif)}
+\newacronym{http}{http}{Hypertext Transfer Protocol}
+\newacronym{ip}{ip}{Internet Protocol}
+\newacronym{jpeg}{jpeg}{Joint Photographic Experts Group}
+\newacronym{kdm}{kdm}{KDE Display Manager}
+\newacronym{lug}{lug}{Linux Users Group}
+\newacronym{mac}{mac}{Medium Access Control}
+\newacronym{nfs}{nfs}{Network File System}
+\newacronym{ocr}{ocr}{Optical Character Recognition}
+\newacronym{p2p}{p2p}{Peer to Peer}
+\newacronym{ram}{ram}{Random Access Memory}
+\newacronym{radar}{radar}{RAdio Detection And Ranging}
+\newacronym{svg}{svg}{Scalable Vector Graphics}
+\newacronym{tft}{tft}{Thin-Film Transistor}
+\newacronym{utf-8}{utf-8}{Unicode Transformation Format 8 bits}
+\newacronym{vga}{vga}{Video Graphics Array}
+\newacronym{wpa}{wpa}{Wi-Fi Protected Access}
+\newacronym{xhtml}{xhtml}{Extensible HyperText Markup Language}
+\newacronym{fsf}{fsf}{Free Software Foundation}
+\newacronym{gui}{gui}{Graphical User Interface}
+% Symboles
+\newglssymbol{ohm}{\si{\ohm}}{ohm}{unité de résistance électrique}
+\newglssymbol{exists}{\ensuremath{\exists}}{quantificateur existentiel}{}
+\newglssymbol[constanteplanck]{planck}{\ensuremath{h}}{constante de
+ Planck}{\ensuremath{h\approx\SI{6,62606957e-34}{\joule\second}}}
+%
+% Configuration globale de l'apparence des listings informatiques
+\lstset{%
+ language=C,
+ numbers=left,
+ frame=leftline,
+ framerule=0.8pt,
+ rulecolor=\color{red},
+ basicstyle=\ttfamily,
+ keywordstyle=\color{blue}\bfseries,
+ stringstyle=\color{cyan},
+ commentstyle=\color{gray}\itshape
+}
+%
+% Les figures flottantes et leurs légendes sont dans un (même) cadre
+\floatsetup[figure]{style=BOXED}%
+%
+% Numéro de version du package pgfplots
+\pgfplotsset{compat=1.13}
+%
+% Ajustement pour éviter, dans la table des matières, des débordements de
+% numéros de pages dans la marge de droite
+\makeatletter
+\renewcommand*\@pnumwidth{29pt}
+\makeatother
+%
+% Macro pour mettre en forme les noms de fichiers
+\newcommand{\fichier}[1]{\texttt{#1}}
+% Macro pour mettre en forme les noms de packages LaTeX
+\newcommand{\package}[1]{\textsf{#1}}
+% Macro pour mettre en forme des locutions étrangères
+\newcommand{\locution}[1]{\emph{#1}}
+%
+% Commande permettant de faire figurer d'un seul coup toutes les références des
+% ressources bibliographiques ci-dessus, même si elles ne sont pas citées
+% explicitement (à proscrire dans un vrai mémoire de thèse !)
+\nocite{*}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Caractéristiques du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Préparation des pages de couverture et de titre
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Auteur de la thèse : prénom (1er argument obligatoire), nom (2e argument
+% obligatoire) et éventuel courriel (argument optionnel). Les éventuels accents
+% devront figurer et le nom /ne/ doit /pas/ être saisi en capitales
+\author[aa@zygo.fr]{Alphonse}{Allais}
+%
+% Titre de la thèse dans la langue principale (argument obligatoire) et dans la
+% langue secondaire (argument optionnel)
+\title[Laugh's Chaos]{Le chaos du rire}
+%
+% (Facultatif) Sous-titre de la thèse dans la langue principale (argument
+% obligatoire) et dans la langue secondaire (argument optionnel)
+\subtitle[Chaos' Laugh]{Le rire du chaos}
+%
+% Champ disciplinaire dans la langue principale (argument obligatoire) et dans
+% la langue secondaire (argument optionnel)
+\academicfield[Mathematics]{Mathématiques}
+%
+% (Facultatif) Spécialité dans la langue principale (argument obligatoire) et
+% dans la langue secondaire (argument optionnel)
+\speciality[Dynamical systems]{Systèmes dynamiques}
+%
+% Date de la soutenance, au format {jour}{mois}{année} donnés sous forme de
+% nombres
+\date{1}{1}{2015}
+%
+% (Facultatif) Date de la soumission, au format {jour}{mois}{année} donnés sous
+% forme de nombres
+\submissiondate{1}{10}{2014}
+%
+% (Facultatif) Sujet pour les méta-données du PDF
+\subject[Chaotic Laugh]{Rire chaotique}
+%
+% (Facultatif) Nom (argument obligatoire) de la ComUE
+\comue[logo=comue]{ComUE Lille Nord de France}
+%
+% Nom (argument obligatoire) de l'institut (principal en cas de cotutelle)
+\institute[logo=ulco,url=http://www.univ-littoral.fr/]{ULCO}
+%
+% (Facultatif) En cas de cotutelle (normalement, seulement dans le cas de
+% cotutelle internationale), nom (argument obligatoire) du second institut
+\coinstitute[logo=paris13,url=http://www.univ-paris13.fr/]{Université de Paris~13}
+%
+% (Facultatif) Nom (argument obligatoire) de l'école doctorale
+\doctoralschool[url=http://edspi.univ-lille1.fr/]{ED Régionale SPI 72}
+%
+% Nom (1er argument obligatoire) et adresse (2e argument obligatoire) du
+% laboratoire (ou de l'unité) où la thèse a été préparée, à utiliser /autant de
+% fois que nécessaire/
+\laboratory[
+logo=labo,
+logoheight=1.25cm,
+telephone=(33)(0)3 21 46 55 86,
+fax=(33)(0)3 21 46 55 75,
+email=secretariat@lmpa.univ-littoral.fr,
+url=http://www-lmpa.univ-littoral.fr/
+]{LMPA Joseph Liouville}{%
+ Maison de la Recherche Blaise Pascal \\
+ 50, rue Ferdinand Buisson \\
+ CS 80699 \\
+ 62228 Calais Cedex \\
+ France}
+%
+% Directeur(s) de thèse et membres du jury, saisis au moyen des commandes
+% \supervisor, \cosupervisor, \comonitor, \referee, \committeepresident,
+% \examiner, \guest, à utiliser /autant de fois que nécessaire/ et /seulement
+% si nécessaire/. Toutes basées sur le même modèle, ces commandes ont
+% 2 arguments obligatoires, successivement les prénom et nom de chaque
+% personne. Si besoin est, on peut apporter certaines précisions en argument
+% optionnel, essentiellement au moyen des clés suivantes :
+% - « professor », « seniorresearcher », « associateprofessor »,
+% « associateprofessor* », « juniorresearcher », « juniorresearcher* » (qui
+% peuvent ne pas prendre de valeur) pour stipuler le corps auquel appartient
+% la personne ;
+% - « affiliation » pour stipuler l'institut auquel est affiliée la personne ;
+% - « female » pour stipuler que la personne est une femme pour que certains
+% mots clés soient accordés en genre.
+%
+\supervisor[professor,affiliation=ULCO]{Michel}{de Montaigne}
+\cosupervisor[associateprofessor*,affiliation=ULCO]{Charles}{Baudelaire}
+\comonitor[associateprofessor,affiliation=ULCO]{Étienne}{de la Boétie}
+\referee[professor,affiliation=IHP]{René}{Descartes}
+\referee[seniorresearcher,affiliation=CNRS]{Denis}{Diderot}
+\committeepresident[professor,affiliation=ENS Lyon]{Victor}{Hugo}
+\examiner[associateprofessor,affiliation=Université de Paris~13]{Sophie}{Germain}
+\examiner[juniorresearcher,affiliation=INRIA]{Joseph}{Fourier}
+\examiner[juniorresearcher*,affiliation=CNRS]{Paul}{Verlaine}
+\guest{George}{Sand}
+%
+% (Facultatif) Mention du numéro d'ordre de la thèse (s'il est connu, ce numéro
+% est à spécifier en argument optionnel)
+\ordernumber[42]
+%
+% Préparation des mots clés dans la langue principale (1er argument) et dans la
+% langue secondaire (2e argument)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\keywords{chaos, rire}{chaos, laugh}
+%
+% Production des pages de couverture et de titre
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\maketitle
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie liminaire de la thèse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% (Facultatif) Production de la page de clause de non-responsabilité
+\makedisclaimer
+%
+% (Facultatif) Production de la page de mots clés
+\makekeywords
+%
+% (Facultatif) Production de la page affichant les logo, nom et coordonnées du
+% ou des laboratoires (ou unités de recherche) où la thèse a été préparée
+\makelaboratory
+%
+% (Facultatif) Dédicace(s)
+\dedication{À mon directeur bien-aimé !}
+\dedication{À mon co-directeur bien-co-aimé aussi !}
+\dedication{Je dédie également ce travail\\à tous ceux qui le méritent}
+% (Facultatif) Production de la page de dédicace(s)
+\makededications
+%
+% (Facultatif) Épigraphe(s)
+\frontepigraph{Science sans conscience n'est que ruine de l'âme.}{François Rabelais}
+\frontepigraph[english]{I can resist everything, except temptation!}{Oscar Wilde}
+\frontepigraph{Il est plus facile de désintégrer un atome qu'un préjugé.}{Albert Einstein}
+% (Facultatif) Production de la page de d'épigraphe(s)
+\makefrontepigraphs
+%
+% Résumés (de 1700 caractères maximum, espaces compris) dans la
+% langue principale (1re occurrence de l'environnement « abstract »)
+% et, facultativement, dans la langue secondaire (2e occurrence de
+% l'environnement « abstract »)
+\begin{abstract}
+ \lipsum[1-2]
+\end{abstract}
+\begin{abstract}
+ \lipsum[3-4]
+\end{abstract}
+%
+% Production de la page de résumés
+\makeabstract
+%
+% (Facultatif) Chapitre de remerciements
+\chapter{Remerciements}
+\section{Une section de remerciements}
+\lipsum[1]
+\section{Une autre section de remerciements}
+\lipsum[2-9]
+%
+% (Facultatif) Chapitre d'avertissement
+\chapter{Avertissement}
+Thèse hilarante, comme le gaz du même nom !
+%
+% (Facultatif) Liste des acronymes
+\printacronyms
+%
+% (Facultatif) Liste des symboles
+\printsymbols
+%
+% (Facultatif) Chapitre d'avant-propos
+\chapter{Avant-propos}
+\section{Une section d'avant-propos}
+\lipsum[30-45]
+\section{Une autre section d'avant-propos}
+\lipsum[30-35]
+%
+% Sommaire
+\tableofcontents[depth=chapter,name=Sommaire]
+%
+% (Facultatif) Liste des tableaux
+\listoftables
+%
+% (Facultatif) Table des figures
+\listoffigures
+%
+% (Facultatif) Table des listings (nécessite que le package « listings » soit
+% chargé)
+% \lstlistoflistings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie principale (du « corps ») de la thèse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mainmatter
+%
+% Chapitre d'introduction (générale)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter*{Introduction générale}
+\lipsum[26]
+\section{Une section d'introduction}
+\lipsum[28]
+\subsection{Une sous-section d'introduction}
+\lipsum[29]
+\subsubsection{Une sous-sous-section d'introduction}
+\lipsum[30]
+\paragraph{Un paragraphe d'introduction}
+\lipsum[31]
+\subparagraph{Un sous-paragraphe d'introduction}
+\lipsum[32]
+\subparagraph{Un autre sous-paragraphe d'introduction}
+\lipsum[33]
+\paragraph{Un autre paragraphe d'introduction}
+\lipsum[34]
+\subsubsection{Une autre sous-sous-section d'introduction}
+\lipsum[35]
+\subsection{Une autre sous-section d'introduction}
+\lipsum[36]
+\section{Une autre section d'introduction}
+\lipsum[37]
+%
+% Chapitres ordinaires (avec parties éventuelles)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Première partie éventuelle
+\part{Le chaos du rire}
+%
+% Premier chapitre
+\chapter{Contexte du chaos du rire}
+
+Je peux citer\index{citation}\index{citation!formelle} des extraits de
+documents. J'ai par exemple reproduit ci-dessous, par extraits, le discours de
+\citeauthor{cond}, prononcé à l'Assemblée Nationale au nom de l'Académie des
+Sciences.
+
+Voici tout d'abord un extrait composé automatiquement\footnote{Car il dépasse
+ trois lignes.} \og hors-texte\fg{}\index{citation!longue}.
+%
+\blockcquote[pp.~508-509]{cond}{%
+ Messieurs,
+
+ Vous avez daigné nous associer en quelque sorte à vos nobles
+ travaux; et, en nous permettant de concourir au succès de vos vues
+ bienfaisantes, vous avez montré que les sages représentants d'une
+ nation éclairée ne pouvaient méconnaître ni le prix des sciences, ni
+ l'utilité des compagnies occupées d'en accélérer le progrès et d'en
+ multiplier l'application.
+
+ Depuis son institution, l'Académie a toujours saisi et même
+ recherché les occasions d'employer pour le bien des hommes, les
+ connaissances acquises par la méditation, ou par l'étude de la
+ nature : c'est dans son sein qu'un étranger
+ illustre\footnote{Huygens}, à qui une théorie profonde avait révélé
+ le moyen d'obtenir une unité de longueur naturelle et invariable,
+ forma le premier le plan d'y rapporter toutes les mesures pour les
+ rendre par là uniformes et inaltérables.
+}
+
+Ensuite, je peux citer un long extrait en étant certain qu'il ne
+sera pas \og hors-texte\fg{}\index{citation!courte} :
+\textcquote[p.~509]{cond}{L'Académie s'est toujours honorée dans ses
+ annales d'un préjugé détruit, d'un établissement public
+ perfectionné, d'un procédé économique ou salutaire introduit dans
+ les arts, que d'une découverte difficile ou brillante; et son
+ zèle, encouragé par votre confiance, va doubler d'activité et de
+ force.}. Il est bien entendu possible de citer de courts extraits
+de manière informelle\index{citation!informelle} : \citeauthor{cond}
+insiste sur \enquote{la loi de la nature\textins{, qui} a voulu que
+ l'homme fût éclairé pour qu'il pût être juste, et libre pour qu'il
+ pût être heureux} de façon à ce que les membres de l'assemblée
+nationale n'oublient pas l'importance de l'instruction.
+
+Un petit aparté : il est possible de citer des
+citations\index{citation!imbriquée}. Ainsi, le zygomaticien
+s'exclama : \enquote{Pierre Dac ne disait-il pas : \enquote{Je suis
+ pour tout ce qui est contre et contre tout ce qui est pour!}?
+ Si, si, il le disait\ldots{}}, ce qui ne nous surprît guère.
+
+Et maintenant la suite (et fin) du discours, dans un extrait dont je
+suis certain qu'il sera \og hors-texte\fg{} :
+%
+\begin{displaycquote}[pp.~509-511]{cond}
+ Et comment pourrions nous oublier jamais que les premiers honneurs
+ publics, décernés par vous, l'ont été à la mémoire d'un de nos
+ confrères? Ne nous est-il permis de croire que les sciences ont eu
+ droit aussi quelque part à ces marques glorieuses de votre estime
+ pour un sage qui, célèbre dans les deux mondes par de grandes
+ découvertes, n'a jamais chéri dans l'éclat de sa renommée que le
+ moyen d'appeler ses concitoyens à l'indépendance d'une voix plus
+ imposante, et de rallier en Europe, à une si noble cause, tout ce
+ que son génie lui avait mérité de disciples et d'admirateurs?
+
+ Chacun de nous, comme homme, comme citoyen, vous doit une éternelle
+ reconnaissance pour le bienfait d'une constitution égale et libre,
+ bienfait dont aucune grande nation de l'Europe n'avait encore joui;
+ et pour celui de cette déclaration des droits, qui, enchaînant les
+ législateurs eux-mêmes par les principes de la justesse universelle,
+ rend l'homme indépendant de l'homme, et ne soumet sa volonté qu'à
+ l'empire de sa raison. Mais des citoyens voués par état à la
+ recherche de la vérité, instruits par l'expérience, et ce que
+ peuvent les lumières pour la félicité générale, et de tout ce que
+ les préjugés y opposent d'obstacles, en égarant ou en dégradant les
+ esprits, doivent porter plus loin leurs regards, et, sans doute, ont
+ le droit de vous remercier au nom de l'humanité, comme au nom de la
+ patrie.
+
+ Ils sentent combien, en ordonnant que les hommes ne seraient plus
+ rien par des qualités étrangères, et tout par leurs par leurs
+ qualités personnelles, vous avez assuré le progrès de l'espèce
+ humaine, puisque vous avez forcé l'ambition et la vanité même à ne
+ plus attendre les distinctions ou le pouvoir que du talent et des
+ lumières; puisque le soin de fortifier sa raison, de cultiver son
+ esprit, d'étendre ses connaissances, est devenu le seul moyen
+ d'obtenir une considération indépendante et une supériorité réelle.
+
+ Ils savent que vous n'avez pas moins fait pour le bonheur des
+ générations futures, en rétablissant l'esprit humain dans son
+ indépendance naturelle, que pour celui de la génération présente, en
+ mettant les propriétés et la vie des hommes à l'abri des attentats
+ du despotisme.
+
+ Ils voient, dans les commissions dont vous les avez chargé, avec
+ quelle profondeur de vues vous avez voulu simplifier toutes les
+ opérations nécessaires dans les conventions, dans les échanges, dans
+ les actions de la vie commune, de peur que l'ignorance ne rendit
+ esclave celui que vous aviez déclaré libre, et ne réduisit l'égalité
+ prononcée par vos lois à n'être jamais qu'un vain nom.
+
+ Pourraient-ils enfin ne pas apercevoir qu'en établissant pour la
+ première fois, le système entier de la société sur des bases
+ immuables de la vérité et de la justice, en attachant ainsi par une
+ chaîne éternelle les progrès de l'art social au progrès de la
+ raison, vous avez étendu vos bienfaits à tous les pays, à tous les
+ siècles, et dévoué toutes les erreurs, comme toutes les tyrannies à
+ une destruction rapide?
+
+ Ainsi, grâce à la générosité, à la pureté de vos principes, la
+ force, l'avarice, ou la séduction, cesseront bientôt de contrarier,
+ par des institutions arbitraires, la loi de la nature, qui a voulu
+ que l'homme fût éclairé pour qu'il pût être juste, et libre pour
+ qu'il pût être heureux. Ainsi, vous jouirez à la fois et du bien que
+ vous faites, et du bien que vous préparez, et vous achèverez votre
+ ouvrage au milieu des bénédictions de la foule des opprimés dont
+ vous avez brisé les fers, et des acclamations des hommes éclairés
+ dont vous avez surpassé les espérances.
+\end{displaycquote}
+%
+% Deuxième chapitre
+\chapter{Développement}
+\label{chap-developpement}
+
+\epigraphhead[30]{\selectlanguage{english}\epigraph{I have not failed. I've
+ just found 10.000 ways that won't work.}{Thomas A. Edison}}
+
+Dans ce chapitre, nous développons notre travail. Nous citons une
+référence\index{référence!bibliographique|see{bibliographie}}
+bibliographique\index{bibliographie!référence} \autocite{relativite}
+car, en effet, nous nous appuierons dans cette partie sur des
+résultats fondamentaux qu'on y trouve
+\autocite[chap.~3]{relativite}.
+
+Nous ne manquerons pas de causer de \glspl{vrnc}, d'\gls{af} et de \gls{mf},
+termes définis dans le glossaire\index{glossaire}. Nous recourrons également aux
+symboles de l'\gls{ohm}, du \gls{exists} et de la \gls{planck} définis dans la
+liste des symboles. Vous noterez que notre travail a été composé au moyen de
+\gls{latex}\index{\gls{latex}}.
+
+Notre étude a porté sur l'\gls{irm} et la \gls{rmn}, définis dans la
+liste des acronymes\index{acronyme}. Nous pouvons insérer d'autres
+acronymes :
+\begin{itemize}
+\item \gls{ascii} ;
+\item \gls{bios} ;
+\item \gls{ctan} ;
+\item \gls{dvd} ;
+\item \gls{erp} ;
+\item \gls{faq} ;
+\item \gls{gnu} ;
+\item \gls{http} ;
+\item \gls{ip} ;
+\item \gls{jpeg} ;
+\item \gls{kdm} ;
+\item \gls{lug} ;
+\item \gls{mac} ;
+\item \gls{nfs} ;
+\item \gls{ocr} ;
+\item \gls{p2p} ;
+\item \gls{ram} ;
+\item \gls{radar} ;
+\item \gls{svg} ;
+\item \gls{tft} ;
+\item \gls{utf-8} ;
+\item \gls{vga} ;
+\item \gls{wpa} ;
+\item \gls{xhtml}.
+\end{itemize}
+On notera que les acronymes précédents, dont ce sont les premières
+occurrences dans le document, figurent sous leur forme complète,
+c'est-à-dire sous leur forme développée suivie entre parenthèses de
+leur forme abrégée. Ceci est assuré de façon automatique par
+\gls{latex} et le package \textsf{glossaries} qui, en outre, vont
+composer toutes les occurrences suivantes de ces acronymes
+uniquement sous leur forme abrégée\footnote{Sauf contre-ordre.} :
+\begin{itemize}
+\item \gls{ascii} ;
+\item \gls{bios} ;
+\item \gls{ctan} ;
+\item \gls{dvd} ;
+\item \gls{erp} ;
+\item \gls{faq} ;
+\item \gls{gnu} ;
+\item \gls{http} ;
+\item \gls{ip} ;
+\item \gls{jpeg} ;
+\item \gls{kdm} ;
+\item \gls{lug} ;
+\item \gls{mac} ;
+\item \gls{nfs} ;
+\item \gls{ocr} ;
+\item \gls{p2p} ;
+\item \gls{ram} ;
+\item \gls{radar} ;
+\item \gls{svg} ;
+\item \gls{tft} ;
+\item \gls{utf-8} ;
+\item \gls{vga} ;
+\item \gls{wpa} ;
+\item \gls{xhtml}.
+\end{itemize}
+%
+\section{Cadre de travail}\label{sec-cadre}
+%
+Si on examine, dans le fichier\index{\gls{latex}!fichier}
+\fichier{developpementI.tex} du répertoire \fichier{corps}, le code source
+du tableau\vref{tab-passionnant}\index{\gls{latex}!tableau}, on verra l'usage
+de commandes permettant d'obtenir des tableaux d'allure
+professionnelle\footnote{Pour obtenir de tels tableaux sous \LaTeX{}, on
+ \href{http://www.tug.org/pracjourn/2007-1/mori/mori.pdf}{trouvera sur
+ Internet} comment procéder.}.
+%
+\begin{table}[ht]
+ \centering
+ \begin{tabular}{ccc}
+ \toprule
+ \multicolumn{1}{c}{} & Word & \LaTeX{} \\
+ \midrule
+ Libre & Non & Oui \\
+ Gratuit & Non & Oui \\
+ Élégant & Non & Oui \\
+ Efficace & Non & Oui \\
+ Puissant & Non & Oui \\
+ \bottomrule
+ \end{tabular}
+ \caption{Un tableau passionnant}
+ \label{tab-passionnant}
+\end{table}
+
+\lipsum[3-22]
+%
+\section{Méthode de travail}
+\label{sec-methode}
+%
+Nous incluons la figure\vref{fig-tigre}\index{\gls{latex}!figure} qui n'est
+pas là pour faire joli, mais bien pour éclairer notre propos.
+\begin{figure}
+ \centering
+ \capstart
+ \includegraphics[width=.35\linewidth]{tiger}
+ \caption[Un tigre]{Une figure avec une légende assez longue qui peut
+ même, au besoin, s'étaler sur plusieurs lignes.}
+ \label{fig-tigre}
+\end{figure}
+On note qu'on peut mettre, en argument optionnel de la commande
+permettant de créer la légende, une légende \og courte\fg{} qui sera
+celle qui figurera, par exemple, dans la liste des figures.
+
+On pourra se convaincre, à la lecture des pages~86 à~89 de la
+\href{http://mirrors.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf}{documentation
+ du package \package{TikZ}}, de ce qu'une figure\index{\gls{latex}!figure}
+n'est pas toujours préférable à un tableau\index{\gls{latex}!tableau}. Plus
+généralement, on pourra lire toute la section~7, intitulée \emph{Guidelines on
+ Graphics} (pages~84 à~90).
+
+Avec \LaTeX{}\index{\gls{latex}|textbf}, il est extrêmement aisé de créer
+un index\index{\gls{latex}!index}, comme dans les documents les mieux
+composés.
+
+\lipsum[23-42]
+%
+\section[Discussion]{Discussion et interprétation des résultats}
+\label{sec-discussion}
+%
+On constate que le titre de cette section est différent de ce qui
+apparaît en entête et dans la table des matières : c'est l'argument
+optionnel de la commande de sectionnement qui a permis cela.
+
+\lipsum[43-52]
+%
+% Troisième chapitre
+\chapter{Conclusion}
+Dans ce chapitre, nous concluons l'étude du chaos du rire.
+
+\lipsum[26-27]
+\section{Une section}
+\lipsum[28-29]
+\subsection{Une sous-section}
+\lipsum[29-31]
+\subsubsection{Une sous-sous-section}
+\lipsum[31-35]
+\paragraph{Un paragraphe}
+\lipsum[36-38]
+\paragraph{Un sous-paragraphe}
+\lipsum[39-41]
+\paragraph{Un autre sous-paragraphe}
+\lipsum[39-41]
+\paragraph{Un autre paragraphe}
+\lipsum[36-38]
+\subsubsection{Une autre sous-sous-section}
+\lipsum[31-35]
+\subsection{Une autre sous-section}
+\lipsum[29-31]
+\section{Une autre section}
+\lipsum[28-29]
+%
+%
+% Deuxième partie éventuelle
+\part{Le rire du chaos}
+%
+% Quatrième chapitre
+\chapter{Contexte du rire du chaos}
+\epigraphhead[30]{\epigraph{La science a fait de nous des dieux avant même que
+ nous méritions d'être des hommes.}{Jean Rostand}}
+
+\lipsum[26-32]
+%
+% Cinquième chapitre
+\chapter{Développement}
+
+Nous pouvons faire référence à des graphiques (très jolis au demeurant), comme
+celui de la figure\vref{sin-x*sin-y}.
+\lipsum[3-10]
+\begin{figure}[ht]
+ \centering
+ \capstart
+ \begin{tikzpicture}
+ \begin{axis}[colorbar]
+ \addplot3[surf,domain=0:360]
+ {sin(x)*sin(y)};
+ \end{axis}
+ \end{tikzpicture}
+ \caption{Représentation graphique de la fonction $f:(x,y)\mapsto
+ \sin x\times\sin y$}
+ \label{sin-x*sin-y}
+\end{figure}
+%
+% Sixième chapitre
+\chapter{Conclusion}
+Dans ce chapitre, nous concluons l'étude du rire du chaos.
+
+\lipsum[6-9]
+%
+% Chapitre de conclusion (générale)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter*{Conclusion générale}
+\lipsum[26-27]
+\section{Une section de conclusion}
+\lipsum[28-29]
+\subsection{Une sous-section de conclusion}
+\lipsum[29-31]
+\subsubsection{Une sous-sous-section de conclusion}
+\lipsum[31-35]
+\paragraph{Un paragraphe de conclusion}
+\lipsum[36-38]
+\subparagraph{Un sous-paragraphe de conclusion}
+\lipsum[39-41]
+\subparagraph{Un autre sous-paragraphe de conclusion}
+\lipsum[39-41]
+\paragraph{Un autre paragraphe de conclusion}
+\lipsum[36-38]
+\subsubsection{Une autre sous-sous-section de conclusion}
+\lipsum[31-37]
+\subsection{Une autre sous-section de conclusion}
+\lipsum[29-31]
+\section{Une autre section de conclusion}
+\lipsum[28-43]
+%
+% Liste des références bibliographiques
+\printbibliography
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie annexe éventuelle
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\appendix
+%
+% Premier chapitre annexe (éventuel)
+\chapter{Documents juridiques}
+\label{chap-juridique}
+
+Cette partie regroupe les documents juridiques officiels.
+
+\section{Licence sous laquelle est publié notre travail}
+\label{sec-discours}
+
+\lipsum[11-30]
+
+\section{Transposition de la licence précédente en droit français}
+\label{sec-autre-discours}
+
+\lipsum[31-50]
+%
+% Deuxième chapitre annexe (éventuel)
+\chapter{Programmes informatiques}
+\label{chap-listings}
+
+Les listings suivants sont au cœur de notre travail.
+
+\begin{lstlisting}[caption={Il est l'heure}]
+#include <stdio.h>
+int heures, minutes, secondes;
+
+/****************************************************/
+/* */
+/* print_heure */
+/* */
+/* But: */
+/* Imprime l'heure */
+/* */
+/* Interface: */
+/* Utilise les variables globales */
+/* heures, minutes, secondes */
+/* */
+/****************************************************/
+
+void print_heure(void)
+{
+ printf("Il est %d heure",heures);
+ if (heures > 1) printf("s");
+ printf(" %d minute",minutes);
+ if (minutes > 1) printf("s");
+ printf(" %d seconde",secondes);
+ if (secondes > 1) printf("s");
+ printf("\n");
+}
+\end{lstlisting}
+\begin{lstlisting}[caption={Factorielle}]
+int factorielle(int n)
+{
+ if (n > 2) return n * factorielle(n - 1);
+ return n;
+}
+\end{lstlisting}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie finale
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\backmatter
+%
+% (Facultatif) Glossaire (si souhaité distinct de la liste des acronymes) :
+\printglossary
+%
+% (Facultatif) Index :
+\printindex
+%
+% Table des matières
+\tableofcontents
+%
+% (Facultatif) Production de la 4e de couverture :
+\makebackcover
+%
+\end{document}
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/tiger.pdf b/macros/latex/contrib/yathesis/exemples/specimen/tiger.pdf
new file mode 100644
index 0000000000..140a061452
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/tiger.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/exemples/specimen/ulco.pdf b/macros/latex/contrib/yathesis/exemples/specimen/ulco.pdf
new file mode 100644
index 0000000000..a62394aa6e
--- /dev/null
+++ b/macros/latex/contrib/yathesis/exemples/specimen/ulco.pdf
Binary files differ
diff --git a/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx b/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx
new file mode 100644
index 0000000000..46866d39f0
--- /dev/null
+++ b/macros/latex/contrib/yathesis/source/yathesis-samples-templates.dtx
@@ -0,0 +1,1376 @@
+% Canevas et spécimens de thèse.
+%
+% \begin{macrocode}
+%<*flat-template|these-master>
+%<<COMMENT
+% Document de classe yathesis
+%COMMENT
+\documentclass{yathesis}
+%</flat-template|these-master>
+%<*these-sample|flat-sample>
+%<<COMMENT
+% Document de classe yathesis, en 12 points, interligne un et demi, et version finale
+%COMMENT
+\documentclass[12pt,space=onehalf,version=final]{yathesis}
+%</these-sample|flat-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Chargement manuel de packages (pas déjà chargés par la classe yathesis)
+%COMMENT
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+%<these-sample|flat-sample>\usepackage{lipsum} % À proscrire dans un vrai mémoire de thèse !
+\usepackage{kpfonts}
+\usepackage{booktabs}
+\usepackage{siunitx}
+\usepackage{pgfplots}
+\usepackage{floatrow}
+\usepackage{caption}
+%<these-sample|flat-sample>\usepackage{listings}
+\usepackage{microtype}
+\usepackage{varioref}
+%<these-sample|flat-sample>\usepackage[xindy,quiet]{imakeidx}
+%<these-master|flat-template>%\usepackage[xindy,quiet]{imakeidx}
+%<these-sample|flat-sample>\usepackage[autostyle]{csquotes}
+%<these-master|flat-template>%\usepackage[autostyle]{csquotes}
+%<these-sample|flat-sample>\usepackage[backend=biber,safeinputenc]{biblatex}
+%<these-master|flat-template>%\usepackage[backend=biber,safeinputenc]{biblatex}
+\usepackage{hyperref}
+%</these-sample|flat-sample|flat-template|these-master>
+%<these-sample|flat-sample>\usepackage[xindy,acronyms,symbols]{glossaries}
+%<these-master|flat-template>%\usepackage[xindy,acronyms,symbols]{glossaries}
+%<*flat-template|flat-sample|these-master|these-sample>
+%<<COMMENT
+%
+%COMMENT
+%<flat-template|these-master>% (Facultatif) Génération de l'index (obligatoire si un package d'index, par
+%<flat-template|these-master>% exemple « imakeidx », est chargé)
+%<flat-template|these-master>% \makeindex
+%<these-sample|flat-sample>% Génération de l'index
+%<these-sample|flat-sample>\makeindex
+%<<COMMENT
+%
+%COMMENT
+%<flat-template|these-master>% (Facultatif) Spécification de la ou des ressources bibliographiques
+%<flat-template|these-master>% (obligatoire si le package « biblatex » est chargé)
+%<flat-template>% \addbibresource{}
+%<flat-template>% \addbibresource{}
+%<these-master>% \addbibresource{auxiliaires/bibliographie.bib}
+%<these-master>% \addbibresource{auxiliaires/}
+%<these-sample|flat-sample>% Spécification de la ou des ressources bibliographiques
+%<flat-sample>\addbibresource{bibliographie.bib}
+%<these-sample>\addbibresource{auxiliaires/bibliographie.bib}
+%<these-sample|flat-sample>\addbibresource{biblatex-examples.bib} % Fournie par biblatex.
+%<<COMMENT
+%
+%COMMENT
+%<flat-template|these-master>% (Facultatif) Génération du glossaire (obligatoire si le package « glossaries »
+%<flat-template|these-master>% est chargé)
+%<flat-template|these-master>% \makeglossaries
+%<these-sample|flat-sample>% Génération du glossaire
+%<these-sample|flat-sample>\makeglossaries
+%<<COMMENT
+%
+%COMMENT
+%<flat-template|these-master>% (Facultatif) Configuration des styles du glossaire et de la liste d'acronymes
+%<flat-template|these-master>% (à n'utiliser que si le package « glossaries » est chargé)
+%<flat-template|these-master>% \setglossarystyle{indexhypergroup}
+%<flat-template|these-master>% \setacronymstyle{long-sc-short}
+%<these-sample|flat-sample>% (Facultatif) Configuration des styles du glossaire et de la liste d'acronymes
+%<these-sample|flat-sample>% (à n'utiliser que si le package « glossaries » est chargé)
+%<these-sample|flat-sample>\setglossarystyle{indexhypergroup}
+%<these-sample|flat-sample>\setacronymstyle{long-sc-short}
+%<<COMMENT
+%
+%COMMENT
+%<flat-template|these-master|these-sample>% (Facultatif) Spécification de la ou des ressources terminologiques
+%<flat-template>% \loadglsentries{}
+%<flat-template>% \loadglsentries{}
+%<flat-template>% \loadglsentries{}
+%<these-master>% \loadglsentries{auxiliaires/}
+%<these-master>% \loadglsentries{auxiliaires/}
+%<these-master>% \loadglsentries{auxiliaires/}
+%<these-sample>\loadglsentries{auxiliaires/glossaire}
+%<these-sample>\loadglsentries{auxiliaires/acronymes}
+%<these-sample>\loadglsentries{auxiliaires/symboles}
+%</flat-template|flat-sample|these-master|these-sample>
+%<flat-sample>% Entrées du glossaire, des acronymes et des symboles
+%<flat-sample>% Glossaire
+%<*flat-sample|glossary-sample>
+\newglossaryentry{latex}{%
+ name=\LaTeX,%
+ description=système de composition de beaux documents%
+}
+\newglossaryentry{vrnc}{%
+ name=langue vernaculaire,%
+ plural=langues vernaculaires,%
+ description=langue locale parlée au sein d'une communauté%
+}
+\newglossaryentry{af}{%
+ name=ancien français,%
+ description= état du français médiéval du \textsc{ix}\ieme{} au
+ \textsc{xiii}\ieme{} siècles inclus%
+}
+\newglossaryentry{mf}{%
+ name= moyen français,%
+ description= état du français médiéval du \textsc{xiv}\ieme{} au \textsc{xv}\ieme{}
+ siècles inclus%
+}
+%</flat-sample|glossary-sample>
+%<flat-sample>% Acronymes
+%<*flat-sample|acronyms-sample>
+\newacronym{pres}{pres}{Pôle de Recherche et d'Enseignement
+ Supérieur}
+\newacronym{comue}{comue}{Communauté d'universités et établissements}
+\newacronym{ulco}{ulco}{Université du Littoral Côte d'Opale}
+\newacronym{edspi}{edspi}{École Doctorale Sciences Pour
+ l'Ingénieur}
+\newacronym{lmpa}{lmpa}{Laboratoire de Mathématiques Pures et
+ Appliquées Joseph Liouville}
+\newacronym{laser}{laser}{Light Amplification by Stimulated Emission
+ of Radiation soit \enquote{amplification de la lumière par
+ émission stimulée de rayonnement}}
+\newacronym{irm}{irm}{Imagerie par Résonance Magnétique}
+\newacronym{rmn}{rmn}{Résonance Magnétique Nucléaire}
+\newacronym{ascii}{ascii}{American Standard Code for Information Interchange}
+\newacronym{bios}{bios}{Basic Input Output System}
+\newacronym{ctan}{ctan}{Comprehensive \TeX{} Archive Network}
+\newacronym{dvd}{dvd}{Digital Video Disc}
+\newacronym{erp}{erp}{Enterprise Resource Planning}
+\newacronym{faq}{faq}{Frequently Asked Questions, traduit en français par
+ \enquote{Foire Aux Questions}}
+\newacronym{gnu}{gnu}{GNU's Not Unix (acronyme récursif)}
+\newacronym{http}{http}{Hypertext Transfer Protocol}
+\newacronym{ip}{ip}{Internet Protocol}
+\newacronym{jpeg}{jpeg}{Joint Photographic Experts Group}
+\newacronym{kdm}{kdm}{KDE Display Manager}
+\newacronym{lug}{lug}{Linux Users Group}
+\newacronym{mac}{mac}{Medium Access Control}
+\newacronym{nfs}{nfs}{Network File System}
+\newacronym{ocr}{ocr}{Optical Character Recognition}
+\newacronym{p2p}{p2p}{Peer to Peer}
+\newacronym{ram}{ram}{Random Access Memory}
+\newacronym{radar}{radar}{RAdio Detection And Ranging}
+\newacronym{svg}{svg}{Scalable Vector Graphics}
+\newacronym{tft}{tft}{Thin-Film Transistor}
+\newacronym{utf-8}{utf-8}{Unicode Transformation Format 8 bits}
+\newacronym{vga}{vga}{Video Graphics Array}
+\newacronym{wpa}{wpa}{Wi-Fi Protected Access}
+\newacronym{xhtml}{xhtml}{Extensible HyperText Markup Language}
+\newacronym{fsf}{fsf}{Free Software Foundation}
+\newacronym{gui}{gui}{Graphical User Interface}
+%</flat-sample|acronyms-sample>
+%<flat-sample>% Symboles
+%<*flat-sample|symbols-sample>
+\newglssymbol{ohm}{\si{\ohm}}{ohm}{unité de résistance électrique}
+\newglssymbol{exists}{\ensuremath{\exists}}{quantificateur existentiel}{}
+\newglssymbol[constanteplanck]{planck}{\ensuremath{h}}{constante de
+ Planck}{\ensuremath{h\approx\SI{6,62606957e-34}{\joule\second}}}
+%</flat-sample|symbols-sample>
+%<*these-sample|these-master>
+%<<COMMENT
+%
+% Les réglages figurant habituellement dans le préambule, notamment concernant
+% la bibliographie et l'éventuel index, peuvent être saisis dans le fichier
+% « thesis.cfg » (situé dans le sous-dossier « configuration ») qui est
+% automatiquement importé par la classe yathesis.
+%COMMENT
+%</these-sample|these-master>
+%<*cfg-master|cfg-sample>
+%<<COMMENT
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Ce fichier doit s'appeler « thesis.cfg » et se situer dans le dossier
+% « configuration » ; sinon, la classe yathesis ne le détectera pas.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+%</cfg-master|cfg-sample>
+%<*flat-template|flat-sample|cfg-master|cfg-sample>
+%<*cfg-sample|flat-sample>
+%<<COMMENT
+%
+% Configuration globale de l'apparence des listings informatiques
+%COMMENT
+\lstset{%
+ language=C,
+ numbers=left,
+ frame=leftline,
+ framerule=0.8pt,
+ rulecolor=\color{red},
+ basicstyle=\ttfamily,
+ keywordstyle=\color{blue}\bfseries,
+ stringstyle=\color{cyan},
+ commentstyle=\color{gray}\itshape
+}
+%<<COMMENT
+%
+% Les figures flottantes et leurs légendes sont dans un (même) cadre
+%COMMENT
+\floatsetup[figure]{style=BOXED}%
+%<<COMMENT
+%
+% Numéro de version du package pgfplots
+%COMMENT
+\pgfplotsset{compat=1.13}
+%<<COMMENT
+%
+% Ajustement pour éviter, dans la table des matières, des débordements de
+% numéros de pages dans la marge de droite
+%COMMENT
+\makeatletter
+\renewcommand*\@pnumwidth{29pt}
+\makeatother
+%<<COMMENT
+%COMMENT
+%</cfg-sample|flat-sample>
+%</flat-template|flat-sample|cfg-master|cfg-sample>
+%<*flat-sample|these-sample|these-master>
+%<<COMMENT
+%
+%COMMENT
+%<these-sample|these-master>% Importation manuelle du fichier de macros personnelles
+%<!flat-sample>\input{configuration/macros}
+%</flat-sample|these-sample|these-master>
+%<*macros-master>
+%</macros-master>
+%<*flat-sample|macros-sample>
+%<<COMMENT
+% Macro pour mettre en forme les noms de fichiers
+%COMMENT
+\newcommand{\fichier}[1]{\texttt{#1}}
+%<<COMMENT
+% Macro pour mettre en forme les noms de packages LaTeX
+%COMMENT
+\newcommand{\package}[1]{\textsf{#1}}
+%<<COMMENT
+% Macro pour mettre en forme des locutions étrangères
+%COMMENT
+\newcommand{\locution}[1]{\emph{#1}}
+%</flat-sample|macros-sample>
+%<*these-sample|flat-sample>
+%<<COMMENT
+%
+% Commande permettant de faire figurer d'un seul coup toutes les références des
+% ressources bibliographiques ci-dessus, même si elles ne sont pas citées
+% explicitement (à proscrire dans un vrai mémoire de thèse !)
+%COMMENT
+\nocite{*}
+%</these-sample|flat-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+\begin{document}
+%<<COMMENT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Caractéristiques du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Préparation des pages de couverture et de titre
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|these-master>
+%<<COMMENT
+% Les caractéristiques de la thèse sont saisies dans le fichier
+% « characteristics.tex » (situé dans le dossier « configuration »).
+%COMMENT
+%</these-sample|these-master>
+%<*flat-template|flat-sample|characteristics-sample|characteristics-master>
+%<<COMMENT
+% Auteur de la thèse : prénom (1er argument obligatoire), nom (2e argument
+% obligatoire) et éventuel courriel (argument optionnel). Les éventuels accents
+% devront figurer et le nom /ne/ doit /pas/ être saisi en capitales
+%COMMENT
+%<flat-template|characteristics-master>\author[]{}{}
+%<characteristics-sample|flat-sample>\author[aa@zygo.fr]{Alphonse}{Allais}
+%<<COMMENT
+%
+% Titre de la thèse dans la langue principale (argument obligatoire) et dans la
+% langue secondaire (argument optionnel)
+%COMMENT
+%<flat-template|characteristics-master>\title[]{}
+%<characteristics-sample|flat-sample>\title[Laugh's Chaos]{Le chaos du rire}
+%<<COMMENT
+%
+% (Facultatif) Sous-titre de la thèse dans la langue principale (argument
+% obligatoire) et dans la langue secondaire (argument optionnel)
+%COMMENT
+%<flat-template|characteristics-master>% \subtitle[]{}
+%<characteristics-sample|flat-sample>\subtitle[Chaos' Laugh]{Le rire du chaos}
+%<<COMMENT
+%
+% Champ disciplinaire dans la langue principale (argument obligatoire) et dans
+% la langue secondaire (argument optionnel)
+%COMMENT
+%<flat-template|characteristics-master>\academicfield[]{}
+%<characteristics-sample|flat-sample>\academicfield[Mathematics]{Mathématiques}
+%<<COMMENT
+%
+% (Facultatif) Spécialité dans la langue principale (argument obligatoire) et
+% dans la langue secondaire (argument optionnel)
+%COMMENT
+%<flat-template|characteristics-master>\speciality[]{}
+%<characteristics-sample|flat-sample>\speciality[Dynamical systems]{Systèmes dynamiques}
+%<<COMMENT
+%
+% Date de la soutenance, au format {jour}{mois}{année} donnés sous forme de
+% nombres
+%COMMENT
+%<flat-template|characteristics-master>\date{}{}{}
+%<characteristics-sample|flat-sample>\date{1}{1}{2015}
+%<<COMMENT
+%
+% (Facultatif) Date de la soumission, au format {jour}{mois}{année} donnés sous
+% forme de nombres
+%COMMENT
+%<flat-template|characteristics-master>%\submissiondate{}{}{}
+%<characteristics-sample|flat-sample>\submissiondate{1}{10}{2014}
+%<<COMMENT
+%
+% (Facultatif) Sujet pour les méta-données du PDF
+%COMMENT
+%<flat-template|characteristics-master>\subject[]{}
+%<characteristics-sample|flat-sample>\subject[Chaotic Laugh]{Rire chaotique}
+%<<COMMENT
+%
+% (Facultatif) Nom (argument obligatoire) de la ComUE
+%COMMENT
+%<flat-template|characteristics-master>\comue[logo=,url=]{}
+%<characteristics-sample>\comue[logo=images/comue]{ComUE Lille Nord de France}
+%<flat-sample>\comue[logo=comue]{ComUE Lille Nord de France}
+%<<COMMENT
+%
+% Nom (argument obligatoire) de l'institut (principal en cas de cotutelle)
+%COMMENT
+%<flat-template|characteristics-master>\institute[logo=,url=]{}
+%<characteristics-sample>\institute[logo=images/ulco,url=http://www.univ-littoral.fr/]{ULCO}
+%<flat-sample>\institute[logo=ulco,url=http://www.univ-littoral.fr/]{ULCO}
+%<<COMMENT
+%
+% (Facultatif) En cas de cotutelle (normalement, seulement dans le cas de
+% cotutelle internationale), nom (argument obligatoire) du second institut
+%COMMENT
+%<flat-template|characteristics-master>% \coinstitute[logo=]{}
+%<characteristics-sample>\coinstitute[logo=images/paris13,url=http://www.univ-paris13.fr/]{Université de Paris~13}
+%<flat-sample>\coinstitute[logo=paris13,url=http://www.univ-paris13.fr/]{Université de Paris~13}
+%<<COMMENT
+%
+% (Facultatif) Nom (argument obligatoire) de l'école doctorale
+%COMMENT
+%<flat-template|characteristics-master>\doctoralschool[url=]{}
+%<characteristics-sample|flat-sample>\doctoralschool[url=http://edspi.univ-lille1.fr/]{ED Régionale SPI 72}
+%<<COMMENT
+%
+% Nom (1er argument obligatoire) et adresse (2e argument obligatoire) du
+% laboratoire (ou de l'unité) où la thèse a été préparée, à utiliser /autant de
+% fois que nécessaire/
+%COMMENT
+\laboratory[
+%<flat-template|characteristics-master>logo=,
+%<flat-template|characteristics-master>telephone=,
+%<flat-template|characteristics-master>fax=,
+%<flat-template|characteristics-master>email=,
+%<flat-template|characteristics-master>url=
+%<flat-template|characteristics-master>]{}{%
+%<flat-template|characteristics-master> \\
+%<flat-template|characteristics-master> \\
+%<flat-template|characteristics-master> \\
+%<flat-template|characteristics-master> \\
+%<flat-template|characteristics-master> \\
+%<flat-template|characteristics-master> }
+%<characteristics-sample>logo=images/labo,
+%<flat-sample>logo=labo,
+%<characteristics-sample|flat-sample>logoheight=1.25cm,
+%<characteristics-sample|flat-sample>telephone=(33)(0)3 21 46 55 86,
+%<characteristics-sample|flat-sample>fax=(33)(0)3 21 46 55 75,
+%<characteristics-sample|flat-sample>email=secretariat@lmpa.univ-littoral.fr,
+%<characteristics-sample|flat-sample>url=http://www-lmpa.univ-littoral.fr/
+%<characteristics-sample|flat-sample>]{LMPA Joseph Liouville}{%
+%<characteristics-sample|flat-sample> Maison de la Recherche Blaise Pascal \\
+%<characteristics-sample|flat-sample> 50, rue Ferdinand Buisson \\
+%<characteristics-sample|flat-sample> CS 80699 \\
+%<characteristics-sample|flat-sample> 62228 Calais Cedex \\
+%<characteristics-sample|flat-sample> France}
+%<<COMMENT
+%
+% Directeur(s) de thèse et membres du jury, saisis au moyen des commandes
+% \supervisor, \cosupervisor, \comonitor, \referee, \committeepresident,
+% \examiner, \guest, à utiliser /autant de fois que nécessaire/ et /seulement
+% si nécessaire/. Toutes basées sur le même modèle, ces commandes ont
+% 2 arguments obligatoires, successivement les prénom et nom de chaque
+% personne. Si besoin est, on peut apporter certaines précisions en argument
+% optionnel, essentiellement au moyen des clés suivantes :
+% - « professor », « seniorresearcher », « associateprofessor »,
+% « associateprofessor* », « juniorresearcher », « juniorresearcher* » (qui
+% peuvent ne pas prendre de valeur) pour stipuler le corps auquel appartient
+% la personne ;
+% - « affiliation » pour stipuler l'institut auquel est affiliée la personne ;
+% - « female » pour stipuler que la personne est une femme pour que certains
+% mots clés soient accordés en genre.
+%
+%COMMENT
+%<flat-template|characteristics-master>\supervisor[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\supervisor[professor,affiliation=ULCO]{Michel}{de Montaigne}
+%<flat-template|characteristics-master>% \cosupervisor[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\cosupervisor[associateprofessor*,affiliation=ULCO]{Charles}{Baudelaire}
+%<flat-template|characteristics-master>% \comonitor[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\comonitor[associateprofessor,affiliation=ULCO]{Étienne}{de la Boétie}
+%<flat-template|characteristics-master>\referee[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\referee[professor,affiliation=IHP]{René}{Descartes}
+%<flat-template|characteristics-master>\referee[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\referee[seniorresearcher,affiliation=CNRS]{Denis}{Diderot}
+%<flat-template|characteristics-master>\committeepresident[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\committeepresident[professor,affiliation=ENS Lyon]{Victor}{Hugo}
+%<flat-template|characteristics-master>\examiner[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\examiner[associateprofessor,affiliation=Université de Paris~13]{Sophie}{Germain}
+%<flat-template|characteristics-master>\examiner[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\examiner[juniorresearcher,affiliation=INRIA]{Joseph}{Fourier}
+%<flat-template|characteristics-master>\examiner[,affiliation=]{}{}
+%<characteristics-sample|flat-sample>\examiner[juniorresearcher*,affiliation=CNRS]{Paul}{Verlaine}
+%<flat-template|characteristics-master>% \guest{}{}
+%<characteristics-sample|flat-sample>\guest{George}{Sand}
+%<<COMMENT
+%
+% (Facultatif) Mention du numéro d'ordre de la thèse (s'il est connu, ce numéro
+% est à spécifier en argument optionnel)
+%COMMENT
+%<flat-template|characteristics-master>% \ordernumber[]
+%<characteristics-sample|flat-sample>\ordernumber[42]
+%<<COMMENT
+%
+% Préparation des mots clés dans la langue principale (1er argument) et dans la
+% langue secondaire (2e argument)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+%<flat-template|characteristics-master>\keywords{}{}
+%<characteristics-sample|flat-sample>\keywords{chaos, rire}{chaos, laugh}
+%</flat-template|flat-sample|characteristics-sample|characteristics-master>
+%<*these-sample|flat-template|flat-sample|these-master>
+%<<COMMENT
+%
+% Production des pages de couverture et de titre
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+\maketitle
+%<<COMMENT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie liminaire de la thèse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% (Facultatif) Production de la page de clause de non-responsabilité
+%COMMENT
+\makedisclaimer
+%<<COMMENT
+%
+% (Facultatif) Production de la page de mots clés
+%COMMENT
+\makekeywords
+%<<COMMENT
+%
+% (Facultatif) Production de la page affichant les logo, nom et coordonnées du
+% ou des laboratoires (ou unités de recherche) où la thèse a été préparée
+%COMMENT
+\makelaboratory
+%<<COMMENT
+%
+% (Facultatif) Dédicace(s)
+%COMMENT
+%<these-sample|these-master>\input{liminaires/dedicaces}
+%</these-sample|flat-template|flat-sample|these-master>
+%<*flat-template|flat-sample|dedications-sample|dedications-master>
+%<dedications-sample|dedications-master>% Dédicace(s)
+%<flat-template|dedications-master>\dedication{}
+%<flat-template|dedications-master>\dedication{}
+%<dedications-sample|flat-sample>\dedication{À mon directeur bien-aimé !}
+%<dedications-sample|flat-sample>\dedication{À mon co-directeur bien-co-aimé aussi !}
+%<dedications-sample|flat-sample>\dedication{Je dédie également ce travail\\à tous ceux qui le méritent}
+%<dedications-sample|dedications-master>% Production de la page de dédicace(s)
+%<flat-template|flat-sample>% (Facultatif) Production de la page de dédicace(s)
+\makededications
+%</flat-template|flat-sample|dedications-sample|dedications-master>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% (Facultatif) Épigraphe(s)
+%COMMENT
+%<these-sample|these-master>\input{liminaires/epigraphes}
+%</these-sample|flat-sample|flat-template|these-master>
+%<*flat-template|flat-sample|epigraphs-sample|epigraphs-master>
+%<epigraphs-sample|epigraphs-master>% Épigraphes(s)
+%<flat-template|epigraphs-master>\frontepigraph{}{}
+%<flat-template|epigraphs-master>\frontepigraph{}{}
+%<flat-sample|epigraphs-sample>\frontepigraph{Science sans conscience n'est que ruine de l'âme.}{François Rabelais}
+%<flat-sample|epigraphs-sample>\frontepigraph[english]{I can resist everything, except temptation!}{Oscar Wilde}
+%<flat-sample|epigraphs-sample>\frontepigraph{Il est plus facile de désintégrer un atome qu'un préjugé.}{Albert Einstein}
+%<epigraphs-sample|epigraphs-master>% Production de la page de d'épigraphe(s)
+%<flat-template|flat-sample>% (Facultatif) Production de la page de d'épigraphe(s)
+\makefrontepigraphs
+%</flat-template|flat-sample|epigraphs-sample|epigraphs-master>
+%<*flat-template|flat-sample|abstract-sample|abstract-master>
+%<flat-template|flat-sample>%
+%<<COMMENT
+% Résumés (de 1700 caractères maximum, espaces compris) dans la
+% langue principale (1re occurrence de l'environnement « abstract »)
+% et, facultativement, dans la langue secondaire (2e occurrence de
+% l'environnement « abstract »)
+%COMMENT
+\begin{abstract}
+%<flat-template|abstract-master>% ...
+%<flat-sample|abstract-sample> \lipsum[1-2]
+\end{abstract}
+\begin{abstract}
+%<flat-template|abstract-master>% ...
+%<flat-sample|abstract-sample> \lipsum[3-4]
+\end{abstract}
+%<<COMMENT
+%
+% Production de la page de résumés
+%COMMENT
+\makeabstract
+%</flat-template|flat-sample|abstract-sample|abstract-master>
+%<*these-sample|these-master>
+%<<COMMENT
+%
+% Résumés succincts
+%COMMENT
+\input{liminaires/resumes}
+%</these-sample|these-master>
+%<*these-sample|flat-template|flat-sample|these-master>
+%<<COMMENT
+%
+% (Facultatif) Chapitre de remerciements
+%COMMENT
+%<these-sample|these-master>\include{liminaires/remerciements}
+%</these-sample|flat-template|flat-sample|these-master>
+%<*flat-template|flat-sample|acknowledgments-sample|acknowledgments-master>
+\chapter{Remerciements}
+%<flat-template|acknowledgments-master>% ...
+%<acknowledgments-sample|flat-sample>\section{Une section de remerciements}
+%<acknowledgments-sample|flat-sample>\lipsum[1]
+%<acknowledgments-sample|flat-sample>\section{Une autre section de remerciements}
+%<acknowledgments-sample|flat-sample>\lipsum[2-9]
+%</flat-template|flat-sample|acknowledgments-sample|acknowledgments-master>
+%<*these-sample|flat-template|flat-sample|these-master>
+%<<COMMENT
+%
+% (Facultatif) Chapitre d'avertissement
+%COMMENT
+%<these-master>% \include{liminaires/avertissement}
+%<these-sample>\include{liminaires/avertissement}
+%</these-sample|flat-template|flat-sample|these-master>
+%<*flat-template|caution-sample|flat-sample|caution-master>
+%<flat-template|caution-master>% \chapter{Avertissement}
+%<caution-sample|flat-sample>\chapter{Avertissement}
+%<flat-template|caution-master>% ...
+%<caution-sample|flat-sample>Thèse hilarante, comme le gaz du même nom !
+%</flat-template|caution-sample|flat-sample|caution-master>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% (Facultatif) Liste des acronymes
+%COMMENT
+%<flat-template|these-master>% \printacronyms
+%<these-sample|flat-sample>\printacronyms
+%<<COMMENT
+%
+% (Facultatif) Liste des symboles
+%COMMENT
+%<flat-template|these-master>% \printsymbols
+%<these-sample|flat-sample>\printsymbols
+%<<COMMENT
+%
+% (Facultatif) Chapitre d'avant-propos
+%COMMENT
+%<these-master>% \include{liminaires/avant-propos}
+%<these-sample>\include{liminaires/avant-propos}
+%</these-sample|flat-sample|flat-template|these-master>
+%<*flat-template|flat-sample|foreword-sample|foreword-master>
+%<flat-template|foreword-master>% \chapter{Avant-propos}
+%<foreword-sample|flat-sample>\chapter{Avant-propos}
+%<flat-template|foreword-master>% ...
+%<foreword-sample|flat-sample>\section{Une section d'avant-propos}
+%<foreword-sample|flat-sample>\lipsum[30-45]
+%<foreword-sample|flat-sample>\section{Une autre section d'avant-propos}
+%<foreword-sample|flat-sample>\lipsum[30-35]
+%</flat-template|flat-sample|foreword-sample|foreword-master>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Sommaire
+%COMMENT
+\tableofcontents[depth=chapter,name=Sommaire]
+%<<COMMENT
+%
+% (Facultatif) Liste des tableaux
+%COMMENT
+\listoftables
+%<<COMMENT
+%
+% (Facultatif) Table des figures
+%COMMENT
+\listoffigures
+%<<COMMENT
+%
+% (Facultatif) Table des listings (nécessite que le package « listings » soit
+% chargé)
+% \lstlistoflistings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie principale (du « corps ») de la thèse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+\mainmatter
+%<<COMMENT
+%
+% Chapitre d'introduction (générale)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|introduction-master|introduction-sample>
+%<flat-template|introduction-master>\chapter*{Introduction}
+%<flat-template|introduction-master>% ...
+%<these-sample|these-master>\include{corps/introduction}
+%<*introduction-sample|flat-sample>
+\chapter*{Introduction générale}
+\lipsum[26]
+\section{Une section d'introduction}
+\lipsum[28]
+\subsection{Une sous-section d'introduction}
+\lipsum[29]
+\subsubsection{Une sous-sous-section d'introduction}
+\lipsum[30]
+\paragraph{Un paragraphe d'introduction}
+\lipsum[31]
+\subparagraph{Un sous-paragraphe d'introduction}
+\lipsum[32]
+\subparagraph{Un autre sous-paragraphe d'introduction}
+\lipsum[33]
+\paragraph{Un autre paragraphe d'introduction}
+\lipsum[34]
+\subsubsection{Une autre sous-sous-section d'introduction}
+\lipsum[35]
+\subsection{Une autre sous-section d'introduction}
+\lipsum[36]
+\section{Une autre section d'introduction}
+\lipsum[37]
+%</introduction-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|introduction-master|introduction-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Chapitres ordinaires (avec parties éventuelles)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Première partie éventuelle
+%COMMENT
+%<flat-template|these-master>% \part{...}
+%<these-sample|flat-sample>\part{Le chaos du rire}
+%<<COMMENT
+%
+% Premier chapitre
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|position-problemeI-sample>
+%<flat-template>% \chapter{...}
+%<flat-template>% ...
+%<these-master>% \include{corps/}
+%<these-sample>\include{corps/position-problemeI}
+%<*position-problemeI-sample|flat-sample>
+\chapter{Contexte du chaos du rire}
+
+Je peux citer\index{citation}\index{citation!formelle} des extraits de
+documents. J'ai par exemple reproduit ci-dessous, par extraits, le discours de
+\citeauthor{cond}, prononcé à l'Assemblée Nationale au nom de l'Académie des
+Sciences.
+
+Voici tout d'abord un extrait composé automatiquement\footnote{Car il dépasse
+ trois lignes.} \og hors-texte\fg{}\index{citation!longue}.
+%<<COMMENT
+%
+%COMMENT
+\blockcquote[pp.~508-509]{cond}{%
+ Messieurs,
+
+ Vous avez daigné nous associer en quelque sorte à vos nobles
+ travaux; et, en nous permettant de concourir au succès de vos vues
+ bienfaisantes, vous avez montré que les sages représentants d'une
+ nation éclairée ne pouvaient méconnaître ni le prix des sciences, ni
+ l'utilité des compagnies occupées d'en accélérer le progrès et d'en
+ multiplier l'application.
+
+ Depuis son institution, l'Académie a toujours saisi et même
+ recherché les occasions d'employer pour le bien des hommes, les
+ connaissances acquises par la méditation, ou par l'étude de la
+ nature : c'est dans son sein qu'un étranger
+ illustre\footnote{Huygens}, à qui une théorie profonde avait révélé
+ le moyen d'obtenir une unité de longueur naturelle et invariable,
+ forma le premier le plan d'y rapporter toutes les mesures pour les
+ rendre par là uniformes et inaltérables.
+}
+
+Ensuite, je peux citer un long extrait en étant certain qu'il ne
+sera pas \og hors-texte\fg{}\index{citation!courte} :
+\textcquote[p.~509]{cond}{L'Académie s'est toujours honorée dans ses
+ annales d'un préjugé détruit, d'un établissement public
+ perfectionné, d'un procédé économique ou salutaire introduit dans
+ les arts, que d'une découverte difficile ou brillante; et son
+ zèle, encouragé par votre confiance, va doubler d'activité et de
+ force.}. Il est bien entendu possible de citer de courts extraits
+de manière informelle\index{citation!informelle} : \citeauthor{cond}
+insiste sur \enquote{la loi de la nature\textins{, qui} a voulu que
+ l'homme fût éclairé pour qu'il pût être juste, et libre pour qu'il
+ pût être heureux} de façon à ce que les membres de l'assemblée
+nationale n'oublient pas l'importance de l'instruction.
+
+Un petit aparté : il est possible de citer des
+citations\index{citation!imbriquée}. Ainsi, le zygomaticien
+s'exclama : \enquote{Pierre Dac ne disait-il pas : \enquote{Je suis
+ pour tout ce qui est contre et contre tout ce qui est pour!}?
+ Si, si, il le disait\ldots{}}, ce qui ne nous surprît guère.
+
+Et maintenant la suite (et fin) du discours, dans un extrait dont je
+suis certain qu'il sera \og hors-texte\fg{} :
+%<<COMMENT
+%
+%COMMENT
+\begin{displaycquote}[pp.~509-511]{cond}
+ Et comment pourrions nous oublier jamais que les premiers honneurs
+ publics, décernés par vous, l'ont été à la mémoire d'un de nos
+ confrères? Ne nous est-il permis de croire que les sciences ont eu
+ droit aussi quelque part à ces marques glorieuses de votre estime
+ pour un sage qui, célèbre dans les deux mondes par de grandes
+ découvertes, n'a jamais chéri dans l'éclat de sa renommée que le
+ moyen d'appeler ses concitoyens à l'indépendance d'une voix plus
+ imposante, et de rallier en Europe, à une si noble cause, tout ce
+ que son génie lui avait mérité de disciples et d'admirateurs?
+
+ Chacun de nous, comme homme, comme citoyen, vous doit une éternelle
+ reconnaissance pour le bienfait d'une constitution égale et libre,
+ bienfait dont aucune grande nation de l'Europe n'avait encore joui;
+ et pour celui de cette déclaration des droits, qui, enchaînant les
+ législateurs eux-mêmes par les principes de la justesse universelle,
+ rend l'homme indépendant de l'homme, et ne soumet sa volonté qu'à
+ l'empire de sa raison. Mais des citoyens voués par état à la
+ recherche de la vérité, instruits par l'expérience, et ce que
+ peuvent les lumières pour la félicité générale, et de tout ce que
+ les préjugés y opposent d'obstacles, en égarant ou en dégradant les
+ esprits, doivent porter plus loin leurs regards, et, sans doute, ont
+ le droit de vous remercier au nom de l'humanité, comme au nom de la
+ patrie.
+
+ Ils sentent combien, en ordonnant que les hommes ne seraient plus
+ rien par des qualités étrangères, et tout par leurs par leurs
+ qualités personnelles, vous avez assuré le progrès de l'espèce
+ humaine, puisque vous avez forcé l'ambition et la vanité même à ne
+ plus attendre les distinctions ou le pouvoir que du talent et des
+ lumières; puisque le soin de fortifier sa raison, de cultiver son
+ esprit, d'étendre ses connaissances, est devenu le seul moyen
+ d'obtenir une considération indépendante et une supériorité réelle.
+
+ Ils savent que vous n'avez pas moins fait pour le bonheur des
+ générations futures, en rétablissant l'esprit humain dans son
+ indépendance naturelle, que pour celui de la génération présente, en
+ mettant les propriétés et la vie des hommes à l'abri des attentats
+ du despotisme.
+
+ Ils voient, dans les commissions dont vous les avez chargé, avec
+ quelle profondeur de vues vous avez voulu simplifier toutes les
+ opérations nécessaires dans les conventions, dans les échanges, dans
+ les actions de la vie commune, de peur que l'ignorance ne rendit
+ esclave celui que vous aviez déclaré libre, et ne réduisit l'égalité
+ prononcée par vos lois à n'être jamais qu'un vain nom.
+
+ Pourraient-ils enfin ne pas apercevoir qu'en établissant pour la
+ première fois, le système entier de la société sur des bases
+ immuables de la vérité et de la justice, en attachant ainsi par une
+ chaîne éternelle les progrès de l'art social au progrès de la
+ raison, vous avez étendu vos bienfaits à tous les pays, à tous les
+ siècles, et dévoué toutes les erreurs, comme toutes les tyrannies à
+ une destruction rapide?
+
+ Ainsi, grâce à la générosité, à la pureté de vos principes, la
+ force, l'avarice, ou la séduction, cesseront bientôt de contrarier,
+ par des institutions arbitraires, la loi de la nature, qui a voulu
+ que l'homme fût éclairé pour qu'il pût être juste, et libre pour
+ qu'il pût être heureux. Ainsi, vous jouirez à la fois et du bien que
+ vous faites, et du bien que vous préparez, et vous achèverez votre
+ ouvrage au milieu des bénédictions de la foule des opprimés dont
+ vous avez brisé les fers, et des acclamations des hommes éclairés
+ dont vous avez surpassé les espérances.
+\end{displaycquote}
+%</position-problemeI-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|position-problemeI-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Deuxième chapitre
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|developpementI-sample>
+%<flat-template>% \chapter{...}
+%<flat-template>% ...
+%<these-master>% \include{corps/}
+%<these-sample>\include{corps/developpementI}
+%<*developpementI-sample|flat-sample>
+\chapter{Développement}
+\label{chap-developpement}
+
+\epigraphhead[30]{\selectlanguage{english}\epigraph{I have not failed. I've
+ just found 10.000 ways that won't work.}{Thomas A. Edison}}
+
+Dans ce chapitre, nous développons notre travail. Nous citons une
+référence\index{référence!bibliographique|see{bibliographie}}
+bibliographique\index{bibliographie!référence} \autocite{relativite}
+car, en effet, nous nous appuierons dans cette partie sur des
+résultats fondamentaux qu'on y trouve
+\autocite[chap.~3]{relativite}.
+
+Nous ne manquerons pas de causer de \glspl{vrnc}, d'\gls{af} et de \gls{mf},
+termes définis dans le glossaire\index{glossaire}. Nous recourrons également aux
+symboles de l'\gls{ohm}, du \gls{exists} et de la \gls{planck} définis dans la
+liste des symboles. Vous noterez que notre travail a été composé au moyen de
+\gls{latex}\index{\gls{latex}}.
+
+Notre étude a porté sur l'\gls{irm} et la \gls{rmn}, définis dans la
+liste des acronymes\index{acronyme}. Nous pouvons insérer d'autres
+acronymes :
+\begin{itemize}
+\item \gls{ascii} ;
+\item \gls{bios} ;
+\item \gls{ctan} ;
+\item \gls{dvd} ;
+\item \gls{erp} ;
+\item \gls{faq} ;
+\item \gls{gnu} ;
+\item \gls{http} ;
+\item \gls{ip} ;
+\item \gls{jpeg} ;
+\item \gls{kdm} ;
+\item \gls{lug} ;
+\item \gls{mac} ;
+\item \gls{nfs} ;
+\item \gls{ocr} ;
+\item \gls{p2p} ;
+\item \gls{ram} ;
+\item \gls{radar} ;
+\item \gls{svg} ;
+\item \gls{tft} ;
+\item \gls{utf-8} ;
+\item \gls{vga} ;
+\item \gls{wpa} ;
+\item \gls{xhtml}.
+\end{itemize}
+On notera que les acronymes précédents, dont ce sont les premières
+occurrences dans le document, figurent sous leur forme complète,
+c'est-à-dire sous leur forme développée suivie entre parenthèses de
+leur forme abrégée. Ceci est assuré de façon automatique par
+\gls{latex} et le package \textsf{glossaries} qui, en outre, vont
+composer toutes les occurrences suivantes de ces acronymes
+uniquement sous leur forme abrégée\footnote{Sauf contre-ordre.} :
+\begin{itemize}
+\item \gls{ascii} ;
+\item \gls{bios} ;
+\item \gls{ctan} ;
+\item \gls{dvd} ;
+\item \gls{erp} ;
+\item \gls{faq} ;
+\item \gls{gnu} ;
+\item \gls{http} ;
+\item \gls{ip} ;
+\item \gls{jpeg} ;
+\item \gls{kdm} ;
+\item \gls{lug} ;
+\item \gls{mac} ;
+\item \gls{nfs} ;
+\item \gls{ocr} ;
+\item \gls{p2p} ;
+\item \gls{ram} ;
+\item \gls{radar} ;
+\item \gls{svg} ;
+\item \gls{tft} ;
+\item \gls{utf-8} ;
+\item \gls{vga} ;
+\item \gls{wpa} ;
+\item \gls{xhtml}.
+\end{itemize}
+%<<COMMENT
+%
+%COMMENT
+\section{Cadre de travail}\label{sec-cadre}
+%<<COMMENT
+%
+%COMMENT
+Si on examine, dans le fichier\index{\gls{latex}!fichier}
+\fichier{developpementI.tex} du répertoire \fichier{corps}, le code source
+du tableau\vref{tab-passionnant}\index{\gls{latex}!tableau}, on verra l'usage
+de commandes permettant d'obtenir des tableaux d'allure
+professionnelle\footnote{Pour obtenir de tels tableaux sous \LaTeX{}, on
+ \href{http://www.tug.org/pracjourn/2007-1/mori/mori.pdf}{trouvera sur
+ Internet} comment procéder.}.
+%<<COMMENT
+%
+%COMMENT
+\begin{table}[ht]
+ \centering
+ \begin{tabular}{ccc}
+ \toprule
+ \multicolumn{1}{c}{} & Word & \LaTeX{} \\
+ \midrule
+ Libre & Non & Oui \\
+ Gratuit & Non & Oui \\
+ Élégant & Non & Oui \\
+ Efficace & Non & Oui \\
+ Puissant & Non & Oui \\
+ \bottomrule
+ \end{tabular}
+ \caption{Un tableau passionnant}
+ \label{tab-passionnant}
+\end{table}
+
+\lipsum[3-22]
+%<<COMMENT
+%
+%COMMENT
+\section{Méthode de travail}
+\label{sec-methode}
+%<<COMMENT
+%
+%COMMENT
+Nous incluons la figure\vref{fig-tigre}\index{\gls{latex}!figure} qui n'est
+pas là pour faire joli, mais bien pour éclairer notre propos.
+\begin{figure}
+ \centering
+ \capstart
+%<developpementI-sample> \includegraphics[width=.35\linewidth]{images/tiger}
+%<flat-sample> \includegraphics[width=.35\linewidth]{tiger}
+ \caption[Un tigre]{Une figure avec une légende assez longue qui peut
+ même, au besoin, s'étaler sur plusieurs lignes.}
+ \label{fig-tigre}
+\end{figure}
+On note qu'on peut mettre, en argument optionnel de la commande
+permettant de créer la légende, une légende \og courte\fg{} qui sera
+celle qui figurera, par exemple, dans la liste des figures.
+
+On pourra se convaincre, à la lecture des pages~86 à~89 de la
+\href{http://mirrors.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf}{documentation
+ du package \package{TikZ}}, de ce qu'une figure\index{\gls{latex}!figure}
+n'est pas toujours préférable à un tableau\index{\gls{latex}!tableau}. Plus
+généralement, on pourra lire toute la section~7, intitulée \emph{Guidelines on
+ Graphics} (pages~84 à~90).
+
+Avec \LaTeX{}\index{\gls{latex}|textbf}, il est extrêmement aisé de créer
+un index\index{\gls{latex}!index}, comme dans les documents les mieux
+composés.
+
+\lipsum[23-42]
+%<<COMMENT
+%
+%COMMENT
+\section[Discussion]{Discussion et interprétation des résultats}
+\label{sec-discussion}
+%<<COMMENT
+%
+%COMMENT
+On constate que le titre de cette section est différent de ce qui
+apparaît en entête et dans la table des matières : c'est l'argument
+optionnel de la commande de sectionnement qui a permis cela.
+
+\lipsum[43-52]
+%</developpementI-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|developpementI-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Troisième chapitre
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|conclusionI-sample>
+%<flat-template>% \chapter{...}
+%<flat-template>% ...
+%<these-master>% \include{corps/}
+%<these-sample>\include{corps/conclusionI}
+%<*conclusionI-sample|flat-sample>
+\chapter{Conclusion}
+Dans ce chapitre, nous concluons l'étude du chaos du rire.
+
+\lipsum[26-27]
+\section{Une section}
+\lipsum[28-29]
+\subsection{Une sous-section}
+\lipsum[29-31]
+\subsubsection{Une sous-sous-section}
+\lipsum[31-35]
+\paragraph{Un paragraphe}
+\lipsum[36-38]
+\paragraph{Un sous-paragraphe}
+\lipsum[39-41]
+\paragraph{Un autre sous-paragraphe}
+\lipsum[39-41]
+\paragraph{Un autre paragraphe}
+\lipsum[36-38]
+\subsubsection{Une autre sous-sous-section}
+\lipsum[31-35]
+\subsection{Une autre sous-section}
+\lipsum[29-31]
+\section{Une autre section}
+\lipsum[28-29]
+%</conclusionI-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|conclusionI-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+%
+% Deuxième partie éventuelle
+%COMMENT
+%<flat-template|these-master>% \part{...}
+%<these-sample|flat-sample>\part{Le rire du chaos}
+%<<COMMENT
+%
+% Quatrième chapitre
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|position-problemeII-sample>
+%<flat-template>% \chapter{...}
+%<flat-template>% ...
+%<these-master>% \include{corps/}
+%<these-sample>\include{corps/position-problemeII}
+%<*position-problemeII-sample|flat-sample>
+\chapter{Contexte du rire du chaos}
+\epigraphhead[30]{\epigraph{La science a fait de nous des dieux avant même que
+ nous méritions d'être des hommes.}{Jean Rostand}}
+
+\lipsum[26-32]
+%</position-problemeII-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|position-problemeII-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Cinquième chapitre
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|developpementII-sample>
+%<flat-template>% \chapter{...}
+%<flat-template>% ...
+%<these-master>% \include{corps/}
+%<these-sample>\include{corps/developpementII}
+%<*developpementII-sample|flat-sample>
+\chapter{Développement}
+
+Nous pouvons faire référence à des graphiques (très jolis au demeurant), comme
+celui de la figure\vref{sin-x*sin-y}.
+%
+\lipsum[3-10]
+\begin{figure}[ht]
+ \centering
+ \capstart
+ \begin{tikzpicture}
+ \begin{axis}[colorbar]
+ \addplot3[surf,domain=0:360]
+ {sin(x)*sin(y)};
+ \end{axis}
+ \end{tikzpicture}
+ \caption{Représentation graphique de la fonction $f:(x,y)\mapsto
+ \sin x\times\sin y$}
+ \label{sin-x*sin-y}
+\end{figure}
+%</developpementII-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|developpementII-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Sixième chapitre
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|conclusionII-sample>
+%<flat-template>% \chapter{...}
+%<flat-template>% ...
+%<these-master>% \include{corps/}
+%<these-sample>\include{corps/conclusionII}
+%<*conclusionII-sample|flat-sample>
+\chapter{Conclusion}
+Dans ce chapitre, nous concluons l'étude du rire du chaos.
+
+\lipsum[6-9]
+%</conclusionII-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|conclusionII-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Chapitre de conclusion (générale)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*these-sample|flat-sample|flat-template|these-master|conclusion-master|conclusion-sample>
+%<flat-template|conclusion-master>\chapter*{Conclusion}
+%<flat-template|conclusion-master>% ...
+%<these-sample|these-master>\include{corps/conclusion}
+%<*conclusion-sample|flat-sample>
+\chapter*{Conclusion générale}
+\lipsum[26-27]
+\section{Une section de conclusion}
+\lipsum[28-29]
+\subsection{Une sous-section de conclusion}
+\lipsum[29-31]
+\subsubsection{Une sous-sous-section de conclusion}
+\lipsum[31-35]
+\paragraph{Un paragraphe de conclusion}
+\lipsum[36-38]
+\subparagraph{Un sous-paragraphe de conclusion}
+\lipsum[39-41]
+\subparagraph{Un autre sous-paragraphe de conclusion}
+\lipsum[39-41]
+\paragraph{Un autre paragraphe de conclusion}
+\lipsum[36-38]
+\subsubsection{Une autre sous-sous-section de conclusion}
+\lipsum[31-37]
+\subsection{Une autre sous-section de conclusion}
+\lipsum[29-31]
+\section{Une autre section de conclusion}
+\lipsum[28-43]
+%</conclusion-sample|flat-sample>
+%</these-sample|flat-sample|flat-template|these-master|conclusion-master|conclusion-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Liste des références bibliographiques
+%COMMENT
+%<flat-sample|these-sample>\printbibliography
+%<flat-template|these-master>%\printbibliography
+%<<COMMENT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie annexe éventuelle
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+%<flat-template|these-master>% \appendix
+%<these-sample|flat-sample>\appendix
+%<<COMMENT
+%
+% Premier chapitre annexe (éventuel)
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*flat-template|annexe-masterI>
+%<<COMMENT
+% \chapter{...}
+% ...
+%COMMENT
+%</flat-template|annexe-masterI>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<these-master>% \include{annexes/annexeI}
+%<these-sample>\include{annexes/juridique}
+%</these-sample|flat-sample|flat-template|these-master>
+%<*juridique-sample|flat-sample>
+\chapter{Documents juridiques}
+\label{chap-juridique}
+
+Cette partie regroupe les documents juridiques officiels.
+
+\section{Licence sous laquelle est publié notre travail}
+\label{sec-discours}
+
+\lipsum[11-30]
+
+\section{Transposition de la licence précédente en droit français}
+\label{sec-autre-discours}
+
+\lipsum[31-50]
+%</juridique-sample|flat-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+% Deuxième chapitre annexe (éventuel)
+%COMMENT
+%</these-sample|flat-sample|flat-template|these-master>
+%<*flat-template|annexe-masterII>
+%<<COMMENT
+% \chapter{...}
+% ...
+%COMMENT
+%</flat-template|annexe-masterII>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<these-master>% \include{annexes/annexeII}
+%<these-sample>\include{annexes/listings}
+%</these-sample|flat-sample|flat-template|these-master>
+%<*listings-sample|flat-sample>
+\chapter{Programmes informatiques}
+\label{chap-listings}
+
+Les listings suivants sont au cœur de notre travail.
+
+%</listings-sample|flat-sample>
+%<listings-sample>\lstinputlisting[caption={Il est l'heure}]{annexes/programmes/heure.c}
+%<*flat-sample|heure-sample>
+%<flat-sample>\begin{lstlisting}[caption={Il est l'heure}]
+#include <stdio.h>
+int heures, minutes, secondes;
+
+/****************************************************/
+/* */
+/* print_heure */
+/* */
+/* But: */
+/* Imprime l'heure */
+/* */
+/* Interface: */
+/* Utilise les variables globales */
+/* heures, minutes, secondes */
+/* */
+/****************************************************/
+
+void print_heure(void)
+{
+ printf("Il est %d heure",heures);
+ if (heures > 1) printf("s");
+ printf(" %d minute",minutes);
+ if (minutes > 1) printf("s");
+ printf(" %d seconde",secondes);
+ if (secondes > 1) printf("s");
+ printf("\n");
+}
+%<flat-sample>\end{lstlisting}
+%</flat-sample|heure-sample>
+%<listings-sample>\lstinputlisting[caption={Factorielle}]{annexes/programmes/factorielle.c}
+%<*flat-sample|factorielle-sample>
+%<flat-sample>\begin{lstlisting}[caption={Factorielle}]
+int factorielle(int n)
+{
+ if (n > 2) return n * factorielle(n - 1);
+ return n;
+}
+%<flat-sample>\end{lstlisting}
+%</flat-sample|factorielle-sample>
+%<*these-sample|flat-sample|flat-template|these-master>
+%<<COMMENT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début de la partie finale
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%COMMENT
+\backmatter
+%<<COMMENT
+%
+% (Facultatif) Glossaire (si souhaité distinct de la liste des acronymes) :
+%COMMENT
+%<flat-template|these-master>% \printglossary
+%<these-sample|flat-sample>\printglossary
+%<<COMMENT
+%
+% (Facultatif) Index :
+%COMMENT
+%<flat-template|these-master>% \printindex
+%<these-sample|flat-sample>\printindex
+%<<COMMENT
+%
+% Table des matières
+%COMMENT
+\tableofcontents
+%<<COMMENT
+%
+% (Facultatif) Production de la 4e de couverture :
+%COMMENT
+\makebackcover
+%<<COMMENT
+%
+%COMMENT
+\end{document}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</these-sample|flat-sample|flat-template|these-master>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*bibliography-master>
+%</bibliography-master>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*bibliography-sample>
+% \end{macrocode}
+%
+% \begin{macrocode}
+@Article{ hp,
+ author = {Poincaré, Henri},
+ title = {Démonstration nouvelle des propriétés de l'indicatrice
+ d'une surface},
+ journal = {Annales de Mathématiques},
+ volume = 13,
+ date = {1874},
+ pages = {449-456}
+}
+
+@Book{ relativite,
+ author = {Einstein, Albert and Lorentz, Hendrik Antoon and
+ Minkowski, Hermann and Weyl, Hermann},
+ title = {The Principle of Relativity},
+ publisher = {Methuen},
+ address = {London},
+ date = {1923}
+}
+
+@InBook{ cond,
+ author = {de Condorcet, Nicolas},
+ editor = {O'Connor, Arhur and Arago, François},
+ title = {Discours prononcé à l'Assemblée Nationale au nom de
+ l'Académie des Sciences à la séance du
+ \formatdate{12}{06}{1790}},
+ booktitle = {Œuvres de Condorcet},
+ publisher = {Firmin Didot Frères},
+ address = {Paris},
+ volume = {1},
+ origdate = {1790-06-12},
+ pages = {508-511},
+ url = {http://gallica.bnf.fr/ark:/12148/bpt6k58105584},
+ date = {1847}
+}
+
+@TechReport{ unrapport,
+ author = {Nom, Prénom},
+ title = {Titre du rapport technique},
+ institution = {Institution où le rapport a vu le jour},
+ date = {2012}
+}
+
+@Manual{ amsmath,
+ title = {User's Guide for the \textsf{amsmath} Package},
+ organization = {American Mathematical Society},
+ date = {2002-02-25}
+}
+
+@PhDThesis{ knuth63,
+ author = {Knuth, Donald Ervin},
+ title = {Finite semifields and projective planes},
+ school = {California Institute of Technology},
+ date = {1963}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</bibliography-sample>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*README-images-master>
+% \end{macrocode}
+%
+% \begin{macrocode}
+Vous pouvez stocker les images de votre thèse dans le présent répertoire.
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</README-images-master>
+% \end{macrocode}
+%
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:
diff --git a/macros/latex/contrib/yathesis/source/yathesis.dtx b/macros/latex/contrib/yathesis/source/yathesis.dtx
new file mode 100644
index 0000000000..6c9a4414ea
--- /dev/null
+++ b/macros/latex/contrib/yathesis/source/yathesis.dtx
@@ -0,0 +1,7000 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2012-2019 by Denis Bitouz'e <denis.bitouze@univ-littoral.fr>
+% -------------------------------------------------------------------------------
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Denis Bitouz'e.
+%
+% This work consists of the files yathesis.dtx and yathesis.ins
+% and the derived filebase yathesis.cls.
+%
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+-----------------------------------------------------------------------
+
+- `yathesis` --- Yet Another Thesis Class, version 0.99u
+- E-mail: `denis.bitouze@univ-littoral.fr`
+- Released under the LaTeX Project Public License v1.3c or later. See
+ http://www.latex-project.org/lppl.txt
+
+-----------------------------------------------------------------------
+
+**The `yathesis` bundle provides a LaTeX class file to help to write a thesis
+following French rules.**
+
+The class is supplied in `.dtx` format. If you want to unpack the `.dtx`
+yourself, running:
+
+ pdftex yathesis.dtx
+
+will extract the class whereas:
+
+ pdflatex yathesis.dtx
+
+will extract it and also typeset the documentation of the code.
+
+Typesetting the documentation of the class requires:
+
+- a number of packages in addition to those needed to use the `yathesis`
+ classes. To compile the documentation without error, you will need, among
+ others, my personal (dirty) package `denisbdoc` for documenting the classes
+ I've written.
+- a complete `pdflatex` run of `these.tex` to be found in the
+ `.../doc/latex/yathesis/french/exemples/specimen/a-plat` directory,
+ with `yathesis-demo` package load at first place. If `latexmk` is available,
+ it is easier to run:
+
+ latexmk -g -norc -r ./latexmkrc -jobname=these -pdflatex="pdflatex %O '\RequirePackage{etoolbox}\AtEndPreamble{\RequirePackage{yathesis-demo}}\input{%S}'" these.tex
+
+- to compile `yathesis-fr.tex` to be found in the
+ `.../doc/latex/yathesis/french/documentation` directory as follows:
+
+ latexmk -norc -r ./latexmkrc yathesis-fr
+%</readme>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input docstrip.tex
+\Msg{********************************************************}
+\Msg{* Installation}
+\Msg{* Class: yathesis 2019-03-28 v0.99u}
+\Msg{* that helps to write thesis following French rules (DB)}
+\Msg{********************************************************}
+\keepsilent
+\askforoverwritefalse
+\preamble
+-----------------------------------------------------------------------
+yathesis --- Yet Another Thesis Class
+E-mail: denis.bitouze@univ-littoral.fr
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+-----------------------------------------------------------------------
+\endpreamble
+\postamble
+% Copyright (C) 2012-2019 by Denis Bitouzé <denis.bitouze@univ-littoral.fr>
+----------------------------------------------------------------------------------
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Denis Bitouzé.
+
+This work consists of the file yathesis.dtx
+ and the derived files yathesis.cls,
+ yathesis.ins,
+ yathesis.pdf,
+ and a number of configuration files.
+\endpostamble
+%
+\def\YAD@classname{\jobname}
+\def\YAD@packagename{\YAD@classname doc}
+\def\YAD@sampletemplates{\jobname-samples-templates}
+\def\YAD@addons{addons}
+% \def\YAD@flattemplate{flat-template}
+% \def\YAD@flatsample{flat-sample}
+% \def\YAD@treetemplate{tree-template}
+% \def\YAD@sample{tree-sample}
+%</install>
+%<*install>
+\def\YAD@documentation{documentation}
+\def\YAD@examples{exemples}
+\def\YAD@sample{specimen}
+\def\YAD@template{canevas}
+\def\YAD@flattemplate{\YAD@examples/\YAD@template/a-plat}
+\def\YAD@flatsample{\YAD@examples/\YAD@sample/a-plat}
+\def\YAD@treetemplate{\YAD@examples/\YAD@template/en-arborescence}
+\def\YAD@treesample{\YAD@examples/\YAD@sample/en-arborescence}
+%</install>
+%<*install>
+\usedir{doc/latex/\YAD@classname/}
+\generate{
+ \nopreamble\nopostamble
+ \file{README.md}{\from{\jobname.dtx}{readme}}
+}%
+\usedir{tex/latex/\YAD@classname}
+\generate{%
+ \file{\YAD@classname.cls}{\from{\jobname.dtx}{class}}
+ \file{\YAD@classname-demo.sty}{\from{\jobname.dtx}{demopkg}}
+ \file{\YAD@classname-translations.tex}{\from{\jobname.dtx}{translations}}
+}%
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/\YAD@classname}
+\generate{
+ \file{\YAD@classname.ins}{\from{\jobname.dtx}{install}}
+ \file{\YAD@classname.drv}{\from{\jobname.dtx}{driver}}%
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@flattemplate}
+\generate{
+ \nopreamble\nopostamble
+ \file{latexmkrc}{\from{\jobname.dtx}{samples-templates-latexmkrc}}
+ \file{these.tex}{\from{\YAD@sampletemplates.dtx}{flat-template}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@flatsample}
+\generate{
+ \nopreamble\nopostamble
+ \file{latexmkrc}{\from{\jobname.dtx}{samples-templates-latexmkrc}}
+ \file{these.tex}{\from{\YAD@sampletemplates.dtx}{flat-sample}}
+ \file{bibliographie.bib}{\from{\YAD@sampletemplates.dtx}{bibliography-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample}
+\generate{
+ \nopreamble\nopostamble
+ \file{latexmkrc}{\from{\jobname.dtx}{samples-templates-latexmkrc}}
+ \file{these.tex}{\from{\YAD@sampletemplates.dtx}{these-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample/configuration}
+\generate{
+ \nopreamble\nopostamble
+ \file{characteristics.tex}{\from{\YAD@sampletemplates.dtx}{characteristics-sample}}
+ \file{thesis.cfg}{\from{\YAD@sampletemplates.dtx}{cfg-sample}}
+ \file{macros.tex}{\from{\YAD@sampletemplates.dtx}{macros-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample/corps}
+\generate{
+ \nopreamble\nopostamble
+ \file{conclusion.tex}{\from{\YAD@sampletemplates.dtx}{conclusion-sample}}
+ \file{conclusionI.tex}{\from{\YAD@sampletemplates.dtx}{conclusionI-sample}}
+ \file{position-problemeI.tex}{\from{\YAD@sampletemplates.dtx}{position-problemeI-sample}}
+ \file{developpementI.tex}{\from{\YAD@sampletemplates.dtx}{developpementI-sample}}
+ \file{position-problemeII.tex}{\from{\YAD@sampletemplates.dtx}{position-problemeII-sample}}
+ \file{conclusionII.tex}{\from{\YAD@sampletemplates.dtx}{conclusionII-sample}}
+ \file{developpementII.tex}{\from{\YAD@sampletemplates.dtx}{developpementII-sample}}
+ \file{introduction.tex}{\from{\YAD@sampletemplates.dtx}{introduction-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample/liminaires}
+\generate{
+ \nopreamble\nopostamble
+ \file{dedicaces.tex}{\from{\YAD@sampletemplates.dtx}{dedications-sample}}
+ \file{epigraphes.tex}{\from{\YAD@sampletemplates.dtx}{epigraphs-sample}}
+ \file{avant-propos.tex}{\from{\YAD@sampletemplates.dtx}{foreword-sample}}
+ \file{avertissement.tex}{\from{\YAD@sampletemplates.dtx}{caution-sample}}
+ \file{remerciements.tex}{\from{\YAD@sampletemplates.dtx}{acknowledgments-sample}}
+ \file{resumes.tex}{\from{\YAD@sampletemplates.dtx}{abstract-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample/annexes}
+\generate{
+ \nopreamble\nopostamble
+ \file{juridique.tex}{\from{\YAD@sampletemplates.dtx}{juridique-sample}}
+ \file{listings.tex}{\from{\YAD@sampletemplates.dtx}{listings-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample/annexes/programmes}
+\generate{
+ \nopreamble\nopostamble
+ \file{factorielle.c}{\from{\YAD@sampletemplates.dtx}{factorielle-sample}}
+ \file{heure.c}{\from{\YAD@sampletemplates.dtx}{heure-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treesample/auxiliaires}
+\generate{
+ \nopreamble\nopostamble
+ \file{acronymes.tex}{\from{\YAD@sampletemplates.dtx}{acronyms-sample}}
+ \file{glossaire.tex}{\from{\YAD@sampletemplates.dtx}{glossary-sample}}
+ \file{symboles.tex}{\from{\YAD@sampletemplates.dtx}{symbols-sample}}
+ \file{bibliographie.bib}{\from{\YAD@sampletemplates.dtx}{bibliography-sample}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treetemplate}
+\generate{
+ \nopreamble\nopostamble
+ \file{latexmkrc}{\from{\jobname.dtx}{samples-templates-latexmkrc}}
+ \file{these.tex}{\from{\YAD@sampletemplates.dtx}{these-master}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treetemplate/configuration}
+\generate{
+ \nopreamble\nopostamble
+ \file{characteristics.tex}{\from{\YAD@sampletemplates.dtx}{characteristics-master}}
+ \file{thesis.cfg}{\from{\YAD@sampletemplates.dtx}{cfg-master}}
+ \file{macros.tex}{\from{\YAD@sampletemplates.dtx}{macros-master}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treetemplate/auxiliaires}
+\generate{
+ \nopreamble\nopostamble
+ \file{bibliographie.bib}{\from{\YAD@sampletemplates.dtx}{bibliography-master}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treetemplate/annexes}
+\generate{
+ \nopreamble\nopostamble
+ \file{annexeI.tex}{\from{\YAD@sampletemplates.dtx}{annexe-masterI}}
+ \file{annexeII.tex}{\from{\YAD@sampletemplates.dtx}{annexe-masterII}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treetemplate/corps}
+\generate{
+ \nopreamble\nopostamble
+ \file{conclusion.tex}{\from{\YAD@sampletemplates.dtx}{conclusion-master}}
+ \file{introduction.tex}{\from{\YAD@sampletemplates.dtx}{introduction-master}}
+}%
+\usedir{doc/latex/\YAD@classname/french/\YAD@treetemplate/liminaires}
+\generate{
+ \nopreamble\nopostamble
+ \file{dedicaces.tex}{\from{\YAD@sampletemplates.dtx}{dedications-master}}
+ \file{epigraphes.tex}{\from{\YAD@sampletemplates.dtx}{epigraphs-master}}
+ \file{remerciements.tex}{\from{\YAD@sampletemplates.dtx}{acknowledgments-master}}
+ \file{resumes.tex}{\from{\YAD@sampletemplates.dtx}{abstract-master}}
+}%
+\usedir{doc/latex/\YAD@classname/\YAD@addons/completion}
+\generate{%
+ \nopreamble\nopostamble
+ \file{\YAD@classname.cwl}{\from{\jobname.dtx}{class-cwl}}
+}%
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+% \fi
+% \def\YADnblastversion{0.99u}
+% \def\YADdatelastversion{\today}
+% \def\fileversion{v\YADnblastversion}
+% \def\filedate{\YADdatelastversion}
+% \iffalse
+%<*class>
+\def\fileversion{v0.99u}
+\def\filedate{2019/03/28}
+%</class>
+%<*driver>
+\ProvidesFile{yathesis.dtx}
+\RequirePackage{scrlfile}
+\ReplaceClass{article}{report}
+\BeforePackage{doc}{\let\oldmaketitle\maketitle}
+\documentclass[english,french]{ltxdoc}
+\usepackage{denisbdoc}
+\lstMakeShortInline[style=dbtex]"
+\usepackage[lining]{libertine}
+\renewcommand{\ttdefault}{lmtt}
+\makeatletter
+\@ifpackageloaded{glossaries}{%
+}{%
+ \usepackage[xindy,toc,hyperfirst=false]{glossaries}%
+ \makeglossaries
+ \setglossarystyle{indexhypergroup}
+ \setacronymstyle{long-sc-short}
+}
+\makeatother
+\addbibresource{yathesis.bib}
+%
+% Comme il est inutile que les modifications d'inclusion/exclusion
+% ("\includeall"/"\includeonly") des différents fichiers esclaves de la
+% documentation soient versionnées, elles ne se font désormais plus directement
+% incluses dans le présent \File{yathesis.dtx}, mais dans le fichier non
+% versionné \File{includeall-includeonly.tex}. Ce fichier n'est inclus que s'il
+% existe et, dans le cas contraire, tous les fichiers esclaves sont inclus.
+\InputIfFileExists{includeall-includeonly}{}{}
+%
+\begin{document}
+\DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{4290}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \DoNotIndex{%
+% \newcommand,\newenvironment,\begin,\end,\acrpluralsuffix,\acrshort,\active,\addlinespace,\advance,\AtEndDocument,\begingroup,\caption,\catcode,\ClassInfo,\color,\colorlet,\cr,\DeclareGraphicsExtensions,\declaretheorem,\declaretheoremstyle,\def,\definecolor,\do,\edef,\else,\emph,\endgroup,\endVerbatimOut,\expandafter,\fi,\floatsetup,\footnotesize,\gls,\glsentrylong,\glspluralsuffix,\glsshorttok,\graphicspath,\hide,\ifluatex,\includegraphics,\InputIfFileExists,\intertitle,\killienc,\label,\LaTeX,\linewidth,\LoadClass,\loadglsentries,\lstinputlisting,\lstMakeShortInline,\lstset,\LTXtable,\makeglossaries,\mdfdefinestyle,\mdfsetup,\medskipamount,\meta,\multicolumn,\noexpand,\normalfont,\nothing,\PassOptionsToClass,\PassOptionsToPackage,\ProcessOptions,\protect,\raisebox,\relax,\renewcommand,\RequirePackage,\temp,\TeX,\textbf,\textlangle,\textrangle,\textsc,\textsf,\texttt,\textup,\the,\tmp,\to,\todoformat,\todos,\ttdefault,\ttfamily,\typeout,\uccode,\uppercase,\VerbatimOut,\WithSuffix,\LoadClassWithOptions,\DeclareOption,\xspace,\undefined,\newif,\nothtfalse,\nothttrue,\HCode,\ifnotht,\ifx,\@bsphack}
+% \DoNotIndex{%
+% \@documentclasshook,\@empty,\@esphack,\@tempa,\\,\actualchar,\baselineskip,\boolean,\c@CodelineNo,\c@HD@hypercount,\count@,\Describe@Option,\Describe@ShortCut,\encapchar,\endoption,\endshortcut,\endtrivlist,\equal,\fvset,\g@addto@macro,\global,\hbox,\HD@target,\HDorg@encapchar,\hologo,\if@inlabel,\ignorespaces,\index,\input,\item,\leavevmode,\let,\levelchar,\llap,\long,\loop,\Lsmcp,\lstdefinestyle,\lstnewenvironment,\m@cro@YT,\m@ne,\macro@cnt,\MacroTopsep,\makelabel,\MakePrivateLetters,\marginnote,\marginpar,\newboolean,\nobreak,\or,\PackageWarning,\PrintDescribeEnv,\PrintDescribeOption,\PrintDescribeShortCut,\PrintEnvName,\PrintOptionName,\PrintShortCutName,\ProvidesFile,\raggedleft,\repeat,\reversedvideodbend,\saved@macroname,\setboolean,\sffamily,\shortcut,\space,\special@index,\SpecialMainOptionIndex,\SpecialMainShortCutIndex,\SpecialOptionIndex,\SpecialShortCutIndex,\string,\strut,\textbelow,\textsl,\topsep,\trivlist,\VerbatimEnvironment,\vss,\vtop,\xspaceaddexceptions,\par}
+%
+% \DoNotIndex{\@cclvi,\@ne,\@tempcnta,\@whilenum,\toks@,\z@}
+%
+% \DoNotIndex{\addbibresource,\biolinumKeyGlyph,\DeclareRobustCommand,\ClassWarning,\DescribeOption,\DescribeShortCut,\ifcase,\ifnum,\ifthenelse,\option,\pagestyle}
+%
+% \selectlanguage{french}
+% \StopEventually{}
+%
+% \chapter{Implementation}
+%
+%^^A The following implementation is for both \yatcl and for \yatpa (the
+%^^A latter just used for documenting the former). Code concerning:
+%^^A \begin{description}
+%^^A \item[\yatcl only] is between \metaimplementation{*class} and
+%^^A \metaimplementation{/class} tags,
+%^^A \item[\yatpa only] is between \metaimplementation{*package} and
+%^^A \metaimplementation{/package} tags,
+%^^A \item[both \yatcl and \yatpa] is between
+%^^A \metaimplementation{*package\textbar class} and
+%^^A \metaimplementation{/package\textbar class} tags.
+%^^A \end{description}
+%
+%^^A Please note that the following implementation is far from being well
+%^^A documented. This may be improved in the future.
+%
+% \section{Declaration of options}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesClass{yathesis}[\filedate\space\fileversion\space Yet another class for writing thesis (DB)]
+% \end{macrocode}
+%
+% Pour pouvoir définir des macros dont les arguments puissent être
+% spécifiés sous la forme "clé="\meta{valeur}, tant en argument de
+% "\documentclass" que de macros et environnements de la classe.
+% \begin{macrocode}
+\RequirePackage{pgfopts}[2011/06/02]%
+% \end{macrocode}
+% Pour disposer d'une boîte à outils de programmation
+% \begin{macrocode}
+\RequirePackage{etoolbox}[2011/01/03]%
+% \end{macrocode}
+% Extension de \package{etoolbox} permettant de patcher des
+% commandes à argument(s) optionnel
+% \begin{macrocode}
+\RequirePackage{xpatch}[2012/10/02]%
+% \end{macrocode}
+% Pour pouvoir disposer d'autant de \enquote{flots} d'écriture dans
+% des fichiers annexes que nécessaire. Il est chargé en fin de préambule sans
+% quoi la compilation s'arrête longuement à la ligne :
+% \folder{/usr/local/texlive/.../texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg}
+% (problème rapporté à l'auteur du package) ou à la ligne :
+% \folder{/usr/local/texlive/.../texmf-dist/tex/latex/floatrow/fr-longtable.sty}.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \RequirePackage{morewrites}%
+}%
+% \end{macrocode}
+% Pour pouvoir patcher des commandes à argument(s) optionnel(s)
+% \begin{macrocode}
+\RequirePackage{filehook}[2011/10/12]%
+\RequirePackage{hopatch}[2012/05/28]%
+% \end{macrocode}
+% Assignation "\let" pour macros à arguments optionnels améliorée
+% \begin{macrocode}
+\RequirePackage{letltxmacro}[2010/09/02]%
+% \end{macrocode}
+% Definitions with two optional arguments
+% \begin{macrocode}
+\RequirePackage{twoopt}[1999/04/12]%
+% \end{macrocode}
+% Pour la gestion des tests conditionnels
+% \begin{macrocode}
+\RequirePackage{xifthen}[2009/04/17]%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newbool{YAD@cosupervisor@or@comonitor}
+\newbool{YAD@inprogress@work@star}
+\newbool{YAD@inprogress@work}
+\newbool{YAD@submitted@work}
+\newbool{YAD@submitted@work@star}
+\newbool{YAD@final@work}
+\newbool{YAD@draft}
+%
+% \newbool{YAD@frenchabstract@used}
+\newbool{YAD@output@paper}
+\newbool{YAD@output@paper@star}
+\newbool{YAD@in@footnote}
+\newbool{YAD@second@title}
+\newbool{YAD@second@abstract}
+\newbool{YAD@maketitle@used}
+\newbool{YAD@keywords@used}
+\newbool{YAD@introduction@used}
+\newbool{YAD@introduction@empty}
+\newbool{YAD@conclusion@used}
+\newbool{YAD@conclusion@empty}
+\newbool{YAD@makeabstract@used}
+\newbool{YAD@second@abstract@used}
+\newbool{YAD@abstract@used}
+\newbool{YAD@main@abstract@empty}
+\newbool{YAD@second@abstract@empty}
+\newbool{YAD@tableofcontents@used}
+\newbool{YAD@printbibliography@used}
+\newbool{YAD@two@titles}
+\newbool{YAD@cover@page}
+\newbool{YAD@supervisor@specified}
+\newbool{YAD@symbols@isolated}
+\newbool{YAD@logo@before}
+\newbool{YAD@valid@day}
+\newbool{YAD@valid@month}
+\newbool{YAD@valid@year}
+\newbool{YAD@mainmatter@used}
+\newbool{YAD@localtocs}%
+\newbool{YAD@nextwithlocaltoc}%
+\newbool{YAD@nonnumbered@chapter}%
+\newbool{YAD@nonnumbered@section}%
+\newbool{YAD@nonnumbered@subsection}%
+\newbool{YAD@nonnumbered@subsubsection}%
+\newbool{YAD@nonnumbered@paragraph}%
+\newbool{YAD@nonnumbered@subparagraph}%
+%
+\newlength{\cmdKV@YAD@logoheight}
+\newlength{\YAD@max@logoheight}
+\newlength{\YAD@default@logoheight}
+\newlength{\YAD@titleboxheight}%
+\newlength{\YAD@titleboxwidth}%
+\newlength{\YAD@otherboxheight}%
+\newlength{\YAD@laboratory@width}%
+%
+\setlength\YAD@default@logoheight{1.5cm}%
+\setlength\cmdKV@YAD@logoheight{\YAD@default@logoheight}%
+\setlength\YAD@max@logoheight{\cmdKV@YAD@logoheight}%
+%
+\newsavebox{\YAD@titlebox}%
+\newsavebox{\YAD@beforetitlebox}%
+\newsavebox{\YAD@aftertitlebox}%
+\newsavebox{\YAD@abstract@mainlanguage}%
+\newsavebox{\YAD@abstract@secondarylanguage}%
+%
+\newcounter{YAD@abstracts}%
+\newcounter{YAD@warnings}%
+\setcounter{YAD@abstracts}{0}%
+\setcounter{YAD@warnings}{0}%
+%
+\def\YAD@mainlanguage{french}%
+\def\YAD@secondarylanguage{english}%
+\def\YAD@tocdepth{subsection}%
+\def\YAD@secnumdepth{subsection}%
+\def\YAD@mainkeywords{\YAD@generic@argument@translate{keywords}}%
+\def\YAD@secondarykeywords{\YAD@generic@argument@translate{keywords}}%
+\def\YAD@global@sepcorpaffil@french{}%
+\def\YAD@global@sepcorpaffil@english{}%
+% \end{macrocode}
+% On définit une marco dans laquelle sera stockée le style du cadre figurant
+% autour du titre de la thèse sur les pages de titre.
+% \begin{macro}{\cmdKV@YAD@frametitle}
+% \begin{macrocode}
+\def\cmdKV@YAD@frametitle{fbox}%
+% \end{macrocode}
+% \end{macro}
+%
+% On définit la macro "\YAD@ClassError" qui est essentiellement identique
+% à "\ClassError", sauf que les erreurs définies par elle sont désactivées si
+% l'une ou l'autre des options "noerror", "version=draft", "version=inprogress"
+% ou "version=inprogress*" est passée à la \yatcl{}.
+% \begin{macrocode}
+\newcommand{\YAD@generic@text}{%
+ Un texte generique risque d'etre affiche a la place.\MessageBreak%
+}%
+\newcommand{\YAD@quiet@text}[1]{%
+ Pour ne plus etre importune par la presente erreur,\MessageBreak%
+ on peut passer l'option\MessageBreak%
+ \space\space`#1'\MessageBreak%
+ a la classe `yathesis', mais cela peut serieusement\MessageBreak%
+ alterer son fonctionnement : option a utiliser\MessageBreak%
+ \space\space\space\space/a ses risques et perils !/%
+}%
+\newcommand{\YAD@extra@help@text}{%
+ \MessageBreak%
+ Consulter la documentation de la classe `yathesis'\MessageBreak%
+ pour plus de precisions.%
+}%
+\newcommand{\YAD@ClassError}{\@ifstar{\@tempswatrue\@YAD@ClassError}{\@tempswafalse\@YAD@ClassError}}
+\newcommand{\@YAD@ClassError}[3][]{%
+ \ifbool{YAD@noerror}{%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@inprogress@work}%
+ or bool {YAD@inprogress@work@star}%
+ or bool {YAD@draft}%
+ or bool {YAD@noerror}%
+ }{%
+ }{%
+ \ifthenelse{\isempty{#1}}{%
+ \ClassError{yathesis}{%
+ #2%
+ }{%
+ #3%
+ \MessageBreak
+ \if@tempswa%
+ \else%
+ \YAD@generic@text%
+ \fi%
+ \YAD@extra@help@text%
+ }%
+ }{%
+ \ClassError{yathesis}{%
+ #2%
+ }{%
+ #3%
+ \MessageBreak
+ \if@tempswa%
+ \else%
+ \YAD@generic@text%
+ \fi%
+ \YAD@quiet@text{#1}%
+ \YAD@extra@help@text%
+ }%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+% On définit la macro "\YAD@ClassWarningNoLine" qui est essentiellement
+% identique à "\ClassWarningNoLine", sauf que les messages de warnings :
+% \begin{itemize}
+% \item apparaissent en fin de log ;
+% \item sont désactivés si l'une ou l'autre des options "nowarning",
+% "version=draft", "version=inprogress" ou "version=inprogress*" est passée
+% à la \yatcl{}.
+% \end{itemize}
+%
+% \begin{macrocode}
+% \newwrite\YAD@file%
+% \immediate\openout\YAD@file=\jobname.yad%
+% \begin{macrocode}
+\newcommand{\YAD@ClassWarningNoLine}[1]{%
+ \ifboolexpr{%
+ bool {YAD@inprogress@work}%
+ or bool {YAD@inprogress@work@star}%
+ or bool {YAD@draft}%
+ or bool {YAD@nowarning}%
+ }{%
+ \stepcounter{YAD@warnings}%
+ }{%
+ \ClassWarningNoLine{yathesis}{%
+ #1%
+ }%
+ }%
+}%
+% \end{macrocode}
+% On définit le chemin \enquote{yad} par défaut des clés \enquote{pgf}.
+% \begin{macrocode}
+\pgfkeys{/yad/.is family}
+\pgfkeys{/yad/.cd}
+\def\yadsetup{\pgfqkeys{/yad}}
+% \end{macrocode}
+% On interdit l'utilisation de "\yadsetup" ailleurs qu'en préambule.
+% \begin{macrocode}
+% \@onlypreamble\yadsetup%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\YAD@create@boolean}[1]{%
+ % \yadsetup{#1/.is if = #1}
+ \newbool{YAD@#1}%
+ \yadsetup{%
+ #1/.is choice,
+ #1/true/.code={%
+ \booltrue{YAD@#1}%
+ },
+ #1/false/.code={%
+ \boolfalse{YAD@#1}%
+ },
+ #1/.initial=false,
+ #1/.default=true,
+ }%
+ % }{%
+ % \ClassWarningNoLine{yathesis}{%
+ % Valeur passee a la cle `#1' non valide :\MessageBreak%
+ % cette valeur ne peut etre que `true' ou `false'%
+ % }%
+ % }%
+}%
+% \YAD@create@boolean{nolink}%
+\YAD@create@boolean{nonamelink}%
+\YAD@create@boolean{noerror}%
+\YAD@create@boolean{nowarning}%
+\YAD@create@boolean{noauthor}%
+\YAD@create@boolean{notitle}%
+\YAD@create@boolean{noacademicfield}%
+\YAD@create@boolean{noaim}%
+\YAD@create@boolean{nodate}%
+\YAD@create@boolean{noinstitute}%
+\YAD@create@boolean{nodoctoralschool}%
+\YAD@create@boolean{nolaboratory}%
+\YAD@create@boolean{nolaboratoryaddress}%
+\YAD@create@boolean{nosupervisor}%
+\YAD@create@boolean{nomaketitle}%
+\YAD@create@boolean{nokeywords}%
+\YAD@create@boolean{noabstract}%
+\YAD@create@boolean{nomakeabstract}%
+\YAD@create@boolean{notableofcontents}%
+\YAD@create@boolean{noprintbibliography}%
+\YAD@create@boolean{nofrontcover}%
+\YAD@create@boolean{hdr}%
+\YAD@create@boolean{localtocs@classoption}%
+\YAD@create@boolean{localbibs}%
+%
+\yadsetup{noerror=true}%
+%
+\booltrue{YAD@cover@page}%
+%
+\YAD@create@boolean{nologo}%
+\YAD@create@boolean{professor}%
+\YAD@create@boolean{mcf}%
+\YAD@create@boolean{mcf*}%
+\YAD@create@boolean{associateprofessor}%
+\YAD@create@boolean{associateprofessor*}%
+\YAD@create@boolean{juniorresearcher}%
+\YAD@create@boolean{juniorresearcher*}%
+\YAD@create@boolean{seniorresearcher}%
+\YAD@create@boolean{male}%
+\YAD@create@boolean{female}%
+\yadsetup{%
+ nologo=false,%
+ professor=false,%
+ mcf=false,%
+ mcf*=false,%
+ associateprofessor=false,%
+ associateprofessor*=false,%
+ juniorresearcher=false,%
+ juniorresearcher*=false,%
+ seniorresearcher=false,%
+ male=true,%
+ female=false,%
+}%
+% \end{macrocode}
+%
+% On définit la clé "version" de la classe qui prend pour valeurs :
+% \begin{itemize}
+% \item (par défaut) "inprogress" qui indique clairement qu'il s'agit d'une
+% version de travail et désactive les erreurs pour éléments
+% \enquote{obligatoires} manquants ;
+% \item "inprogress*", identique à "inprogress" avec un filigrane en plus ;
+% \item "draft" » ;
+% \item "final", qui active les erreurs pour éléments \enquote{obligatoires}
+% manquants, à spécifier pour la version finale du document qui ne compose
+% pas en pied de page la mention \enquote{Version intermédiaire en date du
+% ...} ;
+% \item "submitted", analogue à "final", sauf que la date de soutenance n'est
+% pas affichée ;
+% \item "submitted*", identique à "submitted", mais qui en plus indique
+% clairement qu'il s'agit d'une version soumise aux rapporteurs.
+% \end{itemize}
+% \begin{macrocode}
+\yadsetup{%
+ version/.is choice,%
+ version/draft/.code={%
+ \booltrue{YAD@draft}%
+ \boolfalse{YAD@inprogress@work}%
+ \boolfalse{YAD@inprogress@work@star}%
+ \boolfalse{YAD@submitted@work}%
+ \boolfalse{YAD@submitted@work@star}%
+ \boolfalse{YAD@final@work}%
+ \ifthenelse{\equal{\@classoptionslist}{}}{%
+ \edef\@classoptionslist{draft}%
+ }{%
+ \edef\@classoptionslist{\@classoptionslist,draft}%
+ }%
+ },%
+ version/inprogress/.code={%
+ \boolfalse{YAD@draft}%
+ \booltrue{YAD@inprogress@work}%
+ \boolfalse{YAD@inprogress@work@star}%
+ \boolfalse{YAD@submitted@work}%
+ \boolfalse{YAD@submitted@work@star}%
+ \boolfalse{YAD@final@work}%
+ },%
+ version/inprogress*/.code={%
+ \boolfalse{YAD@draft}%
+ \boolfalse{YAD@inprogress@work}%
+ \booltrue{YAD@inprogress@work@star}%
+ \boolfalse{YAD@submitted@work}%
+ \boolfalse{YAD@submitted@work@star}%
+ \boolfalse{YAD@final@work}%
+ },%
+ version/submitted/.code={%
+ \boolfalse{YAD@nowarning}%
+ \boolfalse{YAD@noerror}%
+ \boolfalse{YAD@nowarning}%
+ \boolfalse{YAD@noerror}%
+ \boolfalse{YAD@draft}%
+ \boolfalse{YAD@inprogress@work}%
+ \boolfalse{YAD@inprogress@work@star}%
+ \booltrue{YAD@submitted@work}%
+ \boolfalse{YAD@submitted@work@star}%
+ \boolfalse{YAD@final@work}%
+ },%
+ version/submitted*/.code={%
+ \boolfalse{YAD@nowarning}%
+ \boolfalse{YAD@noerror}%
+ \boolfalse{YAD@draft}%
+ \boolfalse{YAD@inprogress@work}%
+ \boolfalse{YAD@inprogress@work@star}%
+ \boolfalse{YAD@submitted@work}%
+ \booltrue{YAD@submitted@work@star}%
+ \boolfalse{YAD@final@work}%
+ },%
+ version/final/.code={%
+ \boolfalse{YAD@nowarning}%
+ \boolfalse{YAD@noerror}%
+ \boolfalse{YAD@draft}%
+ \boolfalse{YAD@inprogress@work}%
+ \boolfalse{YAD@inprogress@work@star}%
+ \boolfalse{YAD@submitted@work}%
+ \boolfalse{YAD@submitted@work@star}%
+ \booltrue{YAD@final@work}%
+ },%
+ version/.initial=final%
+}%
+\yadsetup{version=inprogress}%
+% \end{macrocode}
+%
+% On définit la clé "output" de la classe qui prend pour valeurs :
+% \begin{itemize}
+% \item (par défaut) "screen" ;
+% \item "paper" » ;
+% \item "paper*".
+% \end{itemize}
+% \begin{macrocode}
+\yadsetup{%
+ output/.is choice,%
+ output/paper/.code={\booltrue{YAD@output@paper}},%
+ output/paper*/.code={%
+ \booltrue{YAD@output@paper}%
+ \booltrue{YAD@output@paper@star}%
+ },%
+ output/screen/.code={},%
+ output/.initial=screen%
+}%
+% \end{macrocode}
+%
+% On définit la clé de classe "localtocs" qui fait que les titres des chapitres
+% de la partie principale sont automatiquement suivis d'une table des matières
+% locale à ce chapitre, de profondeur pouvant être précisée mais par défaut
+% celle par défaut de la table des matières.
+% \begin{macrocode}
+\def\YAD@localtocsdepth{\YAD@tocdepth}%
+\yadsetup{%
+ localtocs/.is family,%
+ localtocs/.code={%
+ \booltrue{YAD@localtocs@classoption}%
+ },%
+ localtocs/depth/.code={%
+ \pgfkeysalso{localtocs}%
+ \ifboolexpr{%
+ test {\ifstrempty{#1}}
+ or %
+ test {\ifstrequal{#1}{part}}
+ or %
+ test {\ifstrequal{#1}{chapter}}
+ }{%
+ \def\YAD@localtocsdepth{\YAD@tocdepth}%
+ }{%
+ \def\YAD@localtocsdepth{#1}%
+ }%
+ \ifboolexpr{%
+ test {\@ifundefined {Etoc@\YAD@localtocsdepth @@}}
+ or %
+ test {\ifstrequal{#1}{part}}
+ or %
+ test {\ifstrequal{#1}{chapter}}
+ }{%
+ \YAD@ClassWarningNoLine{%
+ La valeur (`#1') passee a la cle\MessageBreak%
+ `localtocs/depth'\MessageBreak%
+ en option de classe n'est pas un des niveaux de\MessageBreak%
+ sectionnement acceptes :\MessageBreak%
+ `section', `subsection',`subsubsection',\MessageBreak%
+ `paragraph', `subparagraph'.\MessageBreak%
+ Le niveau `\YAD@tocdepth' va etre utilise a la place%
+ }%
+ }{%
+ }%
+ },%
+}%
+% \end{macrocode}
+%
+% On définit la clé de classe "localbibs" qui fait que les chapitres
+% contenant des références bibliographiques sont automatiquement terminées par
+% leurs bibliographies locales.
+% \begin{macrocode}
+\newcommand\YAD@localbibs@common@code[1]{%
+ \booltrue{YAD@localbibs}%
+ \AtEndPreamble{%
+ \@ifpackageloaded{biblatex}{%
+ }{%
+ \@ifpackageloaded{csquotes}{%
+ }{%
+ \RequirePackage{csquotes}%
+ }%
+ \YAD@ClassWarningNoLine{%
+ L'ajout automatique des bibliographies locales en fin\MessageBreak%
+ de chapitres fourni par l'option de classe\MessageBreak%
+ `localbibs' repose sur le package `biblatex'\MessageBreak%
+ que vous n'avez pas charge.\MessageBreak%
+ La classe `yathesis' va le faire pour vous mais\MessageBreak%
+ le recours a ce package pour la bibliographie sera\MessageBreak%
+ alors necessaire et exclura tout autre outil\MessageBreak%
+ de production de la bibliographie\MessageBreak%
+ (notamment `BibTeX')%
+ }%
+ \RequirePackage{biblatex}%
+ }%
+ \ExecuteBibliographyOptions{%
+ refsegment=chapter,%
+ defernumbers=#1%
+ }%
+ \AfterEndPreamble{\newrefsegment}%
+ }%
+}
+\yadsetup{%
+ localbibs*/.code={%
+ \YAD@localbibs@common@code{true}%
+ },%
+ localbibs/.code={%
+ \YAD@localbibs@common@code{false}%
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \def\YAD@interligne{single}%
+% \define@choicekey*{yathesis.cls}{space}{single,onehalf,double}[single]%
+% {\def\YAD@interligne{#1}}%
+\def\YAD@interligne{single}%
+\yadsetup{%
+ space/.is choice,%
+ space/single/.code={\def\YAD@interligne{single}},%
+ space/onehalf/.code={\def\YAD@interligne{onehalf}},%
+ space/double/.code={\def\YAD@interligne{double}},%
+ space/.initial=single%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\yadsetup{%
+ mainlanguage/.store in=\YAD@mainlanguage,%
+ secnumdepth/.store in=\YAD@secnumdepth,%
+ sepcorpaffilfrench/.store in=\YAD@global@sepcorpaffil@french,%
+ sepcorpaffilenglish/.store in=\YAD@global@sepcorpaffil@english,%
+ % frametitle/.store in=\cmdKV@YAD@frametitle,%
+ chap-style/.code={%
+ \def\YAD@fncychapstyle{#1}%
+ \PassOptionsToPackage{#1}{fncychap}%
+ },%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\yadsetup{fncychap/.style={chap-style=#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\yadsetup{%
+ sepcorpaffilenglish={\ at\ },%
+ chap-style=PetersLenny,%
+}%
+% \end{macrocode}
+%
+% On crée des \enquote{hooks} permettant de passer, en option de
+% "\documentclass", des options aux packages chargés par la classe qui :
+% \begin{enumerate}
+% \item présentent un intérêt en soi pour l'utilisateur final ;
+% \item dont les options peuvent être utiles à l'utilisateur final.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\PassOptionsToPackage{a4paper}{geometry}%
+\PassOptionsToPackage{nodayofweek}{datetime}%
+\PassOptionsToPackage{export}{adjustbox}%
+\PassOptionsToPackage{numbered}{bookmark}%
+% \PassOptionsToPackage{pagestyles}{titlesec}%
+% \end{macrocode}
+% On passe au \Package{hyperref} (s'il est chargé par l'utilisteur final) des
+% options qui nous semblent pertinentes.
+% \begin{macrocode}
+\PassOptionsToPackage{%
+ final,%
+ unicode,%
+ hyperfootnotes=false,%
+ hyperindex=false,%
+ plainpages=false,%
+ breaklinks,%
+ pdfpagemode=UseOutlines,%
+ pdfpagelayout=TwoPageRight%
+}{hyperref}%
+%
+\yadsetup{%
+ graphicx/.code={\PassOptionsToPackage{#1}{graphicx}},%
+ adjustbox/.code={\PassOptionsToPackage{#1}{adjustbox}},%
+ setspace/.code={\PassOptionsToPackage{#1}{setspace}},%
+ xcolor/.code={\PassOptionsToPackage{#1}{xcolor}},%
+ datatool/.code={\PassOptionsToPackage{#1}{datatool}},%
+ titleps/.code={\PassOptionsToPackage{#1}{titleps}},%
+ titlesec/.code={\PassOptionsToPackage{#1}{titlesec}},%
+ draftwatermark/.code={\PassOptionsToPackage{#1}{draftwatermark}},%
+ babel/.code={\PassOptionsToPackage{#1}{babel}},%
+ datetime/.code={\PassOptionsToPackage{#1}{datetime}}%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\yadsetup{%
+ .unknown/.code ={\expandafter\PassOptionsToClass\expandafter{\pgfkeyscurrentname}{book}}%
+}%
+% \end{macrocode}
+%
+% \section{Process of Options}
+%
+% \begin{macrocode}
+\ProcessPgfOptions{/yad}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifthenelse{\equal{\YAD@mainlanguage}{english}}{%
+ \def\YAD@secondarylanguage{french}%
+}{%
+}%
+\ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+ \def\YAD@secondarylanguage{english}%
+}{%
+}%
+\ifthenelse{\equal{\@classoptionslist}{}}{%
+ \edef\@classoptionslist{\YAD@secondarylanguage,\YAD@mainlanguage}%
+}{%
+ \edef\@classoptionslist{\YAD@secondarylanguage,\YAD@mainlanguage,\@classoptionslist}%
+}%
+% \end{macrocode}
+%
+% \section{Class Loading}
+%
+% The \yatcl is based upon the standard \class{book} class:
+%
+% \begin{macrocode}
+\LoadClass{book}%
+% \end{macrocode}
+%
+% \section{Packages loaded}\label{sec-packages-loaded}
+%
+% All of the following packages are in the standard modern distributions of
+% \LaTeX.
+%
+% Le \Package{xkeyval} permet aussi de définir des macros dont les arguments
+% puissent être spécifiés sous la forme "clé="\meta{valeur} mais ce n'est pas
+% pour cela qu'il est chargé : c'est pour éviter des erreurs qui ont lieu dans
+% certaines circonstances du fait du \Package{keyval} chargé par le
+% \Package{geometry}.
+% \begin{macrocode}
+\RequirePackage{xkeyval}%
+% \end{macrocode}
+% Gestion de la géométrie de la page.
+% \begin{macrocode}
+\RequirePackage{geometry}[2010/09/12]%
+% \end{macrocode}
+% Pour insérer des images
+% \begin{macrocode}
+\RequirePackage{graphicx}[1999/02/16]%
+% \end{macrocode}
+% Pour stocker le contenu d'un environnement dans une macro.
+% \begin{macrocode}
+\RequirePackage{environ}[2013/04/01]%
+% \end{macrocode}
+% Pour ajuster la position des matériels \LaTeX{}, notamment pour assurer
+% l'alignement vertical des images.
+% \begin{macrocode}
+\RequirePackage{adjustbox}[2012/05/21]%
+% \end{macrocode}
+% Pour disposer d'outils pour les tableaux
+% \begin{macrocode}
+\RequirePackage{array}[2008/09/09]%
+% \end{macrocode}
+% Pour effectuer des manipulations sur des chaîne de caractères
+% \begin{macrocode}
+\RequirePackage{xstring}[2013/10/13]%
+% \end{macrocode}
+% Pour facilement changer la casse
+% \begin{macrocode}
+\RequirePackage{textcase}[2004/10/07]%
+% \end{macrocode}
+% Pour tester le moteur employé
+% \begin{macrocode}
+\RequirePackage{iftex}[2013/04/04]%
+% \end{macrocode}
+% Pour les épigraphes
+% \begin{macrocode}
+\RequirePackage{epigraph}[2009/09/02]%
+% \end{macrocode}
+% Pour disposer de boîtes élaborées en couleurs et encadrées
+% \begin{macrocode}
+\RequirePackage{tcolorbox}[2014/03/31]%
+% \end{macrocode}
+% Pour insérer des petits symboles rigolos (téléphone, fax, etc.)
+% \begin{macrocode}
+\RequirePackage{marvosym}[2011/07/20]%
+% \end{macrocode}
+% Pour la gestion des interlignes
+% \begin{macrocode}
+\RequirePackage{setspace}[2011/12/19]%
+% \end{macrocode}
+% % Pour régler finement la profondeur de la table des matières et de la
+% % numérotation
+% % \begin{macrocode}
+% \RequirePackage{tocvsec2}[2014/03/10]%
+% % \end{macrocode}
+% Pour faire figurer les table des matières, bibliographie et index
+% dans la table des matières
+% \begin{macrocode}
+\RequirePackage{tocbibind}[2010/10/13]%
+% \end{macrocode}
+% Pour déboguer
+% \begin{macrocode}
+% \RequirePackage{trace}%
+% \end{macrocode}
+% Pour des titres de chapitres améliorés
+% \begin{macrocode}
+\ifthenelse{\equal{\YAD@fncychapstyle}{none}}{%
+}{%
+ \RequirePackage{fncychap}[2007/07/30]%
+}%
+% \end{macrocode}
+% Pour gérer les titres courants (entêtes) et bas de page
+% \begin{macrocode}
+\RequirePackage[nopatches]{titleps}[2011/12/15]%
+% \end{macrocode}
+% Pour supprimer le numéro de page sur la page de titre d'une partie
+% \begin{macrocode}
+\RequirePackage{nonumonpart}[2011/04/15]%
+% \end{macrocode}
+% Pour les couleurs
+% \begin{macrocode}
+\RequirePackage{xcolor}[2007/01/21]%
+% \end{macrocode}
+% Pour manipuler des bases de données
+% \begin{macrocode}
+\RequirePackage{datatool}[2014/03/08]%
+% \end{macrocode}
+% Pour distinguer le mode \enquote{draft} des autres modes.
+% \begin{macrocode}
+\RequirePackage{ifdraft}[2008/08/11]%
+% \end{macrocode}
+% Pour insérer du texte en filigrane
+% \begin{macrocode}
+\ifdraft{%
+ \RequirePackage{draftwatermark}[2006/06/30]%
+% \end{macrocode}
+% Si on est en mode \enquote{draft}, les différentes zones de la page,
+% notamment celle allouée au texte, sont matérialisées et les
+% dépassements de marges sont signalés par une barre verticale noire
+% dans la marge.
+% \begin{macrocode}
+ \geometry{showframe}%
+ \setlength\overfullrule{5pt}%
+}{%
+ \ifbool{YAD@inprogress@work@star}{%
+ \RequirePackage{draftwatermark}[2006/06/30]%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% Pour gérer les langues.
+% \begin{macrocode}
+\RequirePackage{babel}[2014/03/24]
+% \end{macrocode}
+% Pour pouvoir afficher un sommaire c-à-d une table des matières réduite
+% \begin{macrocode}
+\RequirePackage{etoc}[2016/09/29]%
+% \end{macrocode}
+% Pour tester la langue en cours
+% \begin{macrocode}
+\RequirePackage{iflang}[2007/11/11]%
+% \end{macrocode}
+% Pour pouvoir assurer facilement les traductions de certains mots ou
+% expressions clés du canevas de thèse (notamment dans les pages de titre)
+% \begin{macrocode}
+\RequirePackage{translator}[2010/06/12]%
+% \end{macrocode}
+% Pour générer les dates (sans affichage du jour de la semaine).
+% \begin{macrocode}
+\RequirePackage{datetime}[2013/09/10]%
+% \end{macrocode}
+% Pour faire pointer les hyperliens au début des flottants plutôt qu'au
+% début des légendes
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{hyperref}{%
+ \RequirePackage[all]{hypcap}[2011/02/16]%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% Pour la gestion des signets
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{hyperref}{%
+ \RequirePackage[numbered]{bookmark}[2011/12/02]%
+ }{%
+ }%
+}%
+% \end{macrocode}
+%
+% \section{Début du code de la classe}
+%
+% Because of some changes in \Package{parskip}, we need to adjust the vertical
+% space before the first rule of the local TOCs, depending on this package is
+% loaded or not (cf. definition of ×\YAD@localstyle× below).
+% \begin{macrocode}
+\newlength{\YAD@vspace@before@localtoc@rule}
+\setlength{\YAD@vspace@before@localtoc@rule}{-1.25\baselineskip}
+\AtEndPreamble{%
+ \@ifpackageloaded{parskip}{%
+ \@ifpackagelater{parskip}{2.0a}{%
+ \setlength{\YAD@vspace@before@localtoc@rule}{-.775\baselineskip}%
+ }{%
+ }%
+ }{%
+ }%
+}
+% \end{macrocode}
+%
+% On définit les macros "\YAD@href", "\YAD@hypersetup", "\YAD@url",
+% "\YAD@nolinkurl" identiques aux macros "\href", "\hypersetup", "\url",
+% "\nolinkurl" du \Package{hyperref} mais sur lesquelles on a plus de
+% contrôle.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{hyperref}{%
+ \newcommand{\YAD@href}[3][]{\href[#1]{#2}{#3}}%
+ \newcommand{\YAD@hypersetup}[1]{\hypersetup{#1}}%
+ \newcommand{\YAD@url}[1]{\url{#1}}%
+ \newcommand{\YAD@nolinkurl}[1]{\nolinkurl{#1}}%
+ \newcommand{\YAD@texorpdfstring}[2]{\texorpdfstring{#1}{#2}}%
+ \newcommand{\YAD@phantomsection}{\phantomsection}%
+ }{%
+ \newcommand{\YAD@href}[3][]{#3}%
+ \newcommand{\YAD@hypersetup}[1]{}%
+ \newcommand{\YAD@url}[1]{\texttt{#1}}%
+ \newcommand{\YAD@nolinkurl}[1]{\texttt{#1}}%
+ \newcommand{\YAD@texorpdfstring}[2]{#1}%
+ \newcommand{\YAD@phantomsection}{}%
+ }%
+ \@ifpackageloaded{bookmark}{%
+ \newcommand{\YAD@bookmarksetup}[1]{\bookmarksetup{#1}}%
+ }{%
+ \newcommand{\YAD@bookmarksetup}[1]{}%
+ }%
+}%
+% \end{macrocode}
+%
+% Pour éviter certains comportements inattendus, on précise la langue
+% principale au moyen de l'option "main" du \Package{babel}. Mais, comme
+% celle-ci n'est apparue que récemment, on n'y recourt que si la version du
+% package est assez récente.
+% \begin{macrocode}
+\@ifpackagelater{babel}{2013/04/15}{%
+ \PassOptionsToPackage{main=\YAD@mainlanguage}{babel}%
+}{%
+ % \AtEndPreamble{%
+ \YAD@ClassWarningNoLine{%
+ La version de `babel' utilisee est obsolete.\MessageBreak%
+ La classe `yathesis' va essayer de faire son possible\MessageBreak%
+ mais il est possible qu'elle produise des resultats\MessageBreak%
+ non prevus. Il est conseille de mettre a jour sa\MessageBreak%
+ distribution TeX%
+ }%
+ % }%
+}%
+% \end{macrocode}
+%
+% On change l'appellation des tableaux flottants tels que traduits par le
+% module \package{frenchb} du \Package{babel} de \enquote{Table} à \enquote{Tableau}.
+%
+% \begin{macrocode}
+\addto\captionsfrench{\def\tablename{{\scshape Tableau}}}%
+% \end{macrocode}
+%
+% On définit la macro "\YAD@ifemptyorundef" qui teste si le nom passé est celui
+% d'une macro inexistante ou dont le texte de remplacement est vide (ou
+% constitué d'espaces seulement).
+% \begin{macrocode}
+\newcommand{\YAD@ifemptyorundef}[3]{%
+ \ifboolexpr{%
+ test {\ifundef{#1}} or %
+ test {\ifdefempty{#1}}%
+ }{%
+ #2%
+ }{%
+ #3%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\AfterEndDocument{%
+ \ifbool{YAD@nowarning}{%
+ \ifboolexpr{%
+ bool {YAD@inprogress@work}%
+ or bool {YAD@inprogress@work@star}%
+ or bool {YAD@draft}%
+ }{%
+ }{%
+ \ifnumgreater{\value{YAD@warnings}}{0}{%
+ % \immediate\write\YAD@file{%
+ \ClassWarningNoLine{yathesis}{%
+ L'option `nowarning' ayant ete utilisee,\MessageBreak%
+ \theYAD@warnings\space warning%
+ \ifnumequal{\value{YAD@warnings}}{1}{%
+ \space propre%
+ }{%
+ s propres%
+ }
+ %
+ a la classe `yathesis'\MessageBreak%
+ \ifnumequal{\value{YAD@warnings}}{1}{%
+ a ete masque%
+ }{%
+ ont ete masques%
+ }
+ %
+ dans ce fichier de log.\MessageBreak%
+ Il est fortement conseille de reactiver\MessageBreak%
+ l'affichage de ce%
+ \ifnumequal{\value{YAD@warnings}}{1}{%
+ \space warning%
+ }{%
+ s warnings%
+ }
+ %
+ en supprimant\MessageBreak%
+ l'option `nowarning'%
+ }%
+ % }%
+ }{%
+ }%
+ }%
+ }{%
+ }%
+}%
+% \AtEndDocument{%
+% \immediate\closeout\YAD@file%
+% }%
+% \InputIfFileExists{\jobname.yad}{}{}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \section{Main Code}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% On charge la libraire "skins" du \Package{tcolorbox}.
+% \begin{macrocode}
+ \tcbuselibrary{skins}%
+% \end{macrocode}
+%
+% Par défaut, les listings sont composés en fonte à châsse fixe
+% \begin{macrocode}
+% \lstset{basicstyle=\ttfamily}
+% \end{macrocode}
+%
+% \begin{macro}{\YAD@clearspread}
+%
+% Commande permettant de débuter sur une page paire (pour la 4\ieme{}
+% de couverture)
+% \begin{macrocode}
+\def\YAD@clearspread{\clearpage\if@twoside \ifodd\c@page
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{titlepage}
+% Redéfinition de l'environnement \lstinline|titlepage| pour que la numérotation
+% des pages n'y soit pas fixée à $1$.
+% \begin{macrocode}
+\renewenvironment{titlepage}
+{%
+ \cleardoublepage
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+}%
+{\if@restonecol\twocolumn \else \newpage \fi
+}%
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macrocode}
+% \patchcmd{\chapter}{plain}{empty}{}{}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% On définit la macro privée où est stocké le nom du répertoire des
+% \enquote{réglages} où se trouvent les divers fichiers de configuration.
+% \begin{macro}{\YAD@configuration@directory}
+% \begin{macrocode}
+\newcommand*{\YAD@configuration@directory}{configuration}
+% \end{macrocode}
+% \end{macro}
+%
+% On définit la macro privée où est stocké le nom du fichier
+% de configuration \emph{local} de la thèse.
+% \begin{macro}{\YAD@configuration@file}
+% \begin{macrocode}
+\newcommand*{\YAD@configuration@file}{thesis.cfg}
+% \end{macrocode}
+% \end{macro}
+%
+% On définit la macro privée où est stocké le nom du fichier esclave contenant
+% les données caractéristiques du document (ce qui doit figurer sur les pages
+% de couverture et de titre, les mots clés, etc.).
+% \begin{macro}{\YAD@characteristics@file}
+% \begin{macrocode}
+\newcommand*{\YAD@characteristics@file}{characteristics.tex}
+% \end{macrocode}
+% \end{macro}
+%
+% On définit la macro privée où est stocké le nom du fichier contenant
+% les traductions de la classe.
+% \begin{macro}{\YAD@characteristics@file}
+% \begin{macrocode}
+\newcommand*{\YAD@translations@file}{yathesis-translations.tex}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% Recherche automatique des fichiers images dans le \Folder{images}.
+% Ceci permet de ne pas spécifier le chemin des images qui s'y trouvent.
+%
+% \begin{macrocode}
+% \graphicspath{{\imagesdirectory/}}
+% \end{macrocode}
+%
+% Réglages propres au \Package{siunitx} (nombres composés avec la
+% fonte courante et adoption des conventions typographiques
+% françaises, notamment la virgule en guise de séparateur décimal).
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{siunitx}{%
+ \sisetup{detect-all}%
+ \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+ \sisetup{locale=FR}%
+ }{%
+ \sisetup{locale=UK}%
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\YAD@reach@file}
+% Macro offrant la possibilité de cliquer sur un hyperlien pour ouvrir
+% les fichier permettant de modifier les mots et expressions clés du
+% canevas de thèse et les données de la thèse
+% \begin{macrocode}
+\definecolor{YAD@configuration@file@color}{rgb}{0.5,0,0.5}%
+\definecolor{YAD@main@file@color}{rgb}{1,0.5,0}%
+\newcommand*{\YAD@reach@file}[2][\YAD@characteristics@file]{%
+ \ifdraft{%
+ \ifthenelse{\equal{\YAD@configuration@file}{#1}}{%
+ \YAD@hypersetup{%
+ urlbordercolor=YAD@configuration@file@color,%
+ urlcolor=YAD@configuration@file@color%
+ }%
+ }{%
+ \YAD@hypersetup{%
+ urlbordercolor=YAD@main@file@color,%
+ urlcolor=YAD@main@file@color%
+ }%
+ }%
+ \IfFileExists{\YAD@configuration@directory/#1}{%
+ \YAD@href{\YAD@configuration@directory/#1}{#2}%
+ }{%
+ \YAD@href{\jobname.tex}{#2}%
+ }%
+ }{%
+ #2%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Si on est en format de sortie "paper" (impression sur papier) la macro
+% "\YAD@href"\meta{\textsc{url}}"}{"\meta{texte}"}" n'affiche que le
+% \meta{texte} et les hyperliens des macros
+% "\url" sont supprimés. En outre, les commandes
+% "\href{"\meta{\textsc{url}}"}{"\meta{texte}"}" du \Package{hyperref} sont
+% automatiquement remplacées par :
+% \begin{itemize}
+% \item \meta{texte}"\footnote{"\meta{\textsc{url}}"}" ;
+% \item \meta{texte} "("\meta{\textsc{url}}")" ;
+% \end{itemize}
+% selon que "\href{"\meta{\textsc{url}}"}{"\meta{texte}"}" est dans le texte
+% ordinaire ou elle-même en note de bas de page.
+% \begin{macrocode}
+\ifbool{YAD@output@paper}{%
+ \AtEndPreamble{%
+ \@ifpackageloaded{hyperref}{%
+ \YAD@hypersetup{colorlinks=false}%
+ \renewcommand{\YAD@href}[3][]{#3}%
+ \let\YAD@ori@footnote\footnote%
+ \renewcommand{\footnote}[1]{\booltrue{YAD@in@footnote}\YAD@ori@footnote{#1}\boolfalse{YAD@in@footnote}}%
+ \renewcommand*\url[1]{\nolinkurl{#1}}%
+ \renewcommand*\href[3][]{%
+ \ifbool{YAD@in@footnote}{%
+ #3 (\url{#2}) }{%
+ #3\footnote{\url{#2}} }%
+ }%
+ }{%
+ }%
+ }%
+}{%
+}%
+% \end{macrocode}
+%
+% On fixe la couleur du filigrane inséré lorsque le
+% \Package{draftwatermark} est chargé.
+% \begin{macrocode}
+\@ifpackageloaded{draftwatermark}{%
+ \SetWatermarkColor{gray!10}%
+}{%
+}%
+% \end{macrocode}
+% En cas de travail en cours, on l'indique en filigrane.
+% \begin{macrocode}
+\ifbool{YAD@inprogress@work@star}{%
+ \SetWatermarkFontSize{3cm}%
+ \AfterEndPreamble{\translatelet\YAD@trinprogress{lbl-inprogress}}%
+ \SetWatermarkText{\MakeUppercase{\YAD@trinprogress}}%
+}{%
+}%
+% \end{macrocode}
+% Si l'option "draft" est activée, on indique clairement qu'on est en
+% mode brouillon au moyen d'un texte en filigrane
+% \begin{macrocode}
+\ifdraft{%
+ \AfterEndPreamble{\translatelet\YAD@trdraft{lbl-draft}}%
+ \SetWatermarkText{\MakeUppercase{\YAD@trdraft}}%
+}{%
+}%
+% \end{macrocode}
+%
+% Commande permettant de composer les arguments génériques
+% \begin{macro}{\YAD@generic@argument@}
+% \begin{macrocode}
+\newcommand*{\YAD@generic@argument}[1]{%
+ \bgroup\color{brown}\normalfont$\langle$\textsl{\texttt{#1}}$\rangle$\egroup%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@translation}
+% Commande adjoignant à "\translate" les hyperliens vers le fichier
+% de configuration où peuvent être surchargées les traductions
+% \begin{macrocode}
+\newcommand*{\YAD@translation}[1]{%
+ \ifthenelse{\isempty{#1}}{%
+ }{%
+ \ifdraft{%
+ {%
+ \scriptsize%
+ \begin{tabular}{l}
+ {%
+ \normalfont\ttfamily\tiny%
+ (#1)%
+ }%
+ \\[-.3\baselineskip]
+ \YAD@reach@file[\YAD@configuration@file]{%
+ \translate{lbl-#1}%
+ }%
+ \end{tabular}%
+ }%
+ }{%
+ \translate{lbl-#1}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@astuce@expressioncle}
+% \begin{macrocode}
+\newcommand{\YAD@astuce@expressioncle}{%
+ \ifdraft{%
+ \begin{center}
+ \footnotesize%
+ \fboxrule4pt%
+ \fcolorbox{red}{white}{%
+ \begin{minipage}{.9\linewidth}
+ \selectlanguage{french}%
+ Sur cette page, il est simple de (re)d\'efinir\ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}:
+ \begin{enumerate}
+ \item une
+ \YAD@reach@file[\YAD@configuration@file]{expression
+ cl\'e}\ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}:
+ il suffit de cliquer sur le cadre de couleur orange qui
+ l'entoure pour atteindre le fichier
+ \YAD@reach@file[\YAD@configuration@file]{\texttt{\YAD@configuration@file}}
+ et d'y ins\'erer
+ \begin{center}
+ \lstinline[morekeywords=expression]|\\expression\{|%
+ \YAD@meta{label}%
+ \lstinline|\}\{|%
+ \YAD@meta{valeur (en fran\c cais)}%
+ \lstinline|\}\{|%
+ \YAD@meta{valeur (en anglais)}%
+ \lstinline|\}|
+ \end{center}
+ pour lui donner une (nouvelle) \YAD@meta{valeur} (\'eventuellement
+ vide), \YAD@meta{label} \'etant son identifiant indiqu\'e au-dessus et
+ entre parenth\`eses\ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace};
+ \item une \YAD@reach@file{donn\'ee}\ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}: il
+ suffit de cliquer sur le cadre de couleur pourpre qui l'entoure
+ pour atteindre le fichier
+ \YAD@reach@file{\texttt{\YAD@configuration@file}} o\`u elle est
+ d\'efinie.
+ \end{enumerate}
+ Pour plus de d\'etails, consulter la documentation de la
+ classe \textsl{yathesis}.%
+ \end{minipage}%
+ }%
+ \end{center}
+ }{%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\expression}
+% On offre la possibilité de (re)définir les expressions clés de la thèse.
+% Le 1\ier{} argument est le label de l'expression et les 2\ieme{} et
+% 3\ieme{} arguments permettent de stipuler les (nouvelles) valeurs
+% (éventuellement vides) de l'expresion respectivement en français et en
+% anglais.
+% \begin{macrocode}
+\newcommand{\YAD@expression}[3]{%
+ \AtBeginDocument{%
+ \deftranslation[to=French]{lbl-#1}{#2}%
+ \deftranslation[to=English]{lbl-#1}{#3}%
+ \deftranslation[to=French]{#1}{#2}%
+ \deftranslation[to=English]{#1}{#3}%
+ }%
+}%
+\newcommand{\YAD@expression@alias}[5]{%
+ \ifthenelse{\equal{#1}{#4}}{%
+ \YAD@expression{#5}{#2}{#3}%
+ }{%
+ }%
+}%
+\newcommand{\expression}[3]{%
+ \YAD@expression@alias{#1}{#2}{#3}{juniorresearcherfem*}{juniorresearcher-female*}%
+ \YAD@expression@alias{#1}{#2}{#3}{mcf}{associateprofessor}%
+ \YAD@expression@alias{#1}{#2}{#3}{mcf*}{associateprofessor*}%
+ \renewcommand*{\do}[1]{\YAD@expression@alias{#1}{#2}{#3}{##1fem}{##1-female}}
+ \docsvlist{%
+ juniorresearcher,%
+ supervisor,%
+ cosupervisor,%
+ comonitor,%
+ seniorresearcher,%
+ committeepresident,%
+ professor,%
+ }
+ %
+ \YAD@expression{#1}{#2}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@generic@argument@translate}
+% \begin{macrocode}
+\newcommand*{\YAD@generic@argument@translate}[1]{%
+ \YAD@texorpdfstring{\YAD@generic@argument{\translate{meta-#1}}}{<#1>}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Déclarations permettant de définir des macros des directeurs (dont
+% d'éventuels co-directeurs), rapporteurs et examinateurs (dont le président du
+% jury) dont les arguments puissent être spécifiés sous la forme \meta{clé} =
+% \meta{valeur} (grâce au package \package{pgfkeys}). La famille est nommée
+% \lstinline|yad| (comme \foreignquote{english}{yet antoher document}).
+% \begin{macrocode}
+\newcommand{\cmdKV@YAD@numlaboratories}{1}%
+\yadsetup{%
+ role/.store in=\cmdKV@YAD@role,%
+ corporation/.store in=\cmdKV@YAD@corps,%
+ corps/.store in=\cmdKV@YAD@corps,%
+ url/.store in=\cmdKV@YAD@url,%
+ logo/.store in=\cmdKV@YAD@logo,%
+ address/.store in=\cmdKV@YAD@address,%
+ telephone/.store in=\cmdKV@YAD@telephone,%
+ fax/.store in=\cmdKV@YAD@fax,%
+ email/.store in=\cmdKV@YAD@email,%
+ affiliation/.store in=\cmdKV@YAD@affiliation,%
+ affiliationsecondary/.store in=\cmdKV@YAD@affiliationsecondary,%
+ sepcorpaffilfrench/.store in=\cmdKV@YAD@sepcorpaffilfrench,%
+ sepcorpaffilenglish/.store in=\cmdKV@YAD@sepcorpaffilenglish,%
+ name/.store in=\cmdKV@YAD@name,%
+ depth/.store in=\cmdKV@YAD@depth,%
+ frametitle/.store in=\cmdKV@YAD@frametitle,%
+ numlaboratories/.store in=\cmdKV@YAD@numlaboratories,%
+}%
+%
+\yadsetup{%
+ logoheight/.code={%
+ \global\setlength\cmdKV@YAD@logoheight{#1}%
+ \ifdimgreater{\cmdKV@YAD@logoheight}{\YAD@max@logoheight}{%
+ \global\setlength\YAD@max@logoheight{\cmdKV@YAD@logoheight}%
+ }{%
+ }%
+ }%
+}%
+%
+\yadsetup{sepcorpaffilfrench=\YAD@global@sepcorpaffil@french}%
+\yadsetup{sepcorpaffilenglish=\YAD@global@sepcorpaffil@english}%
+\yadsetup{name=\contentsname}%
+\yadsetup{depth=subsubsection}%
+% \yadsetup{frametitle=fbox}%
+% \end{macrocode}
+% On crée un style de réinitialisation des caractéristiques des personnes.
+% \begin{macrocode}
+\yadsetup{reset person/.style={%
+ corps=,%
+ role=,%
+ affiliation=,%
+ affiliationsecondary=,%
+ female=false,%
+ male=true,%
+ professor=false,%
+ mcf=false,%
+ mcf*=false,%
+ associateprofessor=false,%
+ associateprofessor*=false,%
+ juniorresearcher=false,%
+ juniorresearcher*=false,%
+ seniorresearcher=false,%
+ }%
+}%
+%
+% Définition de nouvelles bases de données
+% \begin{macrocode}
+\DTLnewdb{YAD@staffs}%
+\DTLnewrow{YAD@staffs}%
+\DTLnewdbentry{YAD@staffs}{YAD@the@staff}{referees}%
+\DTLnewrow{YAD@staffs}%
+\DTLnewdbentry{YAD@staffs}{YAD@the@staff}{examiners}%
+\DTLnewrow{YAD@staffs}%
+\DTLnewdbentry{YAD@staffs}{YAD@the@staff}{guests}%
+\DTLnewrow{YAD@staffs}%
+\DTLnewdbentry{YAD@staffs}{YAD@the@staff}{supervisors-in-committee}%
+%
+\DTLforeach{YAD@staffs}{%
+ \YAD@the@staff=YAD@the@staff}{%
+ \DTLnewdb{\YAD@the@staff}%
+}%
+\DTLnewdb{YAD@supervisors}%
+%
+\DTLnewdb{dedications}%
+\DTLnewdb{frontepigraphs}%
+% \end{macrocode}
+% Booléens testant la présence de femmes uniquement dans chacun des groupes de
+% membres du jury, globalement fixés à \enquote{vrai} par défaut.
+% \begin{macrocode}
+\DTLforeach{YAD@staffs}{%
+ \YAD@the@staff=YAD@the@staff}{%
+ \YAD@create@boolean{only@female@\YAD@the@staff}%
+ \global\booltrue{YAD@only@female@\YAD@the@staff}%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\YAD@staff}[4][]{%
+% \end{macrocode}
+% On continue.
+% \begin{macrocode}
+ \dtlexpandnewvalue%
+ %
+ \yadsetup{#1}%
+% \end{macrocode}
+% Pour chacun des groupes de membres du jury, le booléen testant la présence de
+% femmes uniquement est globalement fixés à \enquote{faux} si au moins une
+% personne n'est pas une femme.
+% \begin{macrocode}
+\DTLforeach{YAD@staffs}{%
+ \YAD@the@staff=YAD@the@staff}{%
+ \ifthenelse{\equal{#4}{\YAD@the@staff}}{%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ }{%
+ \global\boolfalse{YAD@only@female@#4}%
+ }%
+ }{%
+ }
+}%
+%
+ \ifbool{YAD@professor}{%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \yadsetup{corps=professor-female,#1}%
+ }{%
+ \yadsetup{corps=professor,#1}%
+ }%
+ }{%
+ }%
+ \ifboolexpr{
+ bool {YAD@mcf}
+ or
+ bool {YAD@associateprofessor}
+ }{%
+ \yadsetup{corps=associateprofessor,#1}%
+ }{%
+ }%
+ \ifboolexpr{
+ bool {YAD@mcf*}
+ or
+ bool {YAD@associateprofessor*}
+ }{%
+ \yadsetup{corps=associateprofessor*,#1}%
+ }{%
+ }%
+ \ifboolexpr{ bool {YAD@juniorresearcher} }{%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \yadsetup{corps=juniorresearcher-female,#1}%
+ }{%
+ \yadsetup{corps=juniorresearcher,#1}%
+ }%
+ }{%
+ }%
+ \ifboolexpr{ bool {YAD@juniorresearcher*} }{%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \yadsetup{corps=juniorresearcher-female*,#1}%
+ }{%
+ \yadsetup{corps=juniorresearcher*,#1}%
+ }%
+ }{%
+ }%
+ \ifboolexpr{ bool {YAD@seniorresearcher} }{%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \yadsetup{corps=seniorresearcher-female,#1}%
+ }{%
+ \yadsetup{corps=seniorresearcher,#1}%
+ }%
+ }{%
+ }%
+ %
+% \end{macrocode}
+% On fait en sorte que la clé "corporation", obsolète et remplacée par la clé
+% "corps", soit un alias de ce dernier.
+% \begin{macrocode}
+ % \ifthenelse{\equal{\cmdKV@YAD@corporation}{}}{%
+ % }{%
+ % \ifthenelse{\equal{\cmdKV@YAD@corps}{}}{%
+ % \yadsetup{#1,corps=\cmdKV@YAD@corporation}%
+ % }{%
+ % }%
+ % }%
+% \end{macrocode}
+% On continue.
+% \begin{macrocode}
+ \DTLnewrow{#4}%
+ \DTLnewdbentry{#4}{firstname}{#2}%
+ \DTLnewdbentry{#4}{lastname}{#3}%
+ \YAD@ifemptyorundef{\cmdKV@YAD@role}{%
+ \DTLnewdbentry{#4}{role}{}%
+ }{%
+ \DTLnewdbentry{#4}{role}{\cmdKV@YAD@role}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@corps}{%
+ \DTLnewdbentry{#4}{corps}{}%
+ }{%
+ \DTLnewdbentry{#4}{corps}{\cmdKV@YAD@corps}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@sepcorpaffilfrench}{%
+ \DTLnewdbentry{#4}{sepcorpaffilfrench}{\YAD@global@sepcorpaffil@french}%
+ }{%
+ \DTLnewdbentry{#4}{sepcorpaffilfrench}{\cmdKV@YAD@sepcorpaffilfrench}%
+ \def\cmdKV@YAD@sepcorpaffilfrench{}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@sepcorpaffilenglish}{%
+ \DTLnewdbentry{#4}{sepcorpaffilenglish}{\YAD@global@sepcorpaffil@english}%
+ }{%
+ \DTLnewdbentry{#4}{sepcorpaffilenglish}{\cmdKV@YAD@sepcorpaffilenglish}%
+ \def\cmdKV@YAD@sepcorpaffilenglish{}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@affiliation}{%
+ \DTLnewdbentry{#4}{affiliation}{}%
+ }{%
+ \DTLnewdbentry{#4}{affiliation}{\cmdKV@YAD@affiliation}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@affiliationsecondary}{%
+ \YAD@ifemptyorundef{\cmdKV@YAD@affiliation}{%
+ \DTLnewdbentry{#4}{affiliationsecondary}{}%
+ }{%
+ \DTLnewdbentry{#4}{affiliationsecondary}{\cmdKV@YAD@affiliation}%
+ }%
+ }{%
+ \DTLnewdbentry{#4}{affiliationsecondary}{\cmdKV@YAD@affiliationsecondary}%
+ }%
+% \end{macrocode}
+% On réinitialise les caractéristiques pour la personne suivante.
+% \begin{macrocode}
+ \yadsetup{reset person}%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\YAD@error@firstlastnames@empty}
+% \begin{macrocode}
+\newcommand{\YAD@error@firstlastnames@empty}[4]{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@ClassError{%
+ Prenom #1 non specifie%
+ }{%
+ Le 1er argument obligatoire de la commande \string#4\MessageBreak%
+ est vide (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ }%
+ \ifthenelse{\isempty{#3}}{%
+ \YAD@ClassError{%
+ Nom #1 non specifie%
+ }{%
+ Le 2e argument obligatoire de la commande \string#4\MessageBreak%
+ est vide (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@supervisors@in@committee}
+% \begin{macrocode}
+\newcommand*{\YAD@supervisors@in@committee}[3][]{%
+ \YAD@staff[#1]{#2}{#3}{supervisors-in-committee}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\supervisor}
+% \begin{macrocode}
+\newcommand{\supervisor}{%
+ \@ifstar{\@tempswafalse\YAD@supervisor}{\@tempswatrue\YAD@supervisor}%
+}
+\newcommand*{\YAD@supervisor}[3][]{%
+ \booltrue{YAD@supervisor@specified}%
+ \yadsetup{#1}%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \YAD@error@firstlastnames@empty{de la directrice de these}{#2}{#3}{\supervisor}%
+ \YAD@staff[role=supervisor-female,#1]{#2}{#3}{YAD@supervisors}%
+ }{%
+ \YAD@error@firstlastnames@empty{du directeur de these}{#2}{#3}{\supervisor}%
+ \YAD@staff[role=supervisor,#1]{#2}{#3}{YAD@supervisors}%
+ }%
+ \if@tempswa%
+ \YAD@staff[role=supervisor,#1]{#2}{#3}{supervisors-in-committee}%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cosupervisor}
+% \begin{macrocode}
+\newcommand{\cosupervisor}{%
+ \@ifstar{\@tempswatrue\YAD@cosupervisor}{\@tempswafalse\YAD@cosupervisor}%
+}
+\newcommand*{\YAD@cosupervisor}[3][]{%
+ \booltrue{YAD@supervisor@specified}%
+ \booltrue{YAD@cosupervisor@or@comonitor}%
+ \yadsetup{#1}%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \YAD@error@firstlastnames@empty{de la co-directrice de these}{#2}{#3}{\cosupervisor}%
+ \YAD@staff[role=cosupervisor-female,#1]{#2}{#3}{YAD@supervisors}%
+ }{%
+ \YAD@error@firstlastnames@empty{du co-directeur de these}{#2}{#3}{\cosupervisor}%
+ \YAD@staff[role=cosupervisor,#1]{#2}{#3}{YAD@supervisors}%
+ }%
+ \if@tempswa%
+ \else%
+ \YAD@staff[role=cosupervisor,#1]{#2}{#3}{supervisors-in-committee}%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\comonitor}
+% \begin{macrocode}
+\newcommand{\comonitor}{%
+ \@ifstar{\@tempswatrue\YAD@comonitor}{\@tempswafalse\YAD@comonitor}%
+}
+\newcommand*{\YAD@comonitor}[3][]{%
+ \booltrue{YAD@supervisor@specified}%
+ \booltrue{YAD@cosupervisor@or@comonitor}%
+ \yadsetup{#1}%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \YAD@error@firstlastnames@empty{de la co-encadrante de these}{#2}{#3}{\comonitor}%
+ \YAD@staff[role=comonitor-female,#1]{#2}{#3}{YAD@supervisors}%
+ }{%
+ \YAD@error@firstlastnames@empty{de co-encadrant de these}{#2}{#3}{\comonitor}%
+ \YAD@staff[role=comonitor,#1]{#2}{#3}{YAD@supervisors}%
+ }%
+ \if@tempswa%
+ \else%
+ \YAD@staff[role=comonitor,#1]{#2}{#3}{supervisors-in-committee}%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\guest}
+% \begin{macrocode}
+\newcommand*{\guest}[3][]{%
+ \YAD@staff[#1]{#2}{#3}{guests}%
+ \YAD@error@firstlastnames@empty{de l'invite}{#2}{#3}{\guest}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\referee}
+% \begin{macrocode}
+\newcommand*{\referee}[3][]{%
+ \yadsetup{#1}%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \YAD@error@firstlastnames@empty{de la rapportrice}{#2}{#3}{\referee}%
+ }{%
+ \YAD@error@firstlastnames@empty{du rapporteur}{#2}{#3}{\referee}%
+ }%
+ \YAD@staff[#1]{#2}{#3}{referees}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\examiner}
+% \begin{macrocode}
+\newcommand*{\examiner}[3][]{%
+ \yadsetup{#1}%
+ \YAD@staff[#1]{#2}{#3}{examiners}%
+ \ifboolexpr{%
+ test {\ifdefstring{\cmdKV@YAD@role}{committeepresident}} or %
+ test {\ifdefstring{\cmdKV@YAD@role}{committeepresident-female}}%
+ }{%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male} or %
+ }{%
+ \YAD@error@firstlastnames@empty{de l'examinatrice}{#2}{#3}{\examiner}%
+ }{%
+ \YAD@error@firstlastnames@empty{de l'examinateur}{#2}{#3}{\examiner}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\committeepresident}
+% \begin{macrocode}
+\newcommand*{\committeepresident}[3][]{%
+ \yadsetup{#1}%
+ \ifboolexpr{%
+ bool {YAD@female} or %
+ not bool {YAD@male}%
+ }{%
+ \YAD@error@firstlastnames@empty{de la presidente du jury}{#2}{#3}{\committeepresident}%
+ \examiner[role=committeepresident-female,#1]{#2}{#3}%
+ }{%
+ \YAD@error@firstlastnames@empty{du president du jury}{#2}{#3}{\committeepresident}%
+ \examiner[role=committeepresident,#1]{#2}{#3}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\newcommand*{\YAD@al}{ \`a l'}%
+\newcommand*{\YAD@au}{ au }%
+\newcommand*{\YAD@del}{ de l'}%
+\newcommand*{\YAD@du}{ du }%
+%
+\newcommand*{\YAD@if@starts@with@vowel}[3]{%
+ \ifboolexpr{%
+ test {\IfBeginWith{#1}{a}} or %
+ test {\IfBeginWith{#1}{e}} or %
+ test {\IfBeginWith{#1}{i}} or %
+ test {\IfBeginWith{#1}{o}} or %
+ test {\IfBeginWith{#1}{u}} or %
+ test {\IfBeginWith{#1}{y}} or %
+ test {\IfBeginWith{#1}{\`a}} or %
+ test {\IfBeginWith{#1}{\^a}} or %
+ test {\IfBeginWith{#1}{\"a}} or %
+ test {\IfBeginWith{#1}{\'e}} or %
+ test {\IfBeginWith{#1}{\`e}} or %
+ test {\IfBeginWith{#1}{\^e}} or %
+ test {\IfBeginWith{#1}{\"e}} or %
+ test {\IfBeginWith{#1}{\^i}} or %
+ test {\IfBeginWith{#1}{\"i}} or %
+ test {\IfBeginWith{#1}{\^o}} or %
+ test {\IfBeginWith{#1}{\"o}} or %
+ test {\IfBeginWith{#1}{\`u}} or %
+ test {\IfBeginWith{#1}{\^u}} or %
+ test {\IfBeginWith{#1}{\"u}} or %
+ test {\IfBeginWith{#1}{\"y}} or %
+ test {\IfBeginWith{#1}{A}} or %
+ test {\IfBeginWith{#1}{E}} or %
+ test {\IfBeginWith{#1}{I}} or %
+ test {\IfBeginWith{#1}{O}} or %
+ test {\IfBeginWith{#1}{U}} or %
+ test {\IfBeginWith{#1}{Y}} or %
+ test {\IfBeginWith{#1}{\`A}} or %
+ test {\IfBeginWith{#1}{\^A}} or %
+ test {\IfBeginWith{#1}{\"A}} or %
+ test {\IfBeginWith{#1}{\'E}} or %
+ test {\IfBeginWith{#1}{\`E}} or %
+ test {\IfBeginWith{#1}{\^E}} or %
+ test {\IfBeginWith{#1}{\"E}} or %
+ test {\IfBeginWith{#1}{\^I}} or %
+ test {\IfBeginWith{#1}{\"I}} or %
+ test {\IfBeginWith{#1}{\^O}} or %
+ test {\IfBeginWith{#1}{\"O}} or %
+ test {\IfBeginWith{#1}{\`U}} or %
+ test {\IfBeginWith{#1}{\^U}} or %
+ test {\IfBeginWith{#1}{\"U}} or %
+ test {\IfBeginWith{#1}{\"Y}} or %
+ test {\IfBeginWith{#1}{\ae}} or %
+ test {\IfBeginWith{#1}{\oe}} or %
+ test {\IfBeginWith{#1}{\AE}} or %
+ test {\IfBeginWith{#1}{\OE}}%
+ }{%
+ #2%
+ }{%
+ #3%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\YAD@display@staff}[1]{%
+ \DTLforeach*{#1}{%
+ \YAD@committeemember@lastname=lastname,%
+ \YAD@committeemember@firstname=firstname,%
+ \YAD@committeemember@role=role,%
+ \YAD@committeemember@corps=corps,%
+ \YAD@committeemember@sepcorpaffil=%
+ \expandafter\IfLanguageName{french}{%
+ sepcorpaffilfrench%
+ }{%
+ sepcorpaffilenglish%
+ }%
+ ,%
+ \YAD@committeemember@affiliation=%
+ \IfLanguageName{french}{%
+ affiliation%
+ }{%
+ affiliationsecondary%
+ }%
+ }{%
+ % Nature des membres du jury
+ \DTLiffirstrow{%
+ \ifthenelse{\DTLrowcount{\YAD@the@staff}>1}{%
+ \ifboolexpr{%
+ bool {YAD@hdr} and test {\ifdefstring{\YAD@the@staff}{supervisors-in-committee}}%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@only@female@\YAD@the@staff}%
+ }{%
+ \YAD@translation{\YAD@the@staff-pl-hdr-female}%
+ }{%
+ \YAD@translation{\YAD@the@staff-pl-hdr}%
+ }
+ }{%
+ \ifboolexpr{%
+ bool {YAD@only@female@\YAD@the@staff}%
+ }{%
+ \YAD@translation{\YAD@the@staff-pl-female}%
+ }{%
+ \YAD@translation{\YAD@the@staff-pl}%
+ }
+ }%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@hdr} and test {\ifdefstring{\YAD@the@staff}{supervisors-in-committee}}%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@only@female@\YAD@the@staff}%
+ }{%
+ \YAD@translation{\YAD@the@staff-hdr-female}%
+ }{%
+ \YAD@translation{\YAD@the@staff-hdr}%
+ }
+ }{%
+ \ifboolexpr{%
+ bool {YAD@only@female@\YAD@the@staff}%
+ }{%
+ \YAD@translation{\YAD@the@staff-female}%
+ }{%
+ \YAD@translation{\YAD@the@staff}%
+ }
+ }%
+ }%
+ }{%
+ }%
+ &
+ % Prénom
+ \YAD@reach@file{%
+ %
+ \ifthenelse{\DTLiseq{\YAD@committeemember@firstname}{}}{%
+ \YAD@generic@argument@translate{firstname}%
+ }{%
+ \YAD@committeemember@firstname%
+ }%
+% \end{macrocode}
+% L'accolade suivante ne doit pas être suivie d'un "%" sans quoi il
+% n'y aura pas d'espace entre le prénom et le nom.
+% \begin{macrocode}
+ }
+% Nom
+ \YAD@reach@file{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@lastname}{}}{%
+ \YAD@generic@argument@translate{lastname}%
+ }{%
+ \textsc{\YAD@committeemember@lastname}%
+ }%
+ }%
+ &
+% Corps
+ \YAD@reach@file{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@corps}{}}{%
+ \ifdraft{%
+ \YAD@generic@argument@translate{corps}%
+ }{%
+ }%
+ }{%
+ \YAD@translation{%
+ \YAD@committeemember@corps%
+ }%
+ }%
+ }%
+% Établissement
+ \YAD@reach@file{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@affiliation}{}}{%
+ \ifdraft{%
+ \YAD@generic@argument@translate{affiliation}%
+ }{%
+ }%
+ }{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@corps}{}}{%
+ \YAD@committeemember@affiliation%
+ }{%
+ \ifthenelse{\equal{\YAD@committeemember@sepcorpaffil}{}}{%
+ \YAD@if@starts@with@vowel{\YAD@committeemember@affiliation}{\YAD@al}{\YAD@au}\YAD@committeemember@affiliation%
+ }{%
+ \YAD@committeemember@sepcorpaffil\YAD@committeemember@affiliation%
+ }%
+ }%
+ }%
+ }%
+ &
+% Fonction
+ \YAD@reach@file{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@role}{}}{%
+ \ifdraft{%
+ \YAD@generic@argument@translate{role}%
+ }{%
+ }%
+ }{%
+ \ifthenelse{\equal{\YAD@the@staff}{supervisors-in-committee}}{%
+ }{%
+ \YAD@translation{\YAD@committeemember@role}%
+ }%
+ }%
+ }%
+ \DTLiflastrow{%
+ \\[.15cm]
+ }{%
+ \\
+ }%
+ }%
+}%
+%
+\newcommand*{\YAD@supervisors@tabular}{%
+ \small%
+ \DTLifdbempty{YAD@staffs}{}{%
+ \ifthenelse{\DTLrowcount{YAD@supervisors}>1}{%
+ \newcolumntype{u}{>{\itshape}lll}%
+ }{%
+ \newcolumntype{u}{>{\itshape}l@{ }ll}%
+ }%
+ \begin{tabular}[t]{u}
+ \DTLforeach*{YAD@supervisors}{%
+ \YAD@committeemember@lastname=lastname,%
+ \YAD@committeemember@firstname=firstname,%
+ \YAD@committeemember@role=role%
+ }{%
+ % Nature des membres du jury
+ \DTLiffirstrow{%
+ \hspace{-\tabcolsep}%
+ \normalfont\bfseries%
+ \ifYAD@hdr%
+ \YAD@translation{supervisedby-hdr} %
+ \else%
+ \YAD@translation{supervisedby}%
+ \fi%
+ }{%
+ }%
+ &
+ % Prénom
+ \YAD@reach@file{%
+ %
+ \ifthenelse{\DTLiseq{\YAD@committeemember@firstname}{}}{%
+ \YAD@generic@argument@translate{firstname}%
+ }{%
+ \YAD@committeemember@firstname%
+ }%
+ }
+ % Nom
+ \YAD@reach@file{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@lastname}{}}{%
+ \YAD@generic@argument@translate{lastname}%
+ }{%
+ \textsc{\YAD@committeemember@lastname}%
+ }%
+ }%
+ &
+ % Fonction
+ \YAD@reach@file{%
+ \ifthenelse{\DTLiseq{\YAD@committeemember@role}{}}{%
+ \ifdraft{%
+ \YAD@generic@argument@translate{role}%
+ }{%
+ }%
+ }{%
+ \ifthenelse{\DTLrowcount{YAD@supervisors}>1}{%
+ \ifbool{YAD@cosupervisor@or@comonitor}{%
+ \YAD@translation{\YAD@committeemember@role}%
+ }{%
+ }%
+ }{%
+ }%
+ }%
+ }%
+ % &
+ \DTLiflastrow{%
+ \\[.5cm]
+ }{%
+ \\
+ }%
+ }%
+ \end{tabular}%
+ }{%
+ }%
+ }%
+%
+\newcommand*{\YAD@committee@tabular}{%
+ \small%
+ \begin{tabular}[t]{>{\itshape}llp{5cm}l}
+ \multicolumn{4}{@{}l}{\bfseries\YAD@translation{committeemembers}}%
+ \\[.25cm]
+ \DTLforeach*{YAD@staffs}{%
+ \YAD@the@staff=YAD@the@staff%
+ }{%
+ %
+ \YAD@display@staff{\YAD@the@staff}%
+ }%
+ \end{tabular}%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\YAD@meta}
+% \begin{macrocode}
+\DeclareRobustCommand*\YAD@meta{\YAD@generic@argument}%
+% \end{macrocode}
+% \end{macro}
+%
+% Commande où seront stockés les logos (avec écrasement à chaque
+% nouveau logo).
+% \begin{macrocode}
+\newcommand*\YAD@logo{}%
+% \end{macrocode}
+%
+% On crée une commande créant des commandes.
+%
+% \begin{macrocode}
+\newcommand*{\YAD@create@macro}[2][]{%
+% \end{macrocode}
+% Création d'une commande standard
+% \begin{macrocode}
+ \ifthenelse{\isempty{#1}}{%
+ \csdef{#2}##1{%
+% \end{macrocode}
+% Création de la commande affichant le résultat de la commande standard
+% \begin{macrocode}
+ \csdef{print#2}{%
+ \YAD@reach@file{%
+ \ifthenelse{\isempty{##1}}{%
+ \YAD@generic@argument@translate{#2}%
+ }{%
+ ##1%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ }%
+% \end{macrocode}
+% Création d'une commande de type email
+% \begin{macrocode}
+ \ifthenelse{\equal{#1}{email}}{%
+ \csdef{#1#2}##1{%
+% \end{macrocode}
+% Création de la commande affichant le résultat de la commande
+% de type email
+% \begin{macrocode}
+ \csdef{print#1#2}{%
+ \YAD@reach@file{%
+ \ifthenelse{\isempty{##1}}{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@generic@argument@translate{#1#2}%
+ % }{%
+ \YAD@href{mailto:#1.#2@institute.fr}{\YAD@generic@argument@translate{#1#2}}%
+ % }%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@nolinkurl{##1}%
+ % }{%
+ \YAD@href{mailto:##1}{\YAD@nolinkurl{##1}}%
+ % }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ }%
+% \end{macrocode}
+% Création d'une commande de type URL
+% \begin{macrocode}
+ \ifthenelse{\equal{#1}{url}}{%
+ \csdef{#1#2}##1{%
+% \end{macrocode}
+% Création de la commande affichant le résultat de type URL
+% \begin{macrocode}
+ \csdef{print#1#2}{%
+ \YAD@reach@file{%
+ \ifthenelse{\isempty{##1}}{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@generic@argument@translate{#1#2}%
+ % }{%
+ \YAD@url{%
+ \YAD@generic@argument@translate{#1#2}%
+ }%
+ % }%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@nolinkurl{##1}%
+ % }{%
+ \YAD@url{##1}%
+ % }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ }%
+% \end{macrocode}
+% Création d'une commande pour une entité (école doctorale,
+% établissement, laboratoire, etc.)
+% \begin{macrocode}
+ \ifthenelse{\equal{#1}{entite}}{%
+ \expandafter\newcommand\expandafter{\csname #2\endcsname}[2][]{%
+% \end{macrocode}
+% Création de la commande contenant l'entité.
+% \begin{macrocode}
+ \csdef{YAD@#2}{##2}%
+ \ifthenelse{\isempty{##2}}{%
+ \YAD@ClassError[no#2]{%
+ Argument obligatoire de \csuse{#2}\space vide%
+ }{%
+ L'argument obligatoire de la commande \csuse{#2}\MessageBreak%
+ est vide (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ }%
+% \end{macrocode}
+% Création de la commande affichant l'entité.
+% \begin{macrocode}
+\csdef{print#2}{%
+ \@ifstar{\csuse{YAD@print#2@star}}{\csuse{YAD@print#2@nostar}}%
+}%
+\csdef{YAD@print#2@star}{%
+ \ifthenelse{\isempty{##2}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{#2}}%
+ }{%
+ \YAD@reach@file{##2}%
+ }%
+}%
+\csdef{YAD@print#2@nostar}{%
+ \let\YAD@texte\relax%
+ \csdef{YAD@texte}{%
+ \ifthenelse{\isempty{##2}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{#2}}%
+ }{%
+ ##2%
+ }%
+ }%
+ % \boolfalse{YAD@nolink}%
+ \yadsetup{##1}%
+ \ifthenelse{\equal{\cmdKV@YAD@url}{}}{%
+ \ifdraft{%
+ \YAD@reach@file{%
+ \YAD@texte%
+ }%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ \YAD@texte%
+ % }{%
+ % \YAD@href{www.#2.fr}{\YAD@texte}%
+ % }%
+ }%
+ }{%
+ \ifdraft{%
+ \YAD@reach@file{%
+ \YAD@texte%
+ }%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@texte%
+ % }{%
+ \YAD@href{\cmdKV@YAD@url}{\YAD@texte}%
+ % }%
+ }%
+ }%
+}%
+% \end{macrocode}
+% Création de la commande affichant l'adresse de l'entité
+% \begin{macrocode}
+ \csdef{print#2address}{%
+ \yadsetup{##1}%
+ \ifthenelse{\equal{\cmdKV@YAD@address}{}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{address#2}}%
+ }{%
+ \YAD@reach@file{\cmdKV@YAD@address}%
+ }%
+ %
+ }%
+% \end{macrocode}
+% Création de la commande affichant le téléphone de l'entité
+% \begin{macrocode}
+ \csdef{print#2telephone}{%
+ \yadsetup{##1}%
+ \ifthenelse{\equal{\cmdKV@YAD@telephone}{}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{telephone#2}}%
+ }{%
+ \YAD@reach@file{\cmdKV@YAD@telephone}%
+ }%
+ %
+ }%
+% \end{macrocode}
+% Création de la commande affichant le fax de l'entité
+% \begin{macrocode}
+ \csdef{print#2fax}{%
+ \yadsetup{##1}%
+ \ifthenelse{\equal{\cmdKV@YAD@fax}{}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{fax#2}}%
+ }{%
+ \YAD@reach@file{\cmdKV@YAD@fax}%
+ }%
+ %
+ }%
+% \end{macrocode}
+% Création de la commande affichant le résultat de la commande
+% de type email
+% \begin{macrocode}
+\csdef{print#2email}{%
+ \YAD@reach@file{%
+ \ifthenelse{\equal{\cmdKV@YAD@email}{}}{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@generic@argument@translate{#2email}%
+ % }{%
+ \YAD@href{mailto:#2@institute.fr}{\YAD@generic@argument@translate{#2email}}%
+ % }%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@nolinkurl{\cmdKV@YAD@email}%
+ % }{%
+ \YAD@href{mailto:\cmdKV@YAD@email}{\YAD@nolinkurl{\cmdKV@YAD@email}}%
+ % }%
+ }%
+ }%
+}%
+% \end{macrocode}
+% Création de la commande affichant le logo de l'entité (sauf si "nologo" est demandé).
+% \begin{macrocode}
+\ifbool{YAD@nologo}{%
+ }{%
+ \csdef{print#2logo}{%
+% % \end{macrocode}
+% % Un avertissement est émis si le logo de l'école doctorale est fourni car
+% % celui-ci n'apparaîtra nulle part.
+% % \begin{macrocode}
+% \ifthenelse{\equal{#2}{doctoralschool}}{%
+% \YAD@ClassWarningNoLine{%
+% Le logo de l'ecole doctorale a ete fourni mais\MessageBreak%
+% il n'apparaitra nulle part. Le mieux est de le supprimer%
+% }%
+% }{%
+% }%
+ \@ifstar{%
+ \@tempswatrue%
+ \csuse{YAD@starnostar@print#2logo}%
+ }{%
+ \@tempswafalse%
+ \csuse{YAD@starnostar@print#2logo}%
+ }%
+ }%
+ \csdef{YAD@starnostar@print#2logo}{%
+ \yadsetup{url=,nologo=false,##1}%
+ \ifbool{YAD@nologo}{%
+ }{%
+ \ifbool{YAD@logo@before}{%
+ \hspace{\stretch{1}}%
+ }{%
+ }%
+ \renewcommand*\YAD@logo{%
+ \ifthenelse{\equal{\cmdKV@YAD@logo}{}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{logo#2}}%
+ }{%
+ \YAD@reach@file{%
+ \includegraphics[height=\cmdKV@YAD@logoheight]{\cmdKV@YAD@logo}%
+ }%
+ }%
+ }%
+ \if@tempswa%
+ \else%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@logo%
+ % }{%
+ \ifthenelse{\equal{\cmdKV@YAD@url}{}}{%
+ % \YAD@href{www.#2.fr}{
+ \YAD@logo%
+ % }%
+ }{%
+ \YAD@href{\cmdKV@YAD@url}{\YAD@logo}%
+ }%
+ % }%
+ \fi%
+ \setlength\cmdKV@YAD@logoheight{\YAD@default@logoheight}%
+ \boolfalse{YAD@nologo}
+ \booltrue{YAD@logo@before}%
+ }%
+ }%
+ }%
+ }%
+}{%
+}%
+% \end{macrocode}
+% Création d'une commande bilingue
+% \begin{macrocode}
+\ifthenelse{\equal{#1}{bilingue}}{%
+ \ifthenelse{\isnamedefined{#2}}{%
+ }{%
+ \csdef{#2}{}%
+ }%
+ \expandafter\renewcommand\expandafter{\csname #2\endcsname}[2][]{%
+% \end{macrocode}
+% Création des commandes pour les méta-données du PDF
+% \begin{macrocode}
+\ifthenelse{\isempty{##1}}{%
+ \csdef{YAD@meta#2}{%
+ ##2%
+ }%
+}{%
+ \csdef{YAD@meta#2}{%
+ ##2 (##1)%
+ }%
+}%
+\ifthenelse{\isempty{##2}}{%
+ \YAD@ClassError[no#2]{%
+ Argument obligatoire de \csuse{#2}\space vide%
+ }{%
+ L'argument obligatoire de la commande \csuse{#2}\MessageBreak%
+ est vide (celui-ci doit etre renseigne).%
+ }%
+}{%
+}%
+\ifthenelse{\equal{#2}{title}}{%
+ \YAD@hypersetup{pdftitle=\YAD@metatitle}%
+}{%
+}%
+\ifundef{\YAD@metasubject}{%
+ \ifundef{\YAD@metaacademicfield}{%
+ }{%
+ \YAD@hypersetup{pdfsubject=\YAD@metaacademicfield}%
+ }%
+}{%
+ \YAD@hypersetup{pdfsubject=\YAD@metasubject}%
+}%
+% \end{macrocode}
+% Création de la commande affichant le résultat de la commande bilingue
+% \begin{macrocode}
+\csdef{print#2}{%
+ \YAD@reach@file{%
+ \expandafter\IfLanguageName{\YAD@mainlanguage}{%
+% \end{macrocode}
+% En langue principale
+% \begin{macrocode}
+ \ifthenelse{\isempty{##2}}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{#2}}%
+ }{%
+ \YAD@reach@file{##2}%
+ }%
+ }{%
+% \end{macrocode}
+% En langue secondaire
+% \begin{macrocode}
+ \ifthenelse{\isempty{##1}}{%
+ \ifbool{YAD@two@titles}{%
+ \YAD@ClassError[no#2]{%
+ Argument optionnel de \csuse{#2}\space vide%
+ }{%
+ La commande \csuse{#2}\space a ete utilisee\MessageBreak%
+ mais avec un argument optionnel vide : celui-ci doit\MessageBreak%
+ etre soit non vide soit pas utilise%
+ }%
+ \YAD@reach@file{\YAD@generic@argument@translate{#2}}%
+ }{%
+ }%
+ }{%
+ \YAD@reach@file{##1}%
+ }%
+ }%
+ }%
+ }%
+ \ifthenelse{\isempty{##1}}{%
+ }{%
+ \ifthenelse{\equal{#2}{subject}}{%
+ }{%
+ \booltrue{YAD@two@titles}%
+ }%
+ }%
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+%
+% Définition des commandes des données de la thèse
+%
+% \begin{macrocode}
+\YAD@create@macro[entite]{pres}
+\YAD@create@macro[entite]{comue}
+\YAD@create@macro[entite]{institute}
+\YAD@create@macro[entite]{coinstitute}
+\YAD@create@macro[entite]{company}
+\YAD@create@macro[entite]{cocompany}
+\YAD@create@macro[entite]{doctoralschool}
+\YAD@create@macro[bilingue]{academicfield}
+\YAD@create@macro[bilingue]{speciality}
+\YAD@create@macro[bilingue]{title}
+\YAD@create@macro[bilingue]{subtitle}
+\YAD@create@macro[bilingue]{subject}
+\YAD@create@macro{disclaimer}
+% \end{macrocode}
+% Commande définissant le numéro d'ordre de la thèse, tel qu'exigé par certains
+% instituts.
+% \begin{macro}{\ordernumber}
+% \begin{macrocode}
+\newcommand{\ordernumber}{%
+ \@ifnextchar[{%
+ \YAD@ordernumber@with@argument%
+ }{%
+ \YAD@ordernumber@without@argument%
+ }%]
+}%
+\newcommand{\YAD@ordernumber@with@argument}[1][]{%
+ \csdef{printordernumber}{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@reach@file{%
+ \YAD@generic@argument@translate{ordernumber}%
+ }%
+ \YAD@ClassError{%
+ Argument optionnel de \protect\ordernumber\space vide%
+ }{%
+ La commande \protect\ordernumber\space a ete
+ utilisee\MessageBreak%
+ mais avec un argument optionnel vide : celui-ci doit\MessageBreak%
+ etre soit non vide soit pas utilise.%
+ }%
+ }{%
+ #1%
+ }%
+ }%
+}%
+\newcommand{\YAD@ordernumber@without@argument}{%
+ \csdef{printordernumber}{%
+ \hspace{2cm}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+% Commande définissant l'auteur.
+% \begin{macro}{\author}
+% \begin{macrocode}
+\renewcommand*{\author}[3][]{%
+ \ifthenelse{\isempty{#2}}{%
+ \newcommand*\YAD@firstname@author{%
+ \YAD@generic@argument@translate{firstname}%
+ }%
+ }{%
+ \newcommand*\YAD@firstname@author{%
+ #2%
+ }%
+ }%
+ \ifthenelse{\isempty{#3}}{%
+ \newcommand*\YAD@lastname@author{%
+ \YAD@generic@argument@translate{lastname}%
+ }%
+ }{%
+ \newcommand*\YAD@lastname@author{%
+ #3%
+ }%
+ }%
+ \YAD@error@firstlastnames@empty{de l'auteur de la these}{#2}{#3}{\author}%
+ \YAD@hypersetup{pdfauthor=\YAD@firstname@author{} \YAD@lastname@author}%
+ \newcommand*\YAD@email@author{%
+ #1%
+ }%
+ \ifthenelse{\isempty{#2}\AND\isempty{#3}}{%
+ \newcommand*{\printauthor}{%
+ \ifdraft{%
+ \YAD@reach@file{%
+ \YAD@generic@argument@translate{firstname}
+ \YAD@generic@argument@translate{lastname}%
+ }%
+ }{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@generic@argument@translate{firstname}
+ \YAD@generic@argument@translate{lastname}%
+ }{%
+ \YAD@href{mailto:\YAD@email@author}{%
+ \YAD@generic@argument@translate{firstname}
+ \YAD@generic@argument@translate{lastname}%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \newcommand*{\printauthor}{%
+ \ifdraft{%
+ \YAD@reach@file{\YAD@firstname@author{} \bsc{\YAD@lastname@author}}%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@firstname@author{} \bsc{\YAD@lastname@author}%
+ % }{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@firstname@author{} \bsc{\YAD@lastname@author}%
+ }{%
+ \YAD@href{mailto:\YAD@email@author}{\YAD@firstname@author{} \bsc{\YAD@lastname@author}}%
+ }%
+ % }%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\csdef{YAD@checkdate}#1#2#3#4#5{%
+ \boolfalse{YAD@valid@day}%
+ \boolfalse{YAD@valid@month}%
+ \boolfalse{YAD@valid@year}%
+ %
+ \csxdef{YAD@daydate}{#1}%
+ \csxdef{YAD@monthdate}{#2}%
+ \csxdef{YAD@yeardate}{#3}%
+ % \ifboolexpr{%
+ % bool {YAD@submitted@work}%
+ % or bool {YAD@submitted@work@star}%
+ % }{%
+ % }{%
+ \ifboolexpr{%
+ not (test {\IfInteger{\YAD@daydate}})%
+ }{%
+ \YAD@ClassError[nodate]{%
+ Jour de la date de #5 non valide%
+ }{%
+ La commande \string#4{\YAD@daydate}{\YAD@monthdate}{\YAD@yeardate}\space\MessageBreak%
+ n'a pas ete correctement saisie car le\MessageBreak%
+ jour (`\YAD@daydate') n'est pas valide :\MessageBreak%
+ ce doit etre un nombre entier entre 1 et 31.%
+ }%
+ }{%
+ \IfDecimal{\YAD@daydate}{%
+ \csxdef{YAD@daydate}{\number\integerpart}%
+ }{%
+ }%
+ \ifboolexpr{%
+ test {\ifnumless{\YAD@daydate}{1}}%
+ or test {\ifnumgreater{\YAD@daydate}{31}}%
+ }{%
+ \YAD@ClassError[nodate]{%
+ Jour de la date de #5 non valide%
+ }{%
+ La commande \string#4{\YAD@daydate}{\YAD@monthdate}{\YAD@yeardate}\space\MessageBreak%
+ n'a pas ete correctement saisie car le\MessageBreak%
+ numero de jour (`\YAD@daydate') n'est pas valide :\MessageBreak%
+ ce doit etre un nombre entier entre 1 et 31.%
+ }%
+ }{%
+ \global\booltrue{YAD@valid@day}%
+ }%
+ }%
+ % month
+ \ifboolexpr{%
+ not (test {\IfInteger{\YAD@monthdate}})%
+ }{%
+ \YAD@ClassError[nodate]{%
+ Mois de la date de #5 non valide%
+ }{%
+ La commande \string#4{\YAD@daydate}{\YAD@monthdate}{\YAD@yeardate}\space\MessageBreak%
+ n'a pas ete correctement saisie car le\MessageBreak%
+ mois (`\YAD@monthdate') n'est pas valide :\MessageBreak%
+ ce doit etre un nombre entier entre\MessageBreak%
+ 1 (janvier) et 12 (decembre).%
+ }%
+ }{%
+ \IfDecimal{\YAD@monthdate}{%
+ \csxdef{YAD@monthdate}{\number\integerpart}%
+ }{%
+ }%
+ \ifboolexpr{%
+ test {\ifnumless{\YAD@monthdate}{1}}%
+ or test {\ifnumgreater{\YAD@monthdate}{12}}%
+ }{%
+ \YAD@ClassError[nodate]{%
+ Mois de la date de #5 non valide%
+ }{%
+ La commande \string#4{\YAD@daydate}{\YAD@monthdate}{\YAD@yeardate}\space\MessageBreak%
+ n'a pas ete correctement saisie car le\MessageBreak%
+ numero de mois (`\YAD@monthdate') n'est pas valide :\MessageBreak%
+ ce doit etre un nombre entier entre\MessageBreak%
+ 1 (janvier) et 12 (decembre).%
+ }%
+ }{%
+ \global\booltrue{YAD@valid@month}%
+ }%
+ }%
+ % year
+ \ifboolexpr{%
+ not (test {\IfInteger{\YAD@yeardate}})%
+ }{%
+ \YAD@ClassError[nodate]{%
+ Annee de la date de #5 non valide%
+ }{%
+ La commande \string#4{\YAD@daydate}{\YAD@monthdate}{\YAD@yeardate}\space\MessageBreak%
+ n'a pas ete correctement saisie car l'annee\MessageBreak%
+ (`\YAD@yeardate') n'est pas valide : ce doit etre\MessageBreak%
+ un nombre entier.%
+ }%
+ }{%
+ \global\booltrue{YAD@valid@year}%
+ }%
+ % }%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\date}
+% \begin{macrocode}
+\csdef{date}#1#2#3{%
+ \YAD@checkdate{#1}{#2}{#3}{\date}{soutenance}%
+ \ifboolexpr{%
+ bool {YAD@valid@day}%
+ and bool {YAD@valid@month}%
+ and bool {YAD@valid@year}%
+ }{%
+ \csdef{printdate}{%
+ \formatdate{#1}{#2}{#3}%
+ }%
+ }{%
+ \csdef{printdate}{%
+ \YAD@generic@argument@translate{date}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\submissiondate}
+% \begin{macrocode}
+\csdef{submissiondate}#1#2#3{%
+ \YAD@checkdate{#1}{#2}{#3}{\submissiondate}{soumission}%
+ \ifboolexpr{%
+ bool {YAD@valid@day}%
+ and bool {YAD@valid@month}%
+ and bool {YAD@valid@year}%
+ }{%
+ \csdef{printsubmissiondate}{%
+ \formatdate{#1}{#2}{#3}%
+ }%
+ }{%
+ \csdef{printsubmissiondate}{%
+ \YAD@generic@argument@translate{submissiondate}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\AtEndDocument{%
+ \YAD@ifemptyorundef{\printdate}{%
+ \ifbool{YAD@nodate}{%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@submitted@work}%
+ or bool {YAD@submitted@work@star}%
+ }{%
+ }{%
+ \YAD@ClassError[nodate]{%
+ Date de soutenance non specifiee%
+ }{%
+ La commande \protect\date\space n'a pas ete utilisee\MessageBreak%
+ (celle-ci est requise).%
+ }%
+ }%
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\dedication}
+% \begin{macrocode}
+\newcommand{\dedication}[1]{%
+ \DTLnewrow{dedications}%
+ \DTLnewdbentry{dedications}{dedication}{#1}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\frontepigraph}
+% \begin{macrocode}
+\newcommand{\frontepigraph}[3][\YAD@mainlanguage]{%
+ \DTLnewrow{frontepigraphs}%
+ \DTLnewdbentry{frontepigraphs}{epigraphlanguage}{#1}%
+ \DTLnewdbentry{frontepigraphs}{epigraph}{#2}%
+ \DTLnewdbentry{frontepigraphs}{epigraphauthor}{#3}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Réglage nécessaire sans quoi le titre courant de la nomenclature (si
+% le \Package{nomencl} est chargé) n'apparaît pas
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{nomencl}{%
+ \let\YAD@ORI@printnomenclature\printnomenclature%
+ \renewcommand{\printnomenclature}{%
+ \cleardoublepage%
+ \sethead[\thepage][][\nomname]{\nomname}{}{\thepage}\headrule%
+ \YAD@ORI@printnomenclature%
+ \pagestyle{preliminary}%
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\YAD@setfoot}
+% Définition d'une commande affichant un texte fixe en bas de page en cas de
+% version "inprogess(*)" ou "submitted*" de la thèse.
+% \begin{macrocode}
+\ifboolexpr{%
+ bool {YAD@inprogress@work}%
+ or bool {YAD@inprogress@work@star}%
+}{%
+ \newcommand*{\YAD@setfoot}{%
+ \footrule%
+ \setfoot{}{\textsc{\translate{lbl-inprogressfoottext} \today}}{}%
+ }%
+}{%
+ \ifbool{YAD@submitted@work@star}{%
+ \newcommand*{\YAD@setfoot}{%
+ \footrule%
+ \YAD@ifemptyorundef{\printsubmissiondate}{%
+ \setfoot{}{\textsc{\translate{lbl-submittedfoottext} \today}}{}%
+ }{%
+ \setfoot{}{\textsc{\translate{lbl-submittedfoottext} \printsubmissiondate}}{}%
+ }%
+ }%
+ }{%
+ \newcommand*{\YAD@setfoot}{}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pagestyle}
+% Redéfinition permettant d'éviter de devoir ajouter
+% \lstinline|\cleardoublepage| avant chaque la commande
+% \lstinline|\pagestyle| fournie par le package \package{titleps}
+% (cet ajout est pour l'instant nécessaire pour que les entêtes
+% aux frontières des chapitres non numérotés ne soient pas
+% erronés).
+% \begin{macrocode}
+\xpretocmd{\pagestyle}{\cleardoublepage}{}{}%
+% \xapptocmd{\pagestyle}{\YAD@setfoot}{}{}%
+% \end{macrocode}
+% \end{macro}
+%
+% Redéfinition de la commande "\tableofcontents" de sorte qu'elle admette un
+% argument optionnel permettant d'afficher une table des matières supplémentaire
+% jusqu'à un niveau donné. Cette commande, qui s'appuie sur le \Package{etoc},
+% est exprimée en les même termes que le \Package{tocvsec2} (désormais non
+% chargé). On lui applique le style de page propre à la partie liminaire du
+% document, notamment début de la prise en compte des chapitres et sections
+% (numérotés ou pas) dans la table des matières.
+%
+% \begin{macro}{\tableofcontents}
+% \begin{macrocode}
+ \AfterEndPreamble{%
+ \let\YAD@ORI@tableofcontents\tableofcontents%
+ \let\YAD@ORI@localtableofcontents\localtableofcontents%
+ \renewcommand{\tableofcontents}{%
+ \pagestyle{preliminary}%
+ \booltrue{YAD@tableofcontents@used}%
+ \cleardoublepage%
+ \YAD@phantomsection%
+ % \renewcommand{\contentsname}{\cmdKV@YAD@name}
+ \@ifnextchar[{\tableofcontents@YAD@with@argument}{\tableofcontents@YAD@without@argument}%]
+ }%
+ \newcommand\tableofcontents@YAD@without@argument{%
+ \YAD@globalstyle
+ \YAD@computenumwidths\relax%
+ \etoctableofcontents%
+ \etocsetnexttocdepth{\YAD@tocdepth}%
+ \let\cmdKV@YAD@depth\YAD@tocdepth%
+ \let\cmdKV@YAD@name\contentsname%
+ \YAD@localstyle % pour les local TOCs qui suivent
+ }%
+ \newcommand\tableofcontents@YAD@with@argument[1][]{%
+ \yadsetup{#1}%
+ \@ifundefined {Etoc@\cmdKV@YAD@depth @@}
+ {%
+ \YAD@ClassWarningNoLine{%
+ La valeur (`\cmdKV@YAD@depth') passee a la cle `depth'\MessageBreak%
+ en argument de la commande \string\tableofcontents\space n'est pas\MessageBreak%
+ un des niveaux de sectionnement connus :\MessageBreak%
+ `part', `chapter', `section', `subsection',\MessageBreak%
+ `subsubsection', `paragraph', `subparagraph', `none' et `all'.\MessageBreak%
+ Le niveau `\YAD@tocdepth' va etre utilise a la place%
+ }%
+ \let\cmdKV@YAD@depth\YAD@tocdepth
+ }{%
+ }%
+ \YAD@globalstyle
+ \etocsetnexttocdepth{\cmdKV@YAD@depth}%
+ \YAD@computenumwidths\relax% note: a effet global
+ \etocsetnexttocdepth{\cmdKV@YAD@depth}% on doit le répéter, car c'est un truc à un coup seulement
+ \etoctableofcontents%
+ \etocsettocdepth{\YAD@tocdepth}%
+ \let\cmdKV@YAD@depth\YAD@tocdepth%
+ \let\cmdKV@YAD@name\contentsname%
+ \YAD@localstyle % pour les local TOCs qui suivent
+ }%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% On crée la macro "\YAD@setsecnumdepth", analogue à "\@setseccntt@c" du \Package{tocvsec2}, qui fixe
+% la valeur du compteur "secnumdepth" selon l'argument donné sous la forme du
+% nom d'une commande de sectionnement
+% \begin{macrocode}
+ \newcommand{\YAD@setsecnumdepth}[1]{%
+ \newif\if@YAD@knownsect%
+ \ifthenelse{\equal{#1}{none}}{%
+ \setcounter{secnumdepth}{-10}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{part}}{%
+ \setcounter{secnumdepth}{-1}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{chapter}}{%
+ \setcounter{secnumdepth}{0}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{section}}{%
+ \setcounter{secnumdepth}{1}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{subsection}}{%
+ \setcounter{secnumdepth}{2}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{subsubsection}}{%
+ \setcounter{secnumdepth}{3}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{paragraph}}{%
+ \setcounter{secnumdepth}{4}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{subparagraph}}{%
+ \setcounter{secnumdepth}{5}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \ifthenelse{\equal{#1}{all}}{%
+ \setcounter{secnumdepth}{100}%
+ \@YAD@knownsecttrue%
+ }{%
+ }%
+ \if@YAD@knownsect%
+ \else%
+ \setcounter{secnumdepth}{3}%
+ \YAD@ClassWarningNoLine{%
+ La valeur (`\YAD@secnumdepth') passee a la cle `secnumdepth'\MessageBreak%
+ en argument de la commande \string\documentclass\space n'est
+ pas\MessageBreak%
+ un des niveaux de sectionnement connus (`part', `chapter',\MessageBreak%
+ `section', `subsection', `subsubsection', `paragraph',\MessageBreak%
+ `subparagraph', `none' et `all').\MessageBreak%
+ Le niveau `subsection' va etre utilise\MessageBreak%
+ a la place%
+ }%
+ \fi%
+ }
+% \end{macrocode}
+%
+% Globalement dans le document, la table des matières et la
+% numérotation des paragraphes vont jusqu'aux sous-sections
+% \begin{macrocode}
+ \etocsettocdepth{\YAD@tocdepth}%
+ \AtBeginDocument{%
+ % \yadsetup{#1}%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ }
+ % \renewcommand{\setcounter}[2]{}%
+ %
+% \end{macrocode}
+%
+% Définition des styles de pages (basées sur le \Package{titleps})
+%
+% \begin{macro}{\YAD@chapter@header}
+% Définition de titres courants
+% \begin{macrocode}
+\newcommand*{\YAD@chapter@header}{%
+ \ifboolexpr{
+ (test {\ifnumcomp{\value{secnumdepth}}{>}{-1}} or (not bool
+ {YAD@nonnumbered@chapter})) and test {\ifnumcomp{\value{chapter}}{>}{0}}
+ }{%
+ \MakeUppercase\chaptername{}\ \thechapter.
+ }{%
+ }%
+ \chaptertitle%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@section@header}
+% \begin{macrocode}
+\newcommand*{\YAD@section@header}{%
+ \ifboolexpr{
+ (test {\ifnumcomp{\value{secnumdepth}}{>}{0}} or (not bool
+ {YAD@nonnumbered@section})) and test {\ifnumcomp{\value{chapter}}{>}{0}}
+ }{%
+ \thesection.
+ }{%
+ }%
+ \sectiontitle%
+}%
+% \end{macrocode}
+% \end{macro}
+% Par défaut, au début du document rien n'est numéroté et les chapitres ne
+% débutent pas par des tables des matières locales.
+% \begin{macrocode}
+ \AtBeginDocument{%
+ \setcounter{secnumdepth}{-10}%
+ \frontmatter%
+ \boolfalse{YAD@localtocs}%
+ }%
+% \end{macrocode}
+% Définition du style de page des titres
+% \begin{macrocode}
+\newpagestyle{titles}[]{%
+% \end{macrocode}
+% Au début du document, donc à partir de sa ou ses pages de titre,
+% aucun élément de structuration n'est numéroté ni ne figure dans la
+% table des matières
+% \begin{macrocode}
+ % \settocdepth{none}%
+ \setcounter{secnumdepth}{-10}%
+ \ifdraft{%
+ \newgeometry{centering,nomarginpar,bottom=1cm,top=1cm,headheight=\YAD@max@logoheight,margin=0.5cm,tmargin=\YAD@max@logoheight+1cm}%
+ }{%
+ \newgeometry{centering,nomarginpar,bottom=1cm,top=1cm,headheight=\YAD@max@logoheight,hmargin=2cm,includeall}%
+ }%
+ \sethead[]%
+ []%
+ []%
+ {%
+ \ifdef{\printpreslogo}{%
+ \printpreslogo%
+ }{%
+ }%
+ \ifdef{\printcomuelogo}{%
+ \printcomuelogo%
+ }{%
+ }%
+ \ifdef{\printinstitutelogo}{%
+ \printinstitutelogo%
+ }{%
+ }%
+ \ifdef{\printcoinstitutelogo}{%
+ \printcoinstitutelogo%
+ }{%
+ }%
+ \ifdef{\printcompanylogo}{%
+ \printcompanylogo%
+ }{%
+ }%
+ }%
+ {}%
+ {}%
+ \setfootrule{0pt}%
+ \setfoot{}{}{}%
+}%
+% \end{macrocode}
+%
+% Définition du style de page de la partie pré-préliminaire:
+% géométrie restaurée mais toujours pas de titres courants
+% \begin{macrocode}
+\newpagestyle{prepreliminary}[]{%
+% \end{macrocode}
+% Dans la partie pré-préliminaire, aucun élément de structuration n'est
+% numéroté, les titres courants sont absents et la profondeur de la table des
+% matières est fixée à son niveau par défaut (sous-sections)
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie préliminaire: début
+% de l'insertion des titres courants
+% \begin{macrocode}
+\newpagestyle{preliminary}[]{%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {%
+ \ifthenelse{%
+ \equal{\sectiontitle}{}%
+ }{%
+ \YAD@chapter@header%
+ }{%
+ \YAD@section@header%
+ }%
+ }%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie préliminaire, aucun élément de structuration n'est
+% numéroté et la profondeur de la table des matières est fixée à son
+% niveau par défaut (sous-sections)
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie liminaire
+% \begin{macrocode}
+\newpagestyle{ordinary}[]{%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {%
+ \ifthenelse{%
+ \equal{\sectiontitle}{}%
+ }{%
+ \YAD@chapter@header%
+ }{%
+ \YAD@section@header%
+ }%
+ }%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie liminaire, aucun élément de structuration n'est
+% numéroté et la profondeur de la table des matières est fixée à son
+% niveau par défaut (sous-sections)
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie principale
+% \begin{macrocode}
+\newpagestyle{mainmatter}[]{%
+ \ifthenelse{\equal{\YAD@interligne}{single}}{%
+ \singlespacing%
+ }{%
+ \ifthenelse{\equal{\YAD@interligne}{double}}{%
+ \doublespacing%
+ }{%
+ \onehalfspacing%
+ }%
+ }%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {%
+ \ifthenelse{%
+ \equal{\sectiontitle}{}%
+ }{%
+ \YAD@chapter@header%
+ }{%
+ \YAD@section@header%
+ }%
+ }%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie principale, la profondeur de la table des matières
+% est fixée à son niveau par défaut (sous-sections).
+% \begin{macrocode}
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Extension de la commande "\mainmatter" de sorte qu'elle applique le style de
+% page "mainmatter" et que les chapitres qui s'y trouvent débutent
+% automatiquement par des tables des matières locales.
+% \begin{macrocode}
+\xapptocmd{\mainmatter}{%
+ \booltrue{YAD@mainmatter@used}%
+ \ifbool{YAD@localtocs@classoption}%
+ {%
+ \booltrue{YAD@localtocs}%
+ }{%
+ }
+ \pagestyle{mainmatter}%
+}{}{}%
+% \end{macrocode}
+% Vérification, en fin de document, de l'usage de la commande "\mainmatter" et
+% émission d'une erreur si ça n'est pas le cas.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifboolexpr{%
+ bool {YAD@mainmatter@used}%
+ }{%
+ }{%
+ \YAD@ClassError*{%
+ Commande \protect\mainmatter\space non utilisee%
+ }{%
+ La commande \protect\mainmatter\space introduisant la partie principale
+ du document\MessageBreak%
+ n'a pas ete utilisee. Celle-ci est requise.%
+ }%
+ }%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie annexe
+% \begin{macrocode}
+\newpagestyle{appendix}[]{%
+ \singlespacing%
+ \sethead[\thepage]%
+ []%
+ [%
+ \ifthenelse{%
+ \value{secnumdepth}>-1
+ \and
+ \value{chapter}>0
+ }{%
+ \MakeUppercase\appendixname{} \thechapter.\
+ }{%
+ }
+ \chaptertitle%
+ ]%
+ {%
+ \ifthenelse{%
+ \equal{\sectiontitle}{}%
+ }{%
+ \ifthenelse{%
+ \value{secnumdepth}>-1
+ \and
+ \value{chapter}>0
+ }{%
+ \MakeUppercase\appendixname{} \thechapter.\
+ }{%
+ }
+ \chaptertitle%
+ }{%
+ \YAD@section@header%
+ }%
+ }%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie annexe, la numérotation des paragraphes est fixée à
+% son niveau par défaut (sous-sections)
+% \begin{macrocode}
+ \YAD@phantomsection%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ \YAD@bookmarksetup{startatroot}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Extension de la commande "\appendix" de sorte qu'elle applique le style de
+% page "appendix".
+% \begin{macro}{\appendix}
+% \begin{macrocode}
+\xapptocmd{\appendix}{%
+ \pagestyle{appendix}%
+}{}{}%
+% \end{macrocode}
+% \end{macro}
+% Définition du style de page de la partie biblio
+% \begin{macrocode}
+\newpagestyle{biblio}[]{%
+% \end{macrocode}
+% Dans la partie biblio, aucun élément de structuration n'est
+% numéroté
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+% \end{macrocode}
+% \begin{macrocode}
+ \singlespacing%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {\YAD@chapter@header}%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% On demande que la bibliographie apparaisse au plus haut niveau des
+% signets
+% \begin{macrocode}
+ \cleardoublepage%
+ \YAD@phantomsection%
+ \YAD@bookmarksetup{startatroot}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie finale
+% \begin{macrocode}
+\newpagestyle{backmatter}[]{%
+ \singlespacing%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {%
+ \ifthenelse{%
+ \equal{\sectiontitle}{}%
+ }{%
+ \YAD@chapter@header%
+ }{%
+ \YAD@section@header%
+ }%
+ }%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie finale, rien n'est numéroté
+% \begin{macrocode}
+ \YAD@phantomsection%
+ \setcounter{secnumdepth}{-10}%
+ \YAD@bookmarksetup{startatroot}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Extension de la commande "\backmatter" de sorte qu'elle applique le style de
+% page "backmatter" et que les chapitres qui s'y trouvent ne débutent pas par
+% des tables des matières locales.
+% \begin{macro}{\backmatter}
+% \begin{macrocode}
+\xapptocmd{\backmatter}{%
+ \pagestyle{backmatter}%
+ \boolfalse{YAD@localtocs}%
+}{}{}%
+% \end{macrocode}
+% \end{macro}
+% Définition du style de page de la table des matières
+% \begin{macrocode}
+\newpagestyle{contents}[]{%
+ \cleardoublepage%
+ \YAD@phantomsection%
+ \YAD@bookmarksetup{startatroot}%
+ \singlespacing%
+ \sethead[\thepage]%
+ []%
+ [\cmdKV@YAD@name]%
+ {\cmdKV@YAD@name}%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie glossaire, aucun élément de structuration n'est
+% numéroté
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie glossaire
+% \begin{macrocode}
+\newpagestyle{glossaire}[]{%
+ \cleardoublepage%
+ \YAD@phantomsection%
+ \YAD@bookmarksetup{startatroot}%
+ \singlespacing%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {\YAD@chapter@header}%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie glossaire, aucun élément de structuration n'est
+% numéroté
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie index
+% \begin{macrocode}
+\newpagestyle{index}[]{%
+ \singlespacing%
+ \sethead[\thepage]%
+ []%
+ [\YAD@chapter@header]%
+ {\YAD@chapter@header}%
+ {}%
+ {\thepage}%
+ \headrule%
+% \end{macrocode}
+% Dans la partie index, aucun élément de structuration n'est
+% numéroté
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+ \cleardoublepage%
+ \YAD@phantomsection%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ \YAD@bookmarksetup{startatroot}%
+ \YAD@setfoot%
+}%
+% \end{macrocode}
+% Définition du style de page de la partie \textquote{4\ieme{} de
+% couverture} (\emph{blub} en anglais).
+% \begin{macrocode}
+\newpagestyle{backcover}[]{%
+ \singlespacing%
+ \YAD@clearspread%
+ \setlength{\footskip}{35pt}%
+ \setfootrule{0pt}%
+ \setfoot[%
+ \YAD@laboratory@abstract@page%
+ ][][]{}{}{}%
+ \sethead[]%
+ []%
+ []%
+ {}%
+ {}%
+ {}%
+% \end{macrocode}
+% Dans la partie \textquote{4\ieme{} de couverture}, aucun élément
+% de structuration n'est numéroté
+% \begin{macrocode}
+ \setcounter{secnumdepth}{-10}%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\printlaboratory}
+% \begin{macrocode}
+\newcommand*{\printlaboratory}[2][]{%
+ \YAD@ifemptyorundef{#2}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{laboratory}}%
+ \ifbool{YAD@nolaboratory}{%
+ }{%
+ \YAD@ClassError[nolaboratory]{%
+ Nom du laboratoire de la these non specifie ou vide%
+ }{%
+ La commande \protect\laboratory\space n'a pas ete utilisee\MessageBreak%
+ (celle-ci est requise) ou son 1er argument est vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }%
+ }{%
+ \ifdraft{%
+ \YAD@reach@file{%
+ #2%
+ }%
+ }{%
+ \ifboolexpr{%
+ test {\expandafter\ifstrempty\expandafter{#1}}
+ or %
+ test {\ifdefstring{\YAD@laboratory@nonamelink}{true}}%
+ }{%
+ #2%
+ }{%
+ \YAD@href{#1}{#2}%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\printlaboratoryaddress}
+% \begin{macrocode}
+\newcommand*{\printlaboratoryaddress}[1]{%
+ \ifundef{#1}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{laboratoryaddress}}%
+ \ifbool{YAD@nolaboratoryaddress}{%
+ }{%
+ \YAD@ClassError[nolaboratoryaddress]{%
+ Adresse du laboratoire non specifiee ou vide%
+ }{%
+ La commande \protect\laboratory\space n'a pas ete utilisee\MessageBreak%
+ (celle-ci est requise) ou son 2e argument est vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }%
+ }{%
+ \YAD@reach@file{#1}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% Commande de la page de titre
+% \begin{macrocode}
+\renewcommand{\maketitle}[1][]{%
+ \booltrue{YAD@maketitle@used}%
+ \yadsetup{#1}
+ \setlength{\fboxsep}{10pt}%
+ \setlength{\YAD@titleboxwidth}{\linewidth-2\fboxsep-2\fboxrule}%
+ \renewcommand*{\do}[1]{%
+% \end{macrocode}
+% Appel du style de page propre au(x) titre(s)
+% \begin{macrocode}
+ \pagestyle{titles}%
+% \end{macrocode}
+% On passe dans la langue choisie en option (en français si rien n'est
+% spécifié).
+% \begin{macrocode}
+\begingroup%
+\expandafter\selectlanguage\expandafter{##1}%
+% \YAD@ifemptyorundef{\YAD@frametitle@set}{%
+% \gdef\YAD@frametitle{\cmdKV@YAD@frametitle}%
+% }{%
+% \gdef\YAD@frametitle{\YAD@frametitle@set}%
+% }%
+ \begin{lrbox}{\YAD@titlebox}
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
+ }{%
+ \tcbset{colback=white,boxsep=3pt,boxrule=0.4pt,arc=0mm}%
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{shadowbox}}{%
+ \tcbset{enhanced,drop shadow southeast={black,opacity=1}}%
+ }{%
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{ovalbox}}{%
+ \tcbset{arc=3mm}%
+ }{%
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{fbox}}{%
+ }{%
+ \tcbset{code={\expandafter\pgfkeysalsofrom{\cmdKV@YAD@frametitle}}}%
+ }%
+ }%
+ }%
+ \begin{tcolorbox}
+ }%
+ \noindent%
+ \begin{minipage}{\linewidth-2\fboxsep-2\fboxrule}
+ \onehalfspacing%
+ \noindent%
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
+ }{%
+ \ifYAD@hdr
+ \YAD@translation{thesistitle-hdr}%
+ \else%
+ \YAD@translation{thesistitle}%
+ \fi
+ }%
+ \par%
+ \centering%
+ \Huge\bfseries%
+ \YAD@ifemptyorundef{\printtitle}{%
+ \YAD@generic@argument@translate{title}%
+ \ifbool{YAD@notitle}{%
+ }{%
+ \YAD@ClassError[notitle]{%
+ Titre de la these non specifie%
+ }{%
+ La commande \protect\title\space n'a pas ete utilisee\MessageBreak%
+ (celle-ci est requise) ou son argument obligatoire est vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }%
+ }{%
+ \printtitle%
+ }%
+ \ifundef{\printsubtitle}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{.15}}}%
+ % \vspace*{\stretch{.15}}%
+ \par%
+ \centering%
+ \Large\printsubtitle%
+ }%
+ \end{minipage}%
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
+ }{%
+ \end{tcolorbox}%
+ }%
+ \end{lrbox}%
+ \settototalheight{\YAD@titleboxheight}{\YAD@titlebox}%
+ \setlength{\YAD@otherboxheight}{0.3\paperheight-\YAD@titleboxheight}%
+% \end{macrocode}
+% On met en page les divers éléments des titres.
+% \begin{macrocode}
+ %\YAD@astuce@expressioncle%
+ \noindent%
+ \ifcsdef{printordernumber}{%
+% \end{macrocode}
+% S'il est demandé, le numéro d'ordre de la thèse n'est affiché que sur la
+% 1\iere{} page du document : 1\iere{} de couverture s'il y a, page de titre en
+% langue principale sinon.
+% \begin{macrocode}
+ \newcommand\YAD@printedordernumber{%
+ \itshape%
+ \sffamily%
+ \YAD@translation{ordernumber}%
+ \IfLanguageName{french}{%
+ \FBcolonspace%
+ }{%
+ }: \printordernumber%
+ }
+ \ifdraft{}{\vspace*{\stretch{1}}}%
+ \ifboolexpr{%
+ bool {YAD@cover@page}%
+ or (bool {YAD@nofrontcover} and test {\IfLanguageName{\YAD@mainlanguage}})%
+ }{%
+ % \vspace*{\stretch{1}}%
+ \raggedleft{%
+ \YAD@printedordernumber%
+ }%
+ }{%
+ }%
+ \ifdraft{}{\vspace*{\stretch{.5}}}%
+ % \vspace*{\stretch{.5}}%
+ \par%
+}{%
+}%
+ % \begin{minipage}[c][\YAD@otherboxheight][c]{\YAD@titleboxwidth}
+ % \ifdraft{}{\vspace*{\stretch{.25}}}%
+ \begin{center}
+ \ifbool{YAD@noinstitute}{%
+ }{%
+ \YAD@ifemptyorundef{\printinstitute}{%
+ \YAD@generic@argument@translate{institute}%
+ \YAD@ClassError[noinstitute]{%
+ Institut de la these non specifie%
+ }{%
+ La commande \protect\institute\space n'a pas ete
+ utilisee\MessageBreak%
+ (celle-ci est requise) ou son argument obligatoire est
+ vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ \YAD@translation{institute} \textbf{\textsc{\Large\printinstitute}}%
+ }%
+ \ifundef{\printcoinstitute}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{.5}}}%
+ % \vspace*{\stretch{.5}}%
+ \par%
+ \YAD@translation{coinstitute} \textbf{\textsc{\Large\printcoinstitute}}%
+ }%
+ }%
+ \ifundef{\printcompany}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{.5}}}%
+ % \vspace*{\stretch{.5}}%
+ \par%
+ \YAD@translation{company} \textbf{\textsc{\Large\printcompany}}%
+ }%
+ \ifbool{YAD@nodoctoralschool}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{1.5}}}%
+ % \vspace*{\stretch{1.5}}%
+ \par%
+ \YAD@translation{doctoralschool}
+ \YAD@ifemptyorundef{\printdoctoralschool}{%
+ \YAD@generic@argument@translate{doctoralschool}%
+ \YAD@ClassError[nodoctoralschool]{%
+ Ecole doctorale de la these non specifiee%
+ }{%
+ la commande \protect\doctoralschool\space n'a pas ete
+ utilisee\MessageBreak%
+ (celle-ci est requise) ou son argument obligatoire est
+ vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ \textbf{\printdoctoralschool}%
+ }%
+ }%
+ \ifbool{YAD@nolaboratory}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{.5}}}%
+ % \vspace*{\stretch{.5}}%
+ \par%
+ \YAD@translation{universitydepartment}
+ \ifdefstring{\YAD@main@laboratory@nonamelink}{true}{%
+ \textbf{\printlaboratory{\YAD@main@laboratory@name}}%
+ }{%
+ \textbf{\printlaboratory[\YAD@main@laboratory@url]{\YAD@main@laboratory@name}}%
+ }%
+ }%
+ \ifdraft{}{\vspace*{\stretch{1.5}}}%
+ % \vspace*{\stretch{1.5}}%
+ \par%
+ {\large%
+ \ifYAD@hdr%
+ \YAD@translation{thesisdefendedby-hdr} %
+ \else%
+ \YAD@translation{thesisdefendedby} %
+ \fi%
+ \YAD@ifemptyorundef{\printauthor}{%
+ \YAD@generic@argument@translate{author}%
+ \ifbool{YAD@noauthor}{%
+ }{%
+ \YAD@ClassError[noauthor]{%
+ Auteur de la these non specifie%
+ }{%
+ La commande \protect\author\space n'a pas ete utilisee (celle-ci
+ est requise)\MessageBreak%
+ ou ses 2 premiers arguments obligatoires sont vides\MessageBreak%
+ (ceux-ci doivent etre renseignes).%
+ }%
+ }%
+ }{%
+ \textbf{\printauthor}%
+ }%
+ \ifboolexpr{%
+ bool {YAD@submitted@work}%
+ or bool {YAD@submitted@work@star}%
+ }{%
+ % \ifdraft{}{\vspace*{\stretch{1}}}%
+ % \par%
+ % \YAD@translation{estimateddefensedate}
+ % \YAD@ifemptyorundef{\printdate}{%
+ % \YAD@generic@argument@translate{date}%
+ % }{%
+ % \textbf{\printdate}%
+ % }%
+ }{%
+ \ifbool{YAD@nodate}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{1}}}%
+ % \vspace*{\stretch{1}}%
+ \par%
+ \YAD@translation{defendedon}
+ \YAD@ifemptyorundef{\printdate}{%
+ \YAD@generic@argument@translate{date}%
+ }{%
+ \textbf{\printdate}%
+ }%
+ }%
+ }%
+ }%
+ \ifYAD@hdr%
+ \else%
+ \ifbool{YAD@noaim}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{1}}}%
+ % \vspace*{\stretch{1}}%
+ \par%
+ \YAD@translation{aim}%
+ \ifundef{\printinstitute}{%
+ \YAD@generic@argument@translate{institute}%
+ }{%
+ \printinstitute*%
+ }%
+ \ifundef{\printcoinstitute}{%
+ }{%
+ \YAD@translation{aimand}%
+ \printcoinstitute*%
+ }%
+ }%
+ \fi%
+ \ifdraft{}{\vspace*{\stretch{1}}}%
+ % \vspace*{\stretch{1}}%
+ \ifbool{YAD@noacademicfield}{%
+ }{%
+ \par%
+ \large%
+ \YAD@translation{academicfield}
+ %
+ \YAD@ifemptyorundef{\printacademicfield}{%
+ \YAD@generic@argument@translate{academicfield}%
+ \ifbool{YAD@noacademicfield}{%
+ }{%
+ \YAD@ClassError[noacademicfield]{%
+ Champ disciplinaire de la these non specifie%
+ }{%
+ La commande \protect\academicfield\space n'a pas ete utilisee
+ (celle-ci est requise)\MessageBreak%
+ ou son argument obligatoire est vide (celui-ci doit etre renseigne).%
+ }%
+ }%
+ }{%
+ \textbf{\printacademicfield}%
+ }%
+ \ifundef{\printspeciality}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{.5}}}%
+ % \vspace*{\stretch{.5}}%
+ \par%
+ \large%
+ \YAD@translation{speciality} \textbf{\printspeciality}%
+ }%
+ }
+ \end{center}
+ % \end{minipage}%
+ \vspace*{\stretch{1}}%
+ \begin{center}
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{2}}}%
+ % \vspace*{\stretch{2}}%
+ }{%
+ \ifdraft{}{\vspace*{\stretch{.25}}}%
+ % \vspace*{\stretch{.25}}%
+ }%
+ \usebox{\YAD@titlebox}%
+ % \ifdraft{}{\vspace*{\stretch{2}}}%
+ \vspace*{\stretch{2}}%
+ \end{center}
+% \end{macrocode}
+% Affichage des directeurs de thèse et du jury
+% \begin{macrocode}
+ \noindent%
+ \begin{minipage}[c][\YAD@otherboxheight][c]{\YAD@titleboxwidth}
+ \YAD@supervisors@tabular%
+ \par%
+ \ifboolexpr{%
+ bool {YAD@submitted@work}%
+ or bool {YAD@submitted@work@star}%
+ }{%
+ \vphantom{\YAD@committee@tabular}%
+ }{%
+ \YAD@committee@tabular%
+ }%
+ \ifdraft{}{\vspace*{\stretch{.1}}}%
+ % \vspace*{\stretch{.1}}%
+ \end{minipage}%
+ \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
+ }{%
+ % \ifdraft{}{\vspace*{\stretch{2}}}%
+ \vspace*{\stretch{2}}%
+ }{%
+ }%
+ \ifbool{YAD@supervisor@specified}{%
+ }{%
+ \ifbool{YAD@nosupervisor}{%
+ }{%
+ \YAD@ClassError*[nosupervisor]{%
+ Directeur de these non specifie%
+ }{%
+ La commande \protect\supervisor\space n'a pas ete utilisee\MessageBreak%
+ (celle-ci est requise) ou ses arguments obligatoires sont
+ vides\MessageBreak%
+ (ceux-ci doivent etre renseignes).%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% On repasse à la langue par défaut
+% \begin{macrocode}
+\endgroup%
+% \end{macrocode}
+% Maintenant que la 1\iere{} page de titre (celle de 1\iere{} de couverture)
+% a été créée, le booléen "YAD@cover@page" est faux.
+% \begin{macrocode}
+\boolfalse{YAD@cover@page}%
+% \end{macrocode}
+% On génère une page de titre dans la langue principale puis dans la
+% langue secondaire.
+% \begin{macrocode}
+}%
+\expandafter\docsvlist{\YAD@mainlanguage}%
+\ifbool{YAD@two@titles}{%
+ \booltrue{YAD@second@title}%
+ \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+ \ifbool{YAD@nofrontcover}{%
+ \docsvlist{english}%
+ }{%
+ \docsvlist{french,english}%
+ }%
+ }{%
+ \ifbool{YAD@nofrontcover}{%
+ \docsvlist{french}%
+ }{%
+ \docsvlist{english,french}%
+ }%
+ }%
+}{%
+}%
+\ifthenelse{\equal{\cmdKV@YAD@frametitle}{shadowbox}}{%
+ \let\tcb@shadow@prepare=\origtcb@shadow@prepare%
+}{%
+}%
+\expandafter\selectlanguage\expandafter{\YAD@mainlanguage}%
+\restoregeometry%
+\pagestyle{preliminary}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Si la commande "\maketitle" n'a pas été utilisée, une erreur est émise.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifboolexpr{%
+ bool {YAD@maketitle@used}%
+ or bool {YAD@nomaketitle}%
+ }{%
+ }{%
+ \YAD@ClassError*[nomaketitle]{%
+ Commande \protect\maketitle\space non utilisee%
+ }{%
+ La commande \protect\maketitle\space n'a pas ete utilisee. Celle-ci est
+ requise.%
+ }%
+ }%
+}%
+% \end{macrocode}
+%
+% Définition de "\keywords".
+% \begin{macro}{\keywords}
+% \begin{macro}{\YAD@metakeywords}
+% \begin{macrocode}
+\newcommand{\keywords}[2]{%
+ \booltrue{YAD@keywords@used}%
+ \def\YAD@mainkeywords{#1}%
+ \def\YAD@secondarykeywords{#2}%
+ \ifthenelse{\isempty{#1}}{%
+ }{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@hypersetup{pdfkeywords={#1}}%
+ }{%
+ \YAD@hypersetup{pdfkeywords={#1} ({#2})}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\printkeywords}
+% Définition de "\printkeywords".
+% \begin{macrocode}
+\csdef{printkeywords}{%
+ \expandafter\IfLanguageName{\YAD@mainlanguage}{%
+ \YAD@ifemptyorundef{\YAD@mainkeywords}{%
+ \YAD@generic@argument@translate{keywords}%
+ }{%
+ \MakeTextLowercase{\YAD@mainkeywords}%
+ }%
+ }{%
+ \YAD@ifemptyorundef{\YAD@secondarykeywords}{%
+ \YAD@generic@argument@translate{keywords}%
+ }{%
+ \MakeTextLowercase{\YAD@secondarykeywords}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% Émission d'une erreur si les mots clés sont vides ou non spécifiés.
+% \begin{macrocode}
+\AtEndDocument{%
+ \notbool{YAD@keywords@used}{%
+ \ifbool{YAD@nokeywords}{%
+ }{%
+ \YAD@ClassError[nokeywords]{%
+ Commande \protect\keywords\space non utilisee%
+ }{%
+ La commande \protect\keywords\space n'a pas ete utilisee. Celle-ci est
+ requise.%
+ }%
+ }%
+ }{%
+ \ifdefempty{\YAD@mainkeywords}{%
+ \YAD@ClassError[nokeywords]{%
+ Mots cles dans la langue principale non specifies%
+ }{%
+ Les mots cles dans la langue principale\MessageBreak%
+ (1er argument de la commande \protect\keywords) n'ont\MessageBreak%
+ pas ete specifies. Ceux-ci sont requis.%
+ }%
+ }{%
+ \csdef{YAD@metakeywords}{\YAD@mainkeywords} }%
+ \ifdefempty{\YAD@secondarykeywords}{%
+ \YAD@ClassError[nokeywords]{%
+ Mots cles dans la langue secondaire non specifies%
+ }{%
+ Les mots cles dans la langue secondaire\MessageBreak%
+ (2e argument de la commande \protect\keywords) n'ont\MessageBreak%
+ pas ete specifies. Ceux-ci sont requis.%
+ }%
+ }{%
+ \csdef{YAD@metakeywords}{\YAD@mainkeywords (\YAD@secondarykeywords)}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\makekeywords}
+% Commande de la page de mots clés.
+% \begin{macrocode}
+\csdef{makekeywords}{%
+ \@ifstar{\@tempswatrue\csuse{YAD@starnostar@makekeywords}}{\@tempswafalse\csuse{YAD@starnostar@makekeywords}}%
+}%
+\csdef{YAD@starnostar@makekeywords}{%
+ \cleardoublepage%
+% \end{macrocode}
+% Appel du style de page propre à la partie préliminaire
+% \begin{macrocode}
+ \pagestyle{prepreliminary}%
+ % \YAD@astuce@expressioncle%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{1}}%
+ \fi
+ \begin{flushleft}
+ \begin{description}
+ \renewcommand*{\do}[1]{%
+ \expandafter\selectlanguage\expandafter{##1}%
+ \item[\YAD@translation{keywords}\IfLanguageName{french}{\,}{}:]
+ \YAD@ifemptyorundef{\printkeywords}{%
+ \YAD@generic@argument@translate{keywords}%
+ }{%
+ \printkeywords%
+ }%
+ }%
+ \expandafter\docsvlist{\YAD@mainlanguage}%
+ \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+ \docsvlist{english}%
+ }{%
+ \docsvlist{french}%
+ }%
+ \end{description}
+ \end{flushleft}
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{1}}%
+ \fi
+ \expandafter\selectlanguage\expandafter{\YAD@mainlanguage}%
+ \pagestyle{preliminary}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\laboratory}
+% \begin{macrocode}
+\DTLnewdb{laboratories}%
+\newcommand{\laboratory}[3][]{%
+ \DTLnewrow{laboratories}%
+ \dtlexpandnewvalue%
+ \yadsetup{%
+ #1%
+ }%
+ \DTLnewdbentry{laboratories}{name}{#2}%
+ \DTLnewdbentry{laboratories}{address}{#3}%
+ \ifbool{YAD@nolaboratory}{%
+ }{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@ClassError[nolaboratory]{%
+ Nom du laboratoire de la these vide%
+ }{%
+ Le 1er argument obligatoire de la commande
+ \protect\laboratory\MessageBreak%
+ est vide (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ }%
+ \ifthenelse{\isempty{#3}}{%
+ \YAD@ClassError[nolaboratory]{%
+ Adresse du laboratoire de la these vide%
+ }{%
+ Le 2e argument obligatoire de la commande
+ \protect\laboratory\MessageBreak%
+ est vide (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ }%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@logo}{%
+ \DTLnewdbentry{laboratories}{logo}{}%
+ }{%
+ \DTLnewdbentry{laboratories}{logo}{\cmdKV@YAD@logo}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@logoheight}{%
+ \DTLnewdbentry{laboratories}{logoheight}{\YAD@default@logoheight}%
+ }{%
+ \DTLnewdbentry{laboratories}{logoheight}{\cmdKV@YAD@logoheight}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@url}{%
+ \DTLnewdbentry{laboratories}{url}{}%
+ }{%
+ \DTLnewdbentry{laboratories}{url}{\cmdKV@YAD@url}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@telephone}{%
+ \DTLnewdbentry{laboratories}{telephone}{}%
+ }{%
+ \DTLnewdbentry{laboratories}{telephone}{\cmdKV@YAD@telephone}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@fax}{%
+ \DTLnewdbentry{laboratories}{fax}{}%
+ }{%
+ \DTLnewdbentry{laboratories}{fax}{\cmdKV@YAD@fax}%
+ }%
+ \YAD@ifemptyorundef{\cmdKV@YAD@email}{%
+ \DTLnewdbentry{laboratories}{email}{}%
+ }{%
+ \DTLnewdbentry{laboratories}{email}{\cmdKV@YAD@email}%
+ }%
+ \ifbool{YAD@nonamelink}{%
+ \DTLnewdbentry{laboratories}{nonamelink}{true}%
+ }{%
+ \DTLnewdbentry{laboratories}{nonamelink}{false}%
+ }%
+ %
+ \DTLgetvalue{\YAD@main@laboratory@name}{laboratories}{1}{\dtlcolumnindex{laboratories}{name}}%
+ \DTLgetvalue{\YAD@main@laboratory@address}{laboratories}{1}{\dtlcolumnindex{laboratories}{address}}%
+ \DTLgetvalue{\YAD@main@laboratory@url}{laboratories}{1}{\dtlcolumnindex{laboratories}{url}}%
+ \DTLgetvalue{\YAD@main@laboratory@nonamelink}{laboratories}{1}{\dtlcolumnindex{laboratories}{nonamelink}}%
+ %
+ \boolfalse{YAD@nonamelink}%
+ \yadsetup{%
+ logo=,%
+ url=,%
+ telephone=,%
+ fax=,%
+ email=,%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\makelaboratory}
+% Commande créant la page dédiée au laboratoire.
+% \begin{macrocode}
+\csdef{makelaboratory}{%
+ \@ifstar{\@tempswatrue\csuse{YAD@starnostar@makelaboratory}}{\@tempswafalse\csuse{YAD@starnostar@makelaboratory}}%
+}%
+\csdef{YAD@starnostar@makelaboratory}{%
+ \cleardoublepage%
+% \end{macrocode}
+% Appel du style de page propre à la partie préliminaire
+% \begin{macrocode}
+ \pagestyle{prepreliminary}%
+% \YAD@astuce@expressioncle%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{1}}%
+ \fi
+ \noindent%
+ \ifthenelse{\DTLrowcount{laboratories}>1}{%
+ \ifYAD@hdr
+ \YAD@translation{prepared-at-pl-hdr}%
+ \else%
+ \YAD@translation{prepared-at-pl}%
+ \fi
+ }{%
+ \ifYAD@hdr
+ \YAD@translation{prepared-at-hdr}%
+ \else%
+ \YAD@translation{prepared-at}%
+ \fi
+ }%
+ \if@tempswa%
+ \vspace*{\baselineskip}%
+ \else%
+ \vspace*{\stretch{.25}}%
+ \fi
+ \par%
+ \ifthenelse{\DTLrowcount{laboratories}<1}{%
+ \begin{minipage}[t]{\linewidth-\parindent}
+ \YAD@reach@file{\YAD@generic@argument@translate{laboratory}}%
+ \\[.1cm]
+ \YAD@reach@file{\YAD@generic@argument@translate{laboratoryaddress}}%
+ \end{minipage}%
+ }{%
+ }%
+ \DTLforeach*{laboratories}{%
+ \YAD@laboratory@name=name,%
+ \YAD@laboratory@address=address,%
+ \YAD@laboratory@url=url,%
+ \YAD@laboratory@logo=logo,%
+ \YAD@laboratory@logoheight=logoheight,%
+ \YAD@laboratory@telephone=telephone,%
+ \YAD@laboratory@fax=fax,%
+ \YAD@laboratory@email=email,%
+ \YAD@laboratory@nonamelink=nonamelink%
+ }{%
+ \ifthenelse{\DTLiseq{\YAD@laboratory@logo}{}}{%
+ \setlength{\YAD@laboratory@width}{\linewidth-\parindent}%
+ }{%
+ \setlength{\YAD@laboratory@width}{.625\linewidth-\parindent}%
+ }%
+ \begin{minipage}[t]{\YAD@laboratory@width}
+ \textbf{\printlaboratory[\YAD@laboratory@url]{\YAD@laboratory@name}}%
+ \\[.1cm]
+ \printlaboratoryaddress{\YAD@laboratory@address}%
+ \\[.25cm]
+ \begin{tabular}{@{}ll}
+ \ifthenelse{\DTLiseq{\YAD@laboratory@telephone}{}}{%
+ }{%
+ \YAD@translation{phone} & \YAD@reach@file{\YAD@laboratory@telephone} \\%
+ }%
+ \ifthenelse{\DTLiseq{\YAD@laboratory@fax}{}}{%
+ }{%
+ \YAD@translation{fax} & \YAD@reach@file{\YAD@laboratory@fax} \\%
+ }%
+ \ifthenelse{\DTLiseq{\YAD@laboratory@email}{}}{%
+ }{%
+ \YAD@translation{email} &
+ \YAD@reach@file{%
+ \YAD@ifemptyorundef{\YAD@laboratory@email}{%
+ % \ifbool{YAD@nolink}{%
+ \YAD@generic@argument@translate{laboratoryemail}%
+ % }{%
+ % \YAD@href{mailto:laboratory@institute.fr}{\YAD@generic@argument@translate{laboratoryemail}}%
+ % }%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@nolinkurl{\YAD@laboratory@email}%
+ % }{%
+ \YAD@href{mailto:\YAD@laboratory@email}{\YAD@nolinkurl{\YAD@laboratory@email}}%
+ % }%
+ }%
+ }%
+ \\%
+ }%
+ \ifthenelse{\DTLiseq{\YAD@laboratory@url}{}}{%
+ }{%
+ \YAD@translation{website} & % \printlaboratoryurl
+ \def\YAD@texteurl{%
+ \YAD@ifemptyorundef{\YAD@laboratory@url}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{urllaboratory}}%
+ }{%
+ \YAD@reach@file{\YAD@nolinkurl{\YAD@laboratory@url}}%
+ }%
+ }%
+ \YAD@ifemptyorundef{\YAD@laboratory@url}{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@texteurl%
+ % }{%
+ % \YAD@href{www.laboratory.fr}{%
+ \YAD@texteurl%
+ % }%
+ % }%
+ }{%
+ \ifdraft{%
+ \YAD@texteurl%
+ }{%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@nolinkurl{\YAD@laboratory@url}%
+ % }{%
+ \YAD@url{%
+ \YAD@laboratory@url%
+ }%
+ % }%
+ }%
+ }%
+ }%
+ \end{tabular}%
+ \end{minipage}%
+ \ifthenelse{\DTLiseq{\YAD@laboratory@logo}{}}{%
+ }{%
+ \hspace{\stretch{1}}%
+ \begin{minipage}[t]{.325\linewidth}
+ \def\YAD@logo{%
+ \YAD@ifemptyorundef{\YAD@laboratory@logo}{%
+ \YAD@reach@file{\YAD@generic@argument@translate{logolaboratory}}%
+ }{%
+ \YAD@reach@file{%
+ \includegraphics[height=\YAD@laboratory@logoheight,valign=t]{\YAD@laboratory@logo}%
+ }%
+ }%
+ }%
+ \if@tempswa%
+ \else%
+ \hspace{\stretch{1}}%
+ % \ifbool{YAD@nolink}{%
+ % \YAD@logo%
+ % }{%
+ \YAD@ifemptyorundef{\YAD@laboratory@url}{%
+ % \YAD@href{www.laboratory.fr}{%
+ \YAD@logo%
+ % }%
+ }{%
+ \YAD@href{\YAD@laboratory@url}{\YAD@logo}%
+ }%
+ % }%
+ \fi%
+ \end{minipage}%
+ }%
+ \par%
+ \DTLiflastrow{%
+ \vspace*{\stretch{1}}%
+ }{%
+ \if@tempswa%
+ \vspace*{\baselineskip}%
+ \else%
+ \vspace*{\stretch{.25}}%
+ \fi%
+ }%
+ \setlength\cmdKV@YAD@logoheight{\YAD@default@logoheight}%
+ }%
+ \ifthenelse{\DTLrowcount{laboratories}<1}{%
+ \vspace*{\stretch{1}}%
+ }{%
+ }%
+ \pagestyle{preliminary}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{abstract}
+% Environnement de résumé créant un chapitre non numéroté avec un
+% intitulé par défaut pouvant être modifié au moyen d'un argument
+% optionnel. Une seconde occurrence de cet environnement est
+% similaire, mais compose le contenu dans la langue secondaire.
+% \begin{macrocode}
+\csgdef{YAD@abstractname@mainlanguage}{\abstractname}%
+\csgdef{YAD@abstractname@secondarylanguage}{\abstractname}%
+%
+\newcommand{\YAD@abstract}[1]{%
+ \ifstrempty{#1}{%
+ \ifnumcomp{\value{YAD@abstracts}}{>}{0}{%
+ \global\booltrue{YAD@second@abstract@empty}%
+ }{%
+ \global\booltrue{YAD@main@abstract@empty}%
+ }%
+ }{%
+ \begin{minipage}{\linewidth}
+ \small%
+ #1%
+ \end{minipage}%
+ }%
+}
+\newenvironment{abstract}[1][\abstractname]{%
+ \global\booltrue{YAD@abstract@used}%
+ \ifnumcomp{\value{YAD@abstracts}}{>}{0}{%
+ \global\booltrue{YAD@second@abstract@used}%
+ \csgdef{YAD@abstractname@secondarylanguage}{#1}%
+ \lrbox{\YAD@abstract@secondarylanguage}%
+ \expandafter\selectlanguage\expandafter{\YAD@secondarylanguage}%
+ }{%
+ \csgdef{YAD@abstractname@mainlanguage}{#1}%
+ \lrbox{\YAD@abstract@mainlanguage}%
+ }%
+ \Collect@Body\YAD@abstract%
+}{%
+ \endlrbox%
+ \stepcounter{YAD@abstracts}%
+}%
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\YAD@abstract@page}
+% Éléments communs aux pages de résumé(s) et de 4\ieme{} de couverture.
+% \begin{macrocode}
+\newcommand{\YAD@abstract@page}{%
+ \bgroup%
+ \enlargethispage{2cm}%
+ \setlength{\parindent}{0pt}%
+ \begin{minipage}{\linewidth}
+ \small%
+ {%
+ \bfseries%
+ \YAD@ifemptyorundef{\printtitle}{%
+ \YAD@generic@argument@translate{title}%
+ }{%
+ \textsc{\printtitle}%
+ }%
+ \ifundef{\printsubtitle}{%
+ }{%
+ \newline%
+ \printsubtitle%
+ }%
+ \vspace{-.5em}%
+ \vspace{\z@}%
+ \begin{center}%
+ \YAD@abstractname@mainlanguage%
+ \end{center}%
+ }%
+ \par%
+ \ifboolexpr{%
+ bool {YAD@abstract@used}%
+ and not bool {YAD@main@abstract@empty}%
+ }{%
+ \usebox{\YAD@abstract@mainlanguage}%
+ }{%
+ \YAD@generic@argument@translate{abstract}%
+ }%
+ \ifundef{\printkeywords}{%
+ }{%
+ \vspace{.5em}%
+ \begin{description}
+ \item[\YAD@translation{keywords}\IfLanguageName{french}{\ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}}{}:]
+ \printkeywords
+ \end{description}
+ }%
+ \end{minipage}%
+ \ifbool{YAD@second@abstract@used}{%
+ \expandafter\selectlanguage\expandafter{\YAD@secondarylanguage}%
+ \\[.5\baselineskip]%
+ \YAD@abstract@page@rule%
+ \\[.5\baselineskip]%
+ \begin{minipage}{\linewidth}
+ \small%
+ {%
+ \bfseries%
+ \YAD@ifemptyorundef{\printtitle}{%
+ \YAD@generic@argument@translate{title}%
+ }{%
+ \textsc{\printtitle}%
+ }%
+ \ifundef{\printsubtitle}{%
+ }{%
+ \newline%
+ \printsubtitle%
+ }%
+ \vspace{-.5em}%
+ \vspace{\z@}%
+ \begin{center}%
+ \YAD@abstractname@secondarylanguage%
+ \end{center}%
+ }%
+ \par%
+ \ifboolexpr{%
+ bool {YAD@abstract@used}%
+ and not bool {YAD@second@abstract@empty}%
+ }{%
+ \usebox{\YAD@abstract@secondarylanguage}%
+ }{%
+ \YAD@generic@argument@translate{abstract}%
+ }%
+ \ifundef{\printkeywords}{%
+ }{%
+ \vspace{.5em}%
+ \begin{description}
+ \item[\YAD@translation{keywords}\IfLanguageName{french}{\ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}}{}:]
+ \textnormal{\printkeywords}
+ \end{description}
+ }%
+ \end{minipage}%
+ }{%
+ }%
+ \\[.5\baselineskip]%
+ \YAD@abstract@page@rule%
+ % \par%
+ % \textbf{\printlaboratory*}%
+ % \\%
+ % \let\YAD@ORI@doublebackslash\\%
+ % \renewcommand{\\}{ -- }%
+ % \printlaboratoryaddress%
+ % \let\\\YAD@ORI@doublebackslash%
+ \egroup%
+}%
+% \newcommand{\YAD@abstract@page}{%
+% \ifbool{YAD@inprogress@work}{%
+% \setfootrule{0pt}%
+% \setfoot{}{}{}%
+% }{%
+% }%
+% \bgroup%
+% \enlargethispage{2cm}%
+% \setlength{\parindent}{0pt}%
+% \usebox{\YAD@titleabstractkeywords@mainlanguage}%
+% \par%
+% \usebox{\YAD@titleabstractkeywords@secondarylanguage}%
+% \par%
+% \textbf{\printlaboratory*}%
+% \\%
+% \let\YAD@ORI@doublebackslash\\%
+% \renewcommand{\\}{ -- }%
+% \printlaboratoryaddress%
+% \let\\\YAD@ORI@doublebackslash%
+% \egroup%
+% }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@laboratory@abstract@page}
+% \begin{macrocode}
+\newcommand{\YAD@laboratory@abstract@page}{%
+ \ifnumgreater{\cmdKV@YAD@numlaboratories}{0}{%
+ \begin{minipage}[t]{\linewidth}
+ \let\YAD@ORI@doublebackslash\\%
+ \renewcommand{\\}{ -- }%
+ \DTLforeach*{laboratories}{%
+ \YAD@laboratory@name=name,%
+ \YAD@laboratory@address=address%
+ }{%
+ \DTLiffirstrow{}{\newline}%
+ \textbf{\printlaboratory{\YAD@laboratory@name}}%
+ \ifnumgreater{\cmdKV@YAD@numlaboratories}{1}{%
+ \\%
+ }{%
+ \newline%
+ }%
+ \printlaboratoryaddress{\YAD@laboratory@address}%
+ \ifthenelse{\value{DTLrowi}=\cmdKV@YAD@numlaboratories}{\dtlbreak}{}%
+ }%
+ \end{minipage}%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\makeabstract}
+% Page de présentation (résumés)
+% \begin{macrocode}
+\newcommand{\makeabstract}{%
+ \ifbool{YAD@nomakeabstract}{%
+ }{%
+ \YAD@alarm@noabstract%
+ }%
+ \pagestyle{preliminary}%
+ \YAD@phantomsection%
+ \addcontentsline{toc}{chapter}{\abstractname}%
+ \booltrue{YAD@makeabstract@used}%
+ \bgroup%
+ \addtolength{\footskip}{6pt minus 6pt}%
+ \setfootrule{0pt}%
+ \setfoot[][%
+ \ifboolexpr{%
+ bool {YAD@inprogress@work}%
+ or bool {YAD@inprogress@work@star}%
+ }{%
+ \textsc{\translate{lbl-inprogressfoottext} \today}%
+ }{%
+ \ifboolexpr{%
+ bool {YAD@submitted@work@star}%
+ }{%
+ \textsc{\translate{lbl-submittedfoottext} \today}%
+ }{%
+ }%
+ }%
+ ][]{%
+ % \medskip\par%
+ \YAD@laboratory@abstract@page%
+ }{}{}%
+ \cleardoublepage%
+ \renewcommand{\YAD@chapter@header}{\abstractname}%
+ \renewcommand{\YAD@section@header}{\abstractname}%
+ \YAD@abstract@page%
+ \cleardoublepage%
+ \egroup%
+% \end{macrocode}
+% La commande de production de la page de résumés émet les erreurs signalant
+% l'absence de nom ou d'adresse du laboratoire. Il est donc inutile de les
+% émettre à nouveau par la suite donc on met à \enquote{vrai} les booléens qui
+% désactivent l'émission de ces erreurs.
+% \begin{macrocode}
+ \YAD@nolaboratorytrue%
+ \YAD@nolaboratoryaddresstrue%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\YAD@abstract@page@rule}
+% Style des filets horizontaux sur la page de présentation.
+% \begin{macrocode}
+\newcommand{\YAD@abstract@page@rule}[1][black]{\bgroup\color{#1}\noindent\rule[2pt]{\linewidth}{2pt}\egroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Si la commande "\makeabstract" n'a pas été utilisée, une erreur est émise.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifbool{YAD@makeabstract@used}{%
+ }{%
+ \ifbool{YAD@nomakeabstract}{%
+ }{%
+ \YAD@ClassError*[nomakeabstract]{%
+ Commande \protect\makeabstract\space non utilisee%
+ }{%
+ La commande \protect\makeabstract\space n'a pas ete\MessageBreak%
+ utilisee. Celle-ci est requise.%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+%
+% Si l'environnement "abstract" n'a pas été utilisé, une erreur est émise.
+% \begin{macrocode}
+\newcommand{\YAD@alarm@noabstract}{%
+ \ifbool{YAD@abstract@used}{%
+ \ifbool{YAD@main@abstract@empty}{%
+ \ifnumcomp{\value{YAD@abstracts}}{>}{1}{%
+ \YAD@ClassError[noabstract]{%
+ Contenu de la 1re occurrence de `abstract' vide%
+ }{%
+ La 1re occurrence de l'environnement `abstract' a ete
+ utilisee\MessageBreak%
+ avec un contenu vide. Un contenu non vide est requis.%
+ }%
+ }{%
+ \YAD@ClassError[noabstract]{%
+ Contenu de l'environnement `abstract' vide%
+ }{%
+ L'environnement `abstract' a ete utilise mais avec un contenu
+ vide.\MessageBreak%
+ Un contenu non vide est requis.%
+ }%
+ }%
+ }{%
+ }%
+ \ifbool{YAD@second@abstract@empty}{%
+ \YAD@ClassError[noabstract]{%
+ Contenu de la 2e occurrence de `abstract' vide%
+ }{%
+ La 2e occurrence de l'environnement `abstract' a ete
+ utilisee\MessageBreak%
+ avec un contenu vide. Un contenu non vide est requis.%
+ }%
+ }{%
+ }%
+ }{%
+ \ifbool{YAD@noabstract}{%
+ }{%
+ \YAD@ClassError[noabstract]{%
+ Environnement `abstract' non utilise%
+ }{%
+ L'environnement `abstract' n'a pas ete utilise. Celui-ci est requis.%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\makebackcover}
+% Éléments communs de la page de présentation
+% \begin{macrocode}
+\newcommand{\makebackcover}{%
+ \YAD@alarm@noabstract%
+ \cleardoublepage%
+ \pagestyle{backcover}%
+ \YAD@abstract@page%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Commande de la page de la ou des dédicaces
+% \begin{macro}{\makededications}
+% \begin{macrocode}
+ \csdef{makededications}{%
+ \@ifstar{\@tempswatrue\csuse{YAD@starnostar@makededications}}{\@tempswafalse\csuse{YAD@starnostar@makededications}}%
+ }%
+ \csdef{YAD@starnostar@makededications}{%
+ \pagestyle{prepreliminary}%
+ \cleardoublepage%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{2}}%
+ \fi%
+ \DTLifdbempty{dedications}{%
+ \YAD@generic@argument@translate{dedications}%
+ \YAD@ClassError{%
+ \protect\makededications\space utilisee/\protect\dedication\space non
+ utilisee%
+ }{%
+ La commande \protect\makededications\space a ete utilisee mais la
+ commande \protect\dedication,\MessageBreak%
+ permettant de preparer des dedicaces, n'a pas ete utilisee.%
+ }%
+ }{%
+% \end{macrocode}
+% Appel du style de page propre à la partie préliminaire
+% \begin{macrocode}
+ \begin{flushright}
+ \itshape%
+ \DTLforeach*{dedications}{%
+ \YAD@dedication=dedication%
+ }{%
+ \YAD@ifemptyorundef{\YAD@dedication}{%
+ \YAD@generic@argument@translate{dedication}%
+ \YAD@ClassError{%
+ Dedicace vide%
+ }{%
+ L'argument obligatoire d'une commande \protect\dedication\space est
+ vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ \YAD@dedication%
+ }%
+ \par%
+ \DTLiflastrow{%
+ }{%
+ \if@tempswa%
+ \vspace*{\baselineskip}%
+ \else%
+ \vspace*{\stretch{1}}%
+ \fi
+ }%
+ }%
+ \end{flushright}
+ }%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{2}}%
+ \fi
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% Commande de la page de la ou des dédicaces
+% \begin{macro}{\makefrontepigraphs}
+% \begin{macrocode}
+\csdef{makefrontepigraphs}{%
+ \@ifstar{\@tempswatrue\csuse{YAD@starnostar@makefrontepigraphs}}{\@tempswafalse\csuse{YAD@starnostar@makefrontepigraphs}}%
+}%
+\csdef{YAD@starnostar@makefrontepigraphs}{%
+ \patchcmd{\epigraphs}{\qitemlabel}{\qitemlabel\itemsep=1.5\baselineskip}{}{}%
+ \cleardoublepage%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{2}}%
+ \fi
+ \DTLifdbempty{frontepigraphs}{%
+ \setlength\epigraphrule{0pt}%
+ \begin{epigraphs}
+ \qitem{\YAD@generic@argument@translate{epigraphs}}{}%
+ \end{epigraphs}%
+ \YAD@ClassError{%
+ \protect\makefrontepigraphs\space utilisee/\protect\frontepigraph\space
+ non utilisee%
+ }{%
+ La commande \protect\makefrontepigraphs\space a ete utilisee mais la
+ commande\MessageBreak%
+ \protect\frontepigraph, permettant de preparer des epigraphes, n'a pas
+ ete utilisee.%
+ }{%
+ }%
+ }{%
+% \end{macrocode}
+% Appel du style de page propre à la partie préliminaire
+% \begin{macrocode}
+ \begin{epigraphs}
+ \DTLforeach*{frontepigraphs}{%
+ \YAD@epigraphlanguage=epigraphlanguage,%
+ \YAD@epigraph=epigraph,%
+ \YAD@epigraphauthor=epigraphauthor%
+ }{%
+ \YAD@ifemptyorundef{\YAD@epigraph}{%
+ \renewcommand{\YAD@epigraph}{%
+ \YAD@generic@argument@translate{epigraph}%
+ }%
+ \YAD@ClassError{%
+ Epigraphe vide%
+ }{%
+ L'argument obligatoire d'une commande \protect\frontepigraph\space
+ est vide\MessageBreak%
+ (celui-ci doit etre renseigne).%
+ }%
+ }{%
+ }%
+ \ifthenelse{\equal{\YAD@mainlanguage}{\YAD@epigraphlanguage}}{%
+ \qitem{\YAD@epigraph}{\YAD@epigraphauthor}%
+ }{%
+ \bgroup%
+ \expandafter\selectlanguage\expandafter{\YAD@epigraphlanguage}%
+ \qitem{\YAD@epigraph}{\YAD@epigraphauthor}%
+ \egroup%
+ }%
+ \DTLiflastrow{%
+ }{%
+ \if@tempswa%
+ % \vspace*{2cm}%
+ \else%
+ % \vspace*{\stretch{1}}%
+ \fi
+ }%
+ }%
+ \end{epigraphs}
+ }%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{2}}%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{epigraphspage}
+% Environnement de la page des épigraphes globales à la thèse
+% \begin{macrocode}
+\newenvironment{epigraphspage}{%
+% \end{macrocode}
+% Redéfinition locale de la commande d'épigraphe
+% \begin{macrocode}
+ \patchcmd{\epigraphs}{\qitemlabel}{\qitemlabel\itemsep=1.5\baselineskip}{}{}
+ \cleardoublepage%
+ \vspace*{\stretch{1}}%
+}{%
+ \vspace*{\stretch{1}}%
+}%
+% \end{macrocode}
+% Appel du style de page propre à la partie préliminaire du
+% document, notamment début de l'insertion des titres courants (on
+% ajoute le style de page "prepreliminary" avant que l'environnement
+% "epigraphspage" ne débute, de sorte que sa portée ne soit pas
+% limitée à cet environnement).
+% \begin{macrocode}
+\BeforeBeginEnvironment{epigraphspage}{%
+ \pagestyle{prepreliminary}%
+}%
+\AfterEndEnvironment{epigraphspage}{%
+ \pagestyle{preliminary}%
+}%
+% \end{macrocode}
+% \end{environment}
+%
+%
+%\section{Commandes et styles pour les tables des matières locales}
+%
+% Les commandes et styles suivants, ainsi que toute la machinerie permettant de
+% faire débuter les chapitres par leurs tables des matières locales s'appuient
+% sur le \pkg{etoc} de Jean-François Burnol (qui a aimablement fourni le code
+% suivant).
+% \begin{macrocode}
+% it will be easy to globally shift the TOC horizontally if needed
+\def\YAD@leftmargin {0pt}
+\def\YAD@rightmargin {2.55em}% like LaTeX’s \@tocrmarg
+% \end{macrocode}
+% this is for dotted leaders
+% \begin{macrocode}
+\newbox\YAD@leaderbox
+\def\YAD@leaderboxwidth {0.7777em}% about like what standard classes do
+% \end{macrocode}
+% vertical spacing
+% \begin{macrocode}
+\def\YAD@verysmallvskip {0pt plus .2pt}
+\def\YAD@globalmedvskip {1em plus 1pt}
+\def\YAD@localmedvskip {.25em plus .25pt}
+\def\YAD@bigvskip {2.25em plus 1pt}
+% \end{macrocode}
+% the ‘‘numwidths’’ for typesetting the numbering of division units.
+% I don’t recall exactly how (and for which fonts) these figures were chosen.
+% They quickly prove too small if using Roman numerals (as do too the book
+% class defaults even though they are a bit larger).
+% \begin{macrocode}
+\def\YAD@numwidthB {1.5em} % chapter
+\def\YAD@numwidthC {2.278em}% section, I think default is 2.3em
+\def\YAD@numwidthD {3.056em}% analog in standard class is 3.2em
+\def\YAD@numwidthE {3.833em}% analog in standard class is 4.1em
+\def\YAD@numwidthF {4.611em}% analog in standard class is 5em
+\def\YAD@numwidthG {5.389em}% analog in standard class is 6em
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand\YAD@setlinestyle [2]{% #1= unit, #2= numwidth as macro
+ \etocsetstyle{#1}
+ {\advance\leftskip#2\relax}
+ {%
+ \vskip
+ \YAD@verysmallvskip\relax
+ \leavevmode%
+ {\interlinepenalty\@M
+ \etocifnumbered
+ {%
+ \llap{%
+ \makebox[#2][l]{%
+ \etocnumber%
+ }%
+ }%
+ }{\advance\leftskip-#2\relax}%
+ \etocname
+ \nobreak\leaders \copy\YAD@leaderbox
+ \hfil\makebox[-\parfillskip][r]{\etocpage}%
+ \par }%
+ }
+ {}
+ {\advance\leftskip-#2\relax}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand\YAD@globalstyle {% encapsule le style pour les global TOCs
+ \etocsettocstyle {%
+ \if@twocolumn
+ \@restonecoltrue
+ \onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \parindent\z@
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \setbox\YAD@leaderbox\hbox to \YAD@leaderboxwidth{\hss.\hss}%
+ \chapter *[\cmdKV@YAD@name]{\noindent\kern\YAD@leftmargin\relax % uses "pt"...
+ \cmdKV@YAD@name%
+ }%
+ \rightskip \YAD@rightmargin\relax
+ \parfillskip -\rightskip % or a smaller value if desired
+ \leftskip \YAD@leftmargin \relax%
+ }{%
+ \if@restonecol
+ \twocolumn
+ \fi
+ \cleardoublepage%
+ }%
+ %
+ \etocsetstyle{part} {} {\addpenalty {-\@highpenalty}%
+ \addvspace \YAD@bigvskip \leavevmode {\large
+ \bfseries % use a group to limit font change
+ \interlinepenalty\@M \etocifnumbered{\etocnumber\hspace{1em}}{}%
+ \etocname \nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}}\par
+ \nobreak } {} {}
+ %
+ \etocsetstyle{chapter} {\advance\leftskip\YAD@numwidthB\relax} {\addpenalty
+ {-\@highpenalty }%
+ \vskip \YAD@globalmedvskip\relax
+ \leavevmode%
+ {\interlinepenalty\@M \etocifnumbered
+ {\llap{\makebox[\YAD@numwidthB][l]{\bfseries\etocnumber}}}
+ {\advance\leftskip-\YAD@numwidthB\relax}%
+ \bfseries\etocname
+ \nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}\par }%
+ \penalty \@highpenalty } {} {\advance\leftskip-\YAD@numwidthB\relax}
+ %
+ \YAD@setlinestyle {section}{\YAD@numwidthC}%
+ \YAD@setlinestyle {subsection}{\YAD@numwidthD}%
+ \YAD@setlinestyle {subsubsection}{\YAD@numwidthE}%
+ \YAD@setlinestyle {paragraph}{\YAD@numwidthF}%
+ \YAD@setlinestyle {subparagraph}{\YAD@numwidthG}%
+}
+% \end{macrocode}
+% style pour les local TOCs
+% \begin{macrocode}
+\let\YAD@addcontentsline\addcontentsline
+\newcommand\YAD@localstyle {%
+ \etocsettocstyle {%
+ \if@twocolumn
+ \@restonecoltrue
+ \onecolumn
+ \else
+ \@restonecolfalse
+ \fi%
+ \setbox\YAD@leaderbox\hbox to \YAD@leaderboxwidth{\hss.\hss}%
+ \parindent\z@
+ \dimen@ 2.25em % soon to be \leftskip
+% \end{macrocode}
+% We don't want the "section" containing the localtoc to be itself in (global
+% or local) TOCs. For this, it is enough to \enquote{relax} "\addcontentsline".
+% \begin{macrocode}
+ \renewcommand\addcontentsline[3]{}%
+ \section *{\kern\dimen@ % \dimen@ works here by sheer luck
+ % \contentsname%
+ % \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}%
+ \large\textbf{\translate{lbl-localtocname}}%
+ }%
+% \end{macrocode}
+% We restore the original behavior of "\addcontentsline".
+% \begin{macrocode}
+ \let\addcontentsline\YAD@addcontentsline
+ \parskip \z@skip
+% \end{macrocode}
+%
+% Because of some changes in \Package{parskip}, we need to adjust the vertical
+% space before the first rule of the local TOCs, depending on this package is
+% loaded or not (cf. definition of ×\YAD@vspace@before@localtoc@rule× above).
+%
+% \begin{macrocode}
+ \vspace{\YAD@vspace@before@localtoc@rule}% somewhat ad hoc
+ \leftskip 2.25em \rightskip 4.5em \advance\rightskip-\YAD@rightmargin\relax
+ \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par
+ \rightskip 4.5em
+ \parfillskip -\YAD@rightmargin\relax%
+ }{%
+ \nobreak\vskip-.5\baselineskip
+ \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par
+ \bigskip \if@restonecol \twocolumn \fi
+ }
+ % %
+ \etocsetstyle{section} {%
+ \advance\leftskip\YAD@numwidthC\relax%
+ } {%
+ \addpenalty
+ \@secpenalty \etociffirst{}{\addvspace{\YAD@localmedvskip}}%
+ \leavevmode {%
+ \interlinepenalty\@M \bfseries%
+ \etocifnumbered
+ {%
+ \llap{%
+ \makebox[\YAD@numwidthC][l]{\etocnumber}%
+ }%
+ }
+ {%
+ \advance\leftskip-\YAD@numwidthC%
+ }%
+ \etocname\nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}\par%
+ }%
+ \penalty \@highpenalty%
+ }
+ {} {%
+ \advance\leftskip-\YAD@numwidthC\relax%
+ }
+ % %
+ \YAD@setlinestyle {subsection}{\YAD@numwidthD}%
+ \YAD@setlinestyle {subsubsection}{\YAD@numwidthE}%
+ \YAD@setlinestyle {paragraph}{\YAD@numwidthF}%
+ \YAD@setlinestyle {subparagraph}{\YAD@numwidthG}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*\YAD@computenumwidths@ [2] {% #1 pour `etoc' ou `local', #2=pour le
+ % \kern
+ \begingroup
+ \def\YAD@numwidthB {0pt}%
+ \def\YAD@numwidthC {0pt}%
+ \def\YAD@numwidthD {0pt}%
+ \def\YAD@numwidthE {0pt}%
+ \def\YAD@numwidthF {0pt}%
+ \def\YAD@numwidthG {0pt}%
+ \etocsetstyle{part}{}{}{}{}%
+ \etocsetstyle{chapter}{}
+ {\setbox0\hbox{\bfseries\etocthenumber\kern#2}}
+ {\ifdim\wd0>\YAD@numwidthB\edef\YAD@numwidthB{\the\wd0}\fi}{}%
+ \etocsetstyle{section}{}
+ {\setbox0\hbox{\bfseries\etocthenumber\kern#2}}
+ {\ifdim\wd0>\YAD@numwidthC\edef\YAD@numwidthC{\the\wd0}\fi}{}%
+ \etocsetstyle{subsection}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\YAD@numwidthD\edef\YAD@numwidthD{\the\wd0}\fi}{}%
+ \etocsetstyle{subsubsection}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\YAD@numwidthE\edef\YAD@numwidthE{\the\wd0}\fi}{}%
+ \etocsetstyle{paragraph}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\YAD@numwidthF\edef\YAD@numwidthF{\the\wd0}\fi}{}%
+ \etocsetstyle{subparagraph}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\YAD@numwidthG\edef\YAD@numwidthG{\the\wd0}\fi}{}%
+ %
+ \etocsettocstyle{}
+ {\global\let\YAD@numwidthB\YAD@numwidthB
+ \global\let\YAD@numwidthC\YAD@numwidthC
+ \global\let\YAD@numwidthD\YAD@numwidthD
+ \global\let\YAD@numwidthE\YAD@numwidthE
+ \global\let\YAD@numwidthF\YAD@numwidthF
+ \global\let\YAD@numwidthG\YAD@numwidthG}%
+ \etocnopar
+ \csname YAD@ORI@#1tableofcontents\endcsname
+ \endgroup
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\YAD@computenumwidths [1][0.5em]{%
+ \YAD@computenumwidths@ {}{#1}%
+}
+\newcommand*\YAD@computelocalnumwidths [1][0.5em]{%
+ \YAD@computenumwidths@ {local}{#1}%
+}
+% \end{macrocode}
+%
+% \section{Machinerie pour les tables des matières locales}
+%
+% Les tables des matières locales ne sont pas imprimées si elles sont vides.
+% \begin{macrocode}
+\etocchecksemptiness
+% \end{macrocode}
+%
+% Ajout automatique de tables des matières locales.
+% \begin{macrocode}
+\newcommand{\YAD@default@localtoc}{%
+ \ifbool{YAD@localtocs}%
+ {%
+ \bgroup
+ \YAD@localstyle%
+ \@ifundefined {Etoc@\YAD@localtocsdepth @@}
+ {%
+ }{%
+ \etocsetnexttocdepth{\YAD@localtocsdepth}%
+ }
+ \YAD@computelocalnumwidths\relax%
+ \@ifundefined {Etoc@\YAD@localtocsdepth @@}
+ {%
+ }{%
+ \etocsetnexttocdepth{\YAD@localtocsdepth}%
+ }
+ \localtableofcontents%
+ \YAD@globalstyle
+ \egroup
+ }{%
+ }%
+}
+\newcommand{\YAD@localtoc}{\YAD@default@localtoc}
+\newcommand{\stoplocaltocs}{%
+ \boolfalse{YAD@localtocs}%
+}
+\newcommand{\startlocaltocs}{%
+ \booltrue{YAD@localtocs}%
+}
+\newcommand{\nextwithoutlocaltoc}{%
+ \renewcommand{\YAD@localtoc}{}%
+}
+\newcommand{\nextwithlocaltoc}{%
+ \renewcommand{\YAD@localtoc}{\YAD@default@localtoc}%
+ \booltrue{YAD@localtocs}%
+ \booltrue{YAD@nextwithlocaltoc}%
+}
+\apptocmd{\@makechapterhead}{%
+ \ifbool{YAD@localtocs}%
+ {%
+ \YAD@localtoc%
+ \renewcommand{\YAD@localtoc}{\YAD@default@localtoc}%
+ \ifbool{YAD@nextwithlocaltoc}%
+ {%
+ \boolfalse{YAD@localtocs}%
+ \boolfalse{YAD@nextwithlocaltoc}%
+ % \boolfalse{YAD@localtocs@classoption}%
+ }{%
+ }%
+ }{%
+ }%
+}{}{}%
+% \end{macrocode}
+% \end{environment}
+% On redéfinit la commande "\chapter" de sorte que, dans un chapitre non
+% numéroté ("\chapter*") :
+% \begin{itemize}
+% \item les (sous-(sous-))sections n'aient pas besoin d'être étoilées à leur
+% tour pour être non numérotées ;
+% \item il ne soit pas nécessaire de faire appel aux commandes cryptiques
+% "\addcontentsline{toc}{...}{...}" pour que ce qui est non numéroté figure
+% dans la (les) table(s) des matières ;
+% \item les titres courants soient corrects (par défaut, les titres courants
+% des chapitres et sections non numérotés sont ceux des chapitre et section
+% numérotés les précédant) ;
+% \item elle dispose d'un argument optionnel supplémentaire permettant de
+% spécifier un titre courant différent des titres du texte et de la (des)
+% tables des matières.
+% \end{itemize}
+% \begin{macrocode}
+% \let\YAD@ORI@chapter\chapter%
+\LetLtxMacro{\YAD@ORI@chapter}{\chapter}%
+\AfterPreamble{% delay the redefinition when titlesec has done its own
+ \renewcommand\chapter{%
+ \ifbool{YAD@localbibs}{%
+ \let\YAD@ORI@blx@warn@bibempty\blx@warn@bibempty%
+ \def\blx@warn@bibempty{}%
+ \YAD@printbibliography@ORI[segment=\therefsegment,heading=YAD@localbibs@heading]%
+ \let\blx@warn@bibempty\YAD@ORI@blx@warn@bibempty%
+ }{%
+ }
+ \cleardoublepage%
+ \YAD@phantomsection%
+ \ifbool{YAD@output@paper}{%
+ }{%
+ \YAD@bookmarksetup{startatroot}%
+ }%
+ \@ifstar{\YAD@starred@chapter}{\YAD@unstarred@chapter}%
+ }%
+ \newcommandtwoopt{\YAD@tmp@chapter}[3][][]{%
+ \ifthenelse{\isempty{#1}}{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@ORI@chapter{#3}%
+ }{%
+ \YAD@ORI@chapter{#3}%
+ \chaptermark{#2}%
+ }%
+ }{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@ORI@chapter[#1]{#3}%
+ }{%
+ \YAD@ORI@chapter[#1]{#3}%
+ \chaptermark{#2}%
+ }%
+ }%
+ }%
+ \newcommandtwoopt{\YAD@starred@chapter}[3][][]{%
+ \booltrue{YAD@nonnumbered@chapter}%
+ \booltrue{YAD@nonnumbered@section}%
+ \booltrue{YAD@nonnumbered@subsection}%
+ \booltrue{YAD@nonnumbered@subsubsection}%
+ \booltrue{YAD@nonnumbered@paragraph}%
+ \booltrue{YAD@nonnumbered@subparagraph}%
+ \YAD@setsecnumdepth{none}%
+ \YAD@tmp@chapter[#1][#2]{#3}%
+ }%
+% \end{macrocode}
+% La numérotation des chapitres non étoilés au niveau initial
+% ("\resetsecnumdepth*") n'est activée qu'à partir de la partie principale
+% ("\mainmatter"), sans quoi les (sous-)sections de la partie "\frontmatter"
+% sont numérotées, alors que rien ne doit l'être dans cette partie.
+% \begin{macrocode}
+ \newcommandtwoopt{\YAD@unstarred@chapter}[3][][]{%
+ \boolfalse{YAD@nonnumbered@chapter}%
+ \boolfalse{YAD@nonnumbered@section}%
+ \boolfalse{YAD@nonnumbered@subsection}%
+ \boolfalse{YAD@nonnumbered@subsubsection}%
+ \boolfalse{YAD@nonnumbered@paragraph}%
+ \boolfalse{YAD@nonnumbered@subparagraph}%
+ \if@mainmatter%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}
+ \fi%
+ \YAD@tmp@chapter[#1][#2]{#3}%
+ }%
+% \end{macrocode}
+% On ne veut pas utiliser cette nouvelle définition de "\chapter*" pour
+% "\tableofcontents" et les listes similaires.
+% \begin{macrocode}
+\xpretocmd{\tableofcontents}{\renewcommand{\YAD@localtoc}{}}{}{}%
+\xapptocmd{\tableofcontents}{\renewcommand{\YAD@localtoc}{\YAD@default@localtoc}}{}{}%
+\xpretocmd{\listoftables}{\renewcommand{\YAD@localtoc}{}}{}{}%
+\xapptocmd{\listoftables}{\renewcommand{\YAD@localtoc}{\YAD@default@localtoc}}{}{}%
+\xpretocmd{\listoffigures}{\renewcommand{\YAD@localtoc}{}}{}{}%
+\xapptocmd{\listoffigures}{\renewcommand{\YAD@localtoc}{\YAD@default@localtoc}}{}{}%
+\xpretocmd{\printbibliography}{\renewcommand{\YAD@localtoc}{}}{}{}%
+\xapptocmd{\printbibliography}{\renewcommand{\YAD@localtoc}{\YAD@default@localtoc}}{}{}%
+\xpretocmd{\printglossary}{\renewcommand{\YAD@localtoc}{}}{}{}%
+\xapptocmd{\printglossary}{\renewcommand{\YAD@localtoc}{\YAD@default@localtoc}}{}{}%
+\xpretocmd{\printindex}{\renewcommand{\YAD@localtoc}{}}{}{}%
+\xapptocmd{\printindex}{\renewcommand{\YAD@localtoc}{\YAD@default@localtoc}}{}{}%
+% \end{macrocode}
+% On redéfinit la commande "\section" de sorte que, comme la commande
+% "\chapter", elle dispose d'un argument optionnel supplémentaire permettant de
+% spécifier un titre courant différent des titres du texte et de la (des)
+% tables des matières.
+% \end{itemize}
+% \begin{macrocode}
+\LetLtxMacro{\YAD@ORI@section}{\section}
+\renewcommand\section{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@chapter}{%
+ }{%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ }%
+ \fi%
+ \@ifstar{\YAD@starred@section}{\YAD@unstarred@section}%
+}
+\newcommandtwoopt*{\YAD@tmp@section}[3][][]{%
+ \ifthenelse{\isempty{#1}}{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@ORI@section{#3}%
+ }{%
+ \let\YAD@ORI@sectionmark\sectionmark%
+ \renewcommand\sectionmark[1]{}%
+ \YAD@ORI@section{#3}%
+ \YAD@ORI@sectionmark{#2}%
+ \let\sectionmark\YAD@ORI@sectionmark%
+ }%
+ }{%
+ \ifthenelse{\isempty{#2}}{%
+ \YAD@ORI@section[#1]{#3}%
+ }{%
+ \let\YAD@ORI@sectionmark\sectionmark%
+ \renewcommand\sectionmark[1]{}%
+ \YAD@ORI@section[#1]{#3}%
+ \YAD@ORI@sectionmark{#2}%
+ \let\sectionmark\YAD@ORI@sectionmark%
+ }%
+ }%
+}%
+\newcommandtwoopt{\YAD@starred@section}[3][][]{%
+ \booltrue{YAD@nonnumbered@section}%
+ \booltrue{YAD@nonnumbered@subsection}%
+ \booltrue{YAD@nonnumbered@subsubsection}%
+ \booltrue{YAD@nonnumbered@paragraph}%
+ \booltrue{YAD@nonnumbered@subparagraph}%
+ \YAD@setsecnumdepth{none}%
+ \YAD@tmp@section[#1][#2]{#3}%
+}%
+\newcommandtwoopt{\YAD@unstarred@section}[3][][]{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@chapter}{%
+ }{%
+ \boolfalse{YAD@nonnumbered@section}%
+ \boolfalse{YAD@nonnumbered@subsection}%
+ \boolfalse{YAD@nonnumbered@subsubsection}%
+ \boolfalse{YAD@nonnumbered@paragraph}%
+ \boolfalse{YAD@nonnumbered@subparagraph}%
+ }%
+ \fi%
+ \YAD@tmp@section[#1][#2]{#3}%
+}%
+% \end{macrocode}
+% On redéfinit la commande "\subsection" de sorte que sa version étoilée dispose
+% des mêmes facilités que les versions étoilées des commandes "\chapter" et
+% "\section".
+% \end{itemize}
+% \begin{macrocode}
+\LetLtxMacro{\YAD@ORI@subsection}{\subsection}
+\renewcommand\subsection{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@section}{%
+ }{%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ }%
+ \fi%
+ \@ifstar{\YAD@starred@subsection}{\YAD@unstarred@subsection}%
+}
+\newcommand*{\YAD@tmp@subsection}[2][]{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@ORI@subsection{#2}%
+ }{%
+ \YAD@ORI@subsection[#1]{#2}%
+ }%
+}%
+\newcommand{\YAD@starred@subsection}[2][]{%
+ \booltrue{YAD@nonnumbered@subsection}%
+ \booltrue{YAD@nonnumbered@subsubsection}%
+ \booltrue{YAD@nonnumbered@paragraph}%
+ \booltrue{YAD@nonnumbered@subparagraph}%
+ \YAD@setsecnumdepth{none}%
+ \YAD@tmp@subsection[#1]{#2}%
+}%
+\newcommand{\YAD@unstarred@subsection}[2][]{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@section}{%
+ }{%
+ \boolfalse{YAD@nonnumbered@subsection}%
+ \boolfalse{YAD@nonnumbered@subsubsection}%
+ \boolfalse{YAD@nonnumbered@paragraph}%
+ \boolfalse{YAD@nonnumbered@subparagraph}%
+ }%
+ \fi%
+ \YAD@tmp@subsection[#1]{#2}%
+}%
+%
+\LetLtxMacro{\YAD@ORI@subsubsection}{\subsubsection}
+\renewcommand\subsubsection{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@subsection}{%
+ }{%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ }%
+ \fi%
+ \@ifstar{\YAD@starred@subsubsection}{\YAD@unstarred@subsubsection}%
+}
+\newcommand*{\YAD@tmp@subsubsection}[2][]{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@ORI@subsubsection{#2}%
+ }{%
+ \YAD@ORI@subsubsection[#1]{#2}%
+ }%
+}%
+\newcommand{\YAD@starred@subsubsection}[2][]{%
+ \booltrue{YAD@nonnumbered@subsubsection}%
+ \booltrue{YAD@nonnumbered@paragraph}%
+ \booltrue{YAD@nonnumbered@subparagraph}%
+ \YAD@setsecnumdepth{none}%
+ \YAD@tmp@subsubsection[#1]{#2}%
+}%
+\newcommand{\YAD@unstarred@subsubsection}[2][]{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@subsection}{%
+ }{%
+ \boolfalse{YAD@nonnumbered@subsubsection}%
+ \boolfalse{YAD@nonnumbered@paragraph}%
+ \boolfalse{YAD@nonnumbered@subparagraph}%
+ }%
+ \fi%
+ \YAD@tmp@subsubsection[#1]{#2}%
+}%
+%
+\LetLtxMacro{\YAD@ORI@paragraph}{\paragraph}
+\renewcommand\paragraph{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@subsubsection}{%
+ }{%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ }%
+ \fi%
+ \@ifstar{\YAD@starred@paragraph}{\YAD@unstarred@paragraph}%
+}
+\newcommand*{\YAD@tmp@paragraph}[2][]{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@ORI@paragraph{#2}%
+ }{%
+ \YAD@ORI@paragraph[#1]{#2}%
+ }%
+}%
+\newcommand{\YAD@starred@paragraph}[2][]{%
+ \booltrue{YAD@nonnumbered@paragraph}%
+ \booltrue{YAD@nonnumbered@subparagraph}%
+ \YAD@setsecnumdepth{none}%
+ \YAD@tmp@paragraph[#1]{#2}%
+}%
+\newcommand{\YAD@unstarred@paragraph}[2][]{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@subsubsection}{%
+ }{%
+ \boolfalse{YAD@nonnumbered@paragraph}%
+ \boolfalse{YAD@nonnumbered@subparagraph}%
+ }%
+ \fi%
+ \YAD@tmp@paragraph[#1]{#2}%
+}%
+%
+\LetLtxMacro{\YAD@ORI@subparagraph}{\subparagraph}
+\renewcommand\subparagraph{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@paragraph}{%
+ }{%
+ \YAD@setsecnumdepth{\YAD@secnumdepth}%
+ }%
+ \fi%
+ \@ifstar{\YAD@starred@subparagraph}{\YAD@unstarred@subparagraph}%
+}
+\newcommand*{\YAD@tmp@subparagraph}[2][]{%
+ \ifthenelse{\isempty{#1}}{%
+ \YAD@ORI@subparagraph{#2}%
+ }{%
+ \YAD@ORI@subparagraph[#1]{#2}%
+ }%
+}%
+\newcommand{\YAD@starred@subparagraph}[2][]{%
+ \booltrue{YAD@nonnumbered@subparagraph}%
+ \YAD@setsecnumdepth{none}%
+ \YAD@tmp@subparagraph[#1]{#2}%
+}%
+\newcommand{\YAD@unstarred@subparagraph}[2][]{%
+ \if@mainmatter%
+ \ifbool{YAD@nonnumbered@paragraph}{%
+ }{%
+ \boolfalse{YAD@nonnumbered@subparagraph}%
+ }%
+ \fi%
+ \YAD@tmp@subparagraph[#1]{#2}%
+}%
+% \end{macrocode}
+% Si le \Package{floatrow} est chargé, on doit aussi ne pas utiliser cette
+% nouvelle définition de "\chapter*" pour les listes de flottants personnalisés
+% qui peuvent être créées.
+% \begin{macrocode}
+ \@ifpackageloaded{floatrow}{%
+ \xpatchcmd{\float@listhead}{\chapter}{\YAD@ORI@chapter}{}{}%
+ }{%
+ }%
+% \end{macrocode}
+% On doit modifier la commande "\toc@chapter" du \Package{tocbibind} sans quoi
+% les éléments qu'il ajoute apparaissent en double.
+% \begin{macrocode}
+ \@ifpackageloaded{tocbibind}{%
+ \renewcommand{\toc@chapter}[1]{%
+ \chapter*{#1}\prw@mkboth{#1}%
+ % \addcontentsline{toc}{chapter}{#1}% < Suppression par rapport à l'original
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% Les parties sont par défaut numérotées.
+% \begin{macrocode}
+\xpretocmd{\part}{\YAD@setsecnumdepth{\YAD@secnumdepth}}{}{}%
+% \end{macrocode}
+%
+% % On crée une commande créant des chapitres. Celle-ci a un argument optionnel,
+% % par défaut égal à "preliminary" qui définit le style de page s'appliquant au
+% % chapitre créé.
+% % \begin{macro}{\YAD@create@chapter}
+% % \begin{macrocode}
+% \newcommand*{\YAD@create@chapter}[2][preliminary]{%
+% \expandafter\newcommand\expandafter{\csname #2\endcsname}[1][\csuse{YAD@tr#2}]{%
+% \pagestyle{#1}%
+% \expandafter\translatelet\expandafter{\csname YAD@tr#2\endcsname}{lbl-#2}%
+% \chapter[##1]{\YAD@reach@file[\YAD@configuration@file]{##1}}%
+% }%
+% }
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % Au moyen de cette commande, on crée des commandes de chapitres.
+% %
+% % \begin{macrocode}
+% \YAD@create@chapter{acknowledgements}%
+% \YAD@create@chapter{caution}%
+% \YAD@create@chapter{foreword}%
+% \YAD@create@chapter{preface}%
+% \YAD@create@chapter{frenchabstract}%
+% %
+% \xapptocmd{\frenchabstract}{\booltrue{YAD@frenchabstract@used}}{}{}
+% \AtEndDocument{%
+% \ifbool{YAD@frenchabstract@used}{%
+% \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+% \YAD@ClassWarningNoLine{%
+% Resume substantiel en francais inutile.\MessageBreak%
+% La langue principale de la these etant le\MessageBreak%
+% fran\c cais, un resume substantiel en\MessageBreak%
+% fran\c cais est inutile : vous pouvez supprimer\MessageBreak%
+% la commande \protect\frenchabstract\space et le texte qui s'y\MessageBreak%
+% rapporte%
+% }%
+% }{%
+% }%
+% }{%
+% \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+% }{%
+% \YAD@ClassWarningNoLine{%
+% Resume substantiel en fran\c cais recommande.\MessageBreak%
+% La langue principale de la these n'etant pas le\MessageBreak%
+% fran\c cais, un resume substantiel en\MessageBreak%
+% fran\c cais est recommande : vous pouvez en creer\MessageBreak%
+% un au moyen de \protect\frenchabstract\space (cf. la\MessageBreak%
+% documentation de la la classe yat)%
+% }%
+% }%
+% }%
+% }%
+% % \end{macrocode}
+%
+% On définit la valeur, en anglais et en français, de la macro "\disclaimer" de
+% clause de non-responsabilité définie précédemment.
+%
+% \begin{macrocode}
+\disclaimer{%
+ \IfLanguageName{french}{%
+ \ifundef{\printinstitute}{%
+ L'\YAD@generic@argument@translate{institute}
+ }{%
+ \YAD@if@starts@with@vowel{\YAD@institute}{L'}{Le }\printinstitute*
+ }%
+ %
+ \ifundef{\printcoinstitute}{%
+ n'entend
+ }{%
+ et
+ \YAD@if@starts@with@vowel{\YAD@coinstitute}{l'}{le }\printcoinstitute*
+ n'entendent
+ }%
+ %
+ donner aucune approbation ni improbation aux opinions \'emises dans les
+ th\`eses : ces opinions devront \^etre consid\'er\'ees comme propres \`a
+ leurs auteurs.%
+ }{%
+ The \printinstitute{}
+ %
+ \ifundef{\printcoinstitute}{}{and the \printcoinstitute{}}
+ %
+ neither endorse nor censure authors' opinions expressed in the theses:
+ these opinions must be considered to be those of their authors.%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\makedisclaimer}
+% \begin{macrocode}
+\csdef{makedisclaimer}{%
+ \@ifstar{\@tempswatrue\csuse{YAD@starnostar@makedisclaimer}}{\@tempswafalse\csuse{YAD@starnostar@makedisclaimer}}%
+}%
+\csdef{YAD@starnostar@makedisclaimer}{%
+% \end{macrocode}
+% Appel du style de page propre à la partie préliminaire
+% \begin{macrocode}
+ \pagestyle{prepreliminary}%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{1}}%
+ \fi%
+ \printdisclaimer%
+ \if@tempswa%
+ \else%
+ \vspace*{\stretch{1}}%
+ \fi%
+ \pagestyle{preliminary}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% % Le contenu de l'environnement "introduction" est collecté dans la macro
+% % "\YAD@introduction" pour tester s'il est vide.
+% % \begin{macro}{\YAD@introduction}
+% % \begin{macrocode}
+% \newcommand{\YAD@introduction}[1]{%
+% \ifthenelse{\isempty{#1}}{%
+% \global\booltrue{YAD@introduction@empty}%
+% \YAD@generic@argument@translate{introduction}%
+% }{%
+% #1%
+% }%
+% }
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % \begin{environment}{introduction}
+% % Environnement d'introduction générale numérotée, qui permet de
+% % masquer l'appel du style de page "mainmatter" chargé avant
+% % qu'elle ne commence. La numérotation des paragraphes y est fixée
+% % à son niveau par défaut (par défaut sous-sections).
+% % \begin{macrocode}
+% \newenvironment{introduction}[1][\YAD@trintroduction]{%
+% \YAD@setsecnumdepth{\YAD@secnumdepth}%
+% \YAD@introduction@begin[#1]%
+% \Collect@Body\YAD@introduction%
+% }{%
+% \YAD@introduction@end%
+% }%
+% % \end{macrocode}
+% % \end{environment}
+% % Appel du style de page propre à la partie principale du document,
+% % notamment début de la numérotation des chapitres, chargé avant
+% % l'environnement "introduction".
+% % \begin{macrocode}
+% \BeforeBeginEnvironment{introduction}{\pagestyle{mainmatter}}
+% % \end{macrocode}
+% %
+% % \begin{environment}{introduction*}
+% % Environnement d'introduction générale \emph{non} numérotée, qui
+% % permet de masquer l'appel du style de page "mainmatter" chargé
+% % avant qu'elle ne commence.
+% % \begin{macrocode}
+% \newenvironment{introduction*}[1][\YAD@trintroduction]{%
+% \setcounter{secnumdepth}{-10}%
+% \YAD@introduction@begin[#1]%
+% \Collect@Body\YAD@introduction%
+% }{%
+% \YAD@introduction@end%
+% }%
+% % \end{macrocode}
+% % \end{environment}
+% % Au début de l'environnement, appel du style de page propre à la
+% % partie introductive du document. À la fin de l'environnement,
+% % numérotation des paragraphes est fixée à son niveau par défaut
+% % (sous-sections).
+% % \begin{macrocode}
+% \BeforeBeginEnvironment{introduction*}{\pagestyle{mainmatter}}
+% \AfterEndEnvironment{introduction*}{%
+% \YAD@setsecnumdepth{\YAD@secnumdepth}%
+% }%
+% % \end{macrocode}
+% %
+% % \begin{macro}{\@introduction@begin}
+% % Commande de début d'environnement commune à "introduction" et à
+% % "introduction*".
+% % \begin{macrocode}
+% \newcommand{\YAD@introduction@begin}[1][\YAD@trintroduction]{%
+% \translatelet\YAD@trintroduction{lbl-introduction}%
+% \global\booltrue{YAD@introduction@used}%
+% \chapter[#1]{\YAD@reach@file[\YAD@configuration@file]{#1}}
+% }%
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % \begin{macro}{\@introduction@end}
+% % Commande de fin d'environnement commune à "introduction" et à
+% % "introduction*".
+% % \begin{macrocode}
+% \newcommand{\YAD@introduction@end}{%
+% \cleardoublepage%
+% }%
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % Si l'environnement "introduction" n'a pas été utilisé, une erreur est émise
+% % (car la commande "mainmatter" n'aura alors pas été insérée).
+% % \begin{macrocode}
+% \AtEndDocument{%
+% \ifbool{YAD@introduction@used}{%
+% \ifbool{YAD@introduction@empty}{%
+% \YAD@ClassWarningNoLine{%
+% L'environnement `introduction' a ete utilise\MessageBreak%
+% avec un contenu vide.\MessageBreak%
+% Un contenu non vide est requis%
+% }%
+% }{%
+% }%
+% }{%
+% \ifYAD@nointroduction%
+% \else%
+% \YAD@ClassWarningNoLine{%
+% L'environnement `introduction' n'a pas ete\MessageBreak%
+% utilise. Celui-ci est requis%
+% }%
+% \fi%
+% }%
+% }
+% % \end{macrocode}
+% %
+% % Le contenu de l'environnement "conclusion" est collecté dans la macro
+% % "\YAD@conclusion" pour tester s'il est vide.
+% % \begin{macro}{\YAD@conclusion}
+% % \begin{macrocode}
+% \newcommand{\YAD@conclusion}[1]{%
+% \ifthenelse{\isempty{#1}}{%
+% \global\booltrue{YAD@conclusion@empty}%
+% \YAD@generic@argument@translate{conclusion}%
+% }{%
+% #1%
+% }%
+% }
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % \begin{environment}{conclusion}
+% % Environnement de conclusion générale numérotée.
+% % \begin{macrocode}
+% \newenvironment{conclusion}[1][\YAD@trconclusion]{%
+% \YAD@setsecnumdepth{\YAD@secnumdepth}%
+% \YAD@conclusion@begin[#1]%
+% \Collect@Body\YAD@conclusion%
+% }{%
+% \YAD@conclusion@end%
+% }%
+% % \end{macrocode}
+% % \end{environment}
+% % Appel du style de page propre à la partie conclusion générale du
+% % document, notamment pour s'assurer que celle-ci va figurer au plus
+% % haut niveau des signets, chargé avant l'environnement
+% % "conclusion".
+% % \begin{macrocode}
+% \BeforeBeginEnvironment{conclusion}{%
+% \YAD@phantomsection%
+% \YAD@setsecnumdepth{\YAD@secnumdepth}%
+% \YAD@bookmarksetup{startatroot}%
+% }%
+% \AfterEndEnvironment{conclusion}{\appendix}
+% % \end{macrocode}
+% %
+% % \begin{environment}{conclusion*}
+% % Environnement d'conclusion générale \emph{non} numérotée, qui
+% % permet de masquer l'appel du style de page "conclusion-generale"
+% % chargé avant qu'elle ne commence.
+% % \begin{macrocode}
+% \newenvironment{conclusion*}[1][\YAD@trconclusion]{%
+% \setcounter{secnumdepth}{-10}%
+% \YAD@conclusion@begin[#1]%
+% \Collect@Body\YAD@conclusion%
+% }{%
+% \YAD@conclusion@end%
+% }%
+% % \end{macrocode}
+% % \end{environment}
+% % Appel du style de page propre à la partie conclusion générale du
+% % document, notamment pour s'assurer que celle-ci va figurer au plus
+% % haut niveau des signets, chargé avant l'environnement
+% % "conclusion*".
+% % \begin{macrocode}
+% \BeforeBeginEnvironment{conclusion*}{%
+% \YAD@phantomsection%
+% \YAD@setsecnumdepth{\YAD@secnumdepth}%
+% \YAD@bookmarksetup{startatroot}%
+% }%
+% \AfterEndEnvironment{conclusion*}{%
+% \appendix%
+% \YAD@setsecnumdepth{\YAD@secnumdepth}%
+% }%
+% % \end{macrocode}
+% %
+% % \begin{macro}{\@conclusion@begin}
+% % Commande de début d'environnement commune à "conclusion" et à
+% % "conclusion*".
+% % \begin{macrocode}
+% \newcommand{\YAD@conclusion@begin}[1][\YAD@trconclusion]{%
+% \translatelet\YAD@trconclusion{lbl-conclusion}%
+% \global\booltrue{YAD@conclusion@used}%
+% \chapter[#1]{\YAD@reach@file[\YAD@configuration@file]{#1}}
+% }%
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % \begin{macro}{\@conclusion@end}
+% % Commande de fin d'environnement commune à "conclusion" et à
+% % "conclusion*".
+% % \begin{macrocode}
+% \newcommand{\YAD@conclusion@end}{%
+% \cleardoublepage%
+% }%
+% % \end{macrocode}
+% % \end{macro}
+% %
+% % Si l'environnement "conclusion" n'a pas été utilisé, une erreur est émise
+% % (car la commande "appendix" n'aura alors pas été insérée).
+% % \begin{macrocode}
+% \AtEndDocument{%
+% \ifbool{YAD@conclusion@used}{%
+% \ifbool{YAD@conclusion@empty}{%
+% \YAD@ClassWarningNoLine{%
+% L'environnement `conclusion' a ete utilise\MessageBreak%
+% avec un contenu vide.\MessageBreak%
+% Un contenu non vide est requis%
+% }%
+% }{%
+% }%
+% }{%
+% \ifYAD@noconclusion%
+% \else%
+% \YAD@ClassError{%
+% L'environnement `conclusion' n'a pas ete\MessageBreak%
+% utilise. Celui-ci est requis%
+% }%
+% \fi%
+% }%
+% }
+% % \end{macrocode}
+%
+% On fixe la métadonnée de la langue.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
+ \YAD@hypersetup{pdflang=fr}%
+ }{%
+ \YAD@hypersetup{pdflang=en}%
+ }%
+}%
+% \end{macrocode}
+%
+% Réglage nécessaire sans quoi le titre courant \textquote{BIBLIOGRAPHIE}
+% apparaît en trop en entête et en pied de page (see \url{http://tex.stackexchange.com/q/89884/18401}).
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{biblatex}{%
+ \defbibheading{bibintoc}[\bibname]{\chapter*{#1}}%
+ \defbibheading{YAD@localbibs@heading}[\translate{lbl-localbibname}]{%
+ \renewcommand\addcontentsline[3]{}%
+ \section*{#1}%
+ \let\addcontentsline\YAD@addcontentsline
+ }%
+% \end{macrocode}
+%
+% Références bibliographiques des citations formelles (cf. \Package{biblatex}):
+% \begin{macrocode}
+ \@ifpackageloaded{csquotes}{%
+ \SetCiteCommand{\autocite}%
+ }{%
+ }%
+% \end{macrocode}
+%
+% Redéfinition de la commande d'insertion de la bibliographie et ce,
+% seulement si le \Package{biblatex} est chargé
+% \begin{macro}{\printbibliography}
+% \begin{macrocode}
+ \let\YAD@printbibliography@ORI\printbibliography%
+ \renewcommand{\printbibliography}[1][]{%
+ \booltrue{YAD@printbibliography@used}%
+% TODO: The "biblio" page style (which starts a new page) should be used except
+% in case of "refsection" \package{biblatex}'s option, otherwise the
+% bibliographies by chapters (that should be considered as sections) don't
+% behave as sections: they start a newpage!
+ \pagestyle{biblio}%
+ \YAD@printbibliography@ORI[heading=bibintoc,#1]%
+ \pagestyle{ordinary}%
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Si la commande "\printbibliography" n'a pas été utilisée, une erreur est émise.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifbool{YAD@printbibliography@used}{%
+ }{%
+ \ifbool{YAD@noprintbibliography}{%
+ }{%
+ \YAD@ClassError*[noprintbibliography]{%
+ Commande \protect\printbibliography\space non utilisee%
+ }{%
+ La commande \protect\printbibliography\space n'a pas ete utilisee. Celle-ci est
+ requise.%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+%
+% Patch du \Package{glossaries}, pour lui appliquer certains
+% réglages s'il est chargé et notamment pour lui adjoindre une liste
+% de symboles.
+% \begin{macrocode}
+\hopatch@AfterPackage{glossaries}{%
+% \end{macrocode}
+% Si on est en sortie "output=paper" (et pas en sortie "output=paper*"), on
+% supprime la barre de navigation des glossaires qui ne sert que par ses liens
+% hypertextes et donc \emph{a priori} pas en version imprimée.
+% \begin{macrocode}
+ \ifbool{YAD@output@paper}{%
+ \ifbool{YAD@output@paper@star}{%
+ }{%
+ \renewcommand{\glsnavigation}{}%
+ }%
+ }{%
+ }%
+% \end{macrocode}
+% Création d'une commande "\newglssymbol" pour définir des symboles,
+% dans l'esprit de "\newacronym" ("\newsymbol" ne peut pas être
+% employée car elle existe déjà dans le \Package{amsfonts})
+% \begin{macrocode}
+ \newcommand{\newglssymbol}[5][]{%
+ \@ifpackageloaded{glossaries}{%
+% \end{macrocode}
+% Le tri du symbole dans la liste des symboles se fait par défaut
+% sur la clé...
+% \begin{macrocode}
+ \ifthenelse{\isempty{#1}}{%
+ \newglossaryentry{#2}{%
+ type=symbols,%
+ symbol={#3},%
+ name={#4},%
+ description={#5},%
+ sort={#2}%
+ }%
+% \end{macrocode}
+% ... mais peut être forcé par l'argument optionnel de "\newglssymbol"
+% \begin{macrocode}
+}{%
+ \newglossaryentry{#2}{%
+ type=symbols,%
+ symbol={#3},%
+ name={#4},%
+ description={#5},%
+ sort={#1}%
+ }%
+}%
+}{%
+ \ClassError{yathesis}{}{%
+ Commande \protect\newglssymbol\space utilisee sans que 'glossaries' soit
+ charge%
+ }{%
+ La commande \protect\newglssymbol ne peut etre\MessageBreak%
+ utilisee que si le package 'glossaries' est charge%
+ }%
+}%
+}%
+% \end{macrocode}
+% On définit un nouveau type de style de glossaire, "yadsymbolstyle".
+% \begin{macro}{\yadsymbolstyle}
+% \begin{macrocode}
+\newglossarystyle{yadsymbolstyle}{%
+ % put the glossary in the itemize environment:
+ \renewenvironment{theglossary}%
+ {\begin{description}}{\end{description}}%
+ % have nothing after \begin{theglossary}:
+ \renewcommand*{\glossaryheader}{}%
+ % have nothing between glossary groups:
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ % set how each entry should appear:
+ \renewcommand*{\glossentry}[2]{%
+ \item[\textmd{\glossentrysymbol{##1}}]
+ \glstarget{##1}{\glossentryname{##1}}% the entry name
+ \ifthenelse{\equal{\glossentrydesc{##1}}{}}{%
+ }{%
+ \space (\glossentrydesc{##1})% the description
+ }%
+ \hfill ##2% the number list in square brackets
+ }%
+ % set how sub-entries appear:
+ \renewcommand*{\subglossentry}[3]{%
+ \glossentry{##2}{##3}}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% La commande "\printsymbols" est (re)définie de sorte que lui soit par défaut
+% appliqué le style "yadsymbolstyle".
+% \begin{macro}{\printsymbols}
+% \begin{macrocode}
+\ifundef{\printsymbols}{%
+ \newcommand{\printsymbols}[1][]{%
+ \printglossary[type=symbols,style=yadsymbolstyle,#1]%
+ }%
+}{%
+ \renewcommand{\printsymbols}[1][]{%
+ \printglossary[type=symbols,style=yadsymbolstyle,#1]%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+% On force le chargement du \Package{glossaries-babel} si le
+% \Package{glossaries} l'est, sans quoi les signets des glossaires
+% et objets assimilés ne sont pas correctement traduits.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@ifpackageloaded{glossaries}{%
+ \RequirePackage{glossaries-babel}%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% On termine le patch du \Package{glossaries}.
+% \begin{macrocode}
+}%
+% \end{macrocode}
+%
+% \subsection{Fichiers importés par la classe}
+%
+% La \yatcl charge les fichiers de configuration locale et de données
+% caractéristiques du document, situés dans le répertoire de configuration.
+%
+% \begin{macrocode}
+\AtEndPreamble{%
+ \ifPDFTeX
+ \shorthandon{;:!?}%
+ \fi
+ \InputIfFileExists{\YAD@configuration@directory/\YAD@configuration@file}%
+ {\ClassInfo{yathesis}{%
+ Fichier de configuration local \YAD@configuration@file\space
+ trouve%
+ }%
+ }{%
+ % \YAD@ClassWarningNoLine{%
+ % Fichier de configuration local
+ % \YAD@configuration@file\space introuvable%
+ % }%
+ }%
+ \ifPDFTeX
+ \shorthandoff{;:!?}%
+ \fi
+}%
+% \end{macrocode}
+%
+% \subsubsection{Données caractéristiques du document}
+%
+% \begin{macrocode}
+\AtEndPreamble{%
+ \ifPDFTeX
+ \shorthandon{;:!?}%
+ \fi
+ \InputIfFileExists{\YAD@configuration@directory/\YAD@characteristics@file}%
+ {%
+ \ClassInfo{yathesis}{%
+ Fichier \YAD@characteristics@file\space des donnees du document trouve%
+ }%
+ }%
+ {%
+ % \YAD@ClassWarningNoLine{%
+ % Fichier \YAD@characteristics@file\space des donnees du titre
+ % introuvable.\MessageBreak%
+ % Le fichier \YAD@characteristics@file\space n'a pas ete trouve\MessageBreak%
+ % dans le dossier `\YAD@configuration@directory'.\MessageBreak Ce fichier
+ % \YAD@characteristics@file\space peut faciliter l'usage\MessageBreak de la classe%
+ % }%
+ }%
+ \ifPDFTeX
+ \shorthandoff{;:!?}%
+ \fi
+}%
+% \end{macrocode}
+%
+% % \subsubsection{Macros}
+% %
+% % \begin{macrocode}
+% \AtEndPreamble{%
+% \ifPDFTeX
+% \shorthandon{;:!?}%
+% \fi
+% \InputIfFileExists{\YAD@configuration@directory/\macrosfile}%
+% {\ClassInfo{yathesis}{%
+% Fichier \macrosfile\space trouve%
+% }}%
+% {%
+% % \YAD@ClassWarningNoLine{%
+% % Fichier \macrosfile\space introuvable.\MessageBreak%
+% % Le fichier \macrosfile\space n'a pas ete trouve\MessageBreak%
+% % dans le dossier `\YAD@configuration@directory'%
+% % }%
+% }%
+% \ifPDFTeX
+% \shorthandoff{;:!?}%
+% \fi
+% }%
+% % \end{macrocode}
+%
+% \section{Avertissements}
+% \label{cha-yadr}
+%
+% Si la commande "\tableofcontents" n'a pas été utilisée, une erreur est émise.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifbool{YAD@tableofcontents@used}{%
+ }{%
+ \ifbool{YAD@notableofcontents}{%
+ }{%
+ \YAD@ClassError*[notableofcontents]{%
+ Commande \protect\tableofcontents\space non utilisee%
+ }{%
+ La commande \protect\tableofcontents\space n'a pas ete utilisee. Celle-ci
+ est requise.%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\expression{meta-logopres}{logo PRES}{logo PRES}
+\expression{meta-logocomue}{logo ComUE}{logo ComUE}
+\expression{meta-logoinstitute}{logo de l'institut}{logo de l'institut}
+\expression{meta-institute}{institut principal}{institut principal}
+\expression{meta-coinstitute}{institut de cotutelle}{institut de cotutelle}
+\expression{meta-logocoinstitute}{logo de l'institut de cotutelle}{logo de l'institut de cotutelle}
+\expression{meta-logocompany}{logo de l'entreprise}{logo de l'entreprise}
+\expression{meta-doctoralschool}{\'ecole doctorale}{\'ecole doctorale}
+\expression{meta-laboratory}{nom du laboratoire}{nom du laboratoire}
+\expression{meta-logolaboratory}{logo du laboratoire}{logo du laboratoire}
+\expression{meta-author}{pr\'enom et nom de l'auteur}{pr\'enom et nom de l'auteur}
+\expression{meta-date}{date de la soutenance}{defense date}
+\expression{meta-submissiondate}{date de la soumission}{submission date}
+\expression{meta-academicfield}{discipline}{academic field}
+\expression{meta-speciality}{sp\'ecialit\'e}{speciality}
+\expression{meta-title}{titre du m\'emoire de th\`ese}{thesis title}
+\expression{meta-subtitle}{sous-titre du m\'emoire de th\`ese}{thesis subtitle}
+\expression{meta-firstname}{Pr\'enom}{Pr\'enom}
+\expression{meta-lastname}{Nom}{Nom}
+\expression{meta-role}{fonction}{fonction}
+\expression{meta-corporation}{corporation}{corporation}
+\expression{meta-corps}{corps}{corps}
+\expression{meta-affiliation}{affiliation}{affiliation}
+\expression{meta-introduction}{introduction}{introduction}%
+\expression{meta-conclusion}{conclusion}{conclusion}%
+\expression{meta-keywords}{mot(s) cl\'e(s) de la th\`ese}{thesis keyword(s)}
+\expression{meta-laboratoryaddress}{adresse du laboratoire}{adresse du laboratoire}
+\expression{meta-laboratorytelephone}{t\'el\'ephone du laboratoire}{t\'el\'ephone du laboratoire}
+\expression{meta-laboratoryfax}{fax du laboratoire}{fax du laboratoire}
+\expression{meta-laboratoryemail}{email du laboratoire}{email du laboratoire}
+\expression{meta-urllaboratory}{URL du laboratoire}{URL du laboratoire}
+\expression{meta-dedication}{d\'edicace}{dedication}
+\expression{meta-dedications}{d\'edicaces}{dedications}
+\expression{meta-epigraph}{\'epigraphe}{epigraph}
+\expression{meta-epigraphs}{\'epigraphes}{epigraphs}
+\expression{meta-abstract}{r\'esum\'e}{abstract}%
+\expression{meta-ordernumber}{num\'ero d'ordre}{order number}%
+% \end{macrocode}
+%
+% The following translations are gathered in the
+% \file{yathesis-translations.tex} file that has to be input in the class.
+% \begin{macrocode}
+\InputIfFileExists{\YAD@translations@file}{}{%
+ \ClassError{%
+ Fichier \`YAD@translations@file' non trouve%
+ }{%
+ Le fichier \`YAD@translations@file' n'a pas ete trouve.\MessageBreak%
+ Veuillez verifier votre installation de la classe `yathesis'.%
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*translations>
+% \end{macrocode}
+% Traduction des expressions clés de la thèse.
+% \begin{macrocode}
+\expression{coinstitute}{}{}%
+\expression{company}{}{}%
+\expression{institute}{}{}%
+\expression{email}{\Email}{\Email}%
+\expression{phone}{\Telefon}{\Telefon}%
+\expression{fax}{\Fax}{\Fax}%
+\expression{caution}{Avertissement}{Caution}%
+\expression{localbibname}{Bibliographie du pr\'esent chapitre}{Bibliography of the current chapter}%
+\expression{draft}{brouillon}{draft}%
+\expression{prepared-at}{Cette th\`ese a \'et\'e pr\'epar\'ee au}{This
+ thesis has been prepared at}%
+\expression{prepared-at-pl}{Cette th\`ese a \'et\'e pr\'epar\'ee dans les
+ laboratoires suivants.}{This thesis has been prepared at the following
+ research units.}%
+\expression{prepared-at-hdr}{Cette \textsc{hdr} a \'et\'e pr\'epar\'ee au}{This
+ habilitation to conduct research has been prepared at}%
+\expression{prepared-at-pl-hdr}{Cette \textsc{hdr} a \'et\'e pr\'epar\'ee dans
+ les laboratoires suivants.}{This habilitation to conduct research has been
+ prepared at the following research units.}%
+\expression{juniorresearcher}{charg\'e de recherche}{Junior Researcher}%
+\expression{juniorresearcher-female}{charg\'ee de recherche}{\translate[to=English]{lbl-juniorresearcher}}%
+\expression{juniorresearcher*}{\translate[to=French]{lbl-juniorresearcher}
+ \textsc{hdr}}{\textsc{hdr} \translate[to=English]{lbl-juniorresearcher}}%
+\expression{juniorresearcher-female*}{\translate[to=French]{lbl-juniorresearcher-female}
+ \textsc{hdr}}{\translate[to=English]{lbl-juniorresearcher*}}%
+\expression{cosupervisor}{co-directeur}{Co-Supervisor}%
+\expression{cosupervisor-female}{co-directrice}{\translate[to=English]{lbl-cosupervisor}}
+\expression{comonitor}{co-encadrant}{Co-Monitor}%
+\expression{comonitor-female}{\translate[to=French]{lbl-comonitor}e}{\translate[to=English]{lbl-comonitor}}
+\expression{committeemembers}{Composition du jury}{Committee members}%
+% \expression{conclusion}{Conclusion}{Conclusion}%
+\expression{estimateddefensedate}{Date de soutenance pr\'evue le}{Defense
+ date scheduled on}%
+\expression{supervisor}{directeur}{Supervisor}%
+\expression{supervisor-female}{directrice}{\translate[to=English]{lbl-supervisor}}
+\expression{seniorresearcher}{directeur de recherche}{Senior Researcher}%
+\expression{seniorresearcher-female}{directrice de recherche}{\translate[to=English]{lbl-seniorresearcher}}%
+\expression{supervisors-in-committee}{Directeur de th\`ese}{\translate[to=English]{lbl-supervisor}}%
+\expression{supervisors-in-committee-pl}{Directeurs de th\`ese}{\translate[to=English]{lbl-supervisors-in-committee}s}%
+\expression{supervisors-in-committee-female}{Directrice de th\`ese}{\translate[to=English]{lbl-supervisors-in-committee}}%
+\expression{supervisors-in-committee-pl-female}{Directrices de th\`ese}{\translate[to=English]{lbl-supervisors-in-committee-pl}}%
+\expression{supervisors-in-committee-hdr}{Directeur}{\translate[to=English]{lbl-supervisors-in-committee}}%
+\expression{supervisors-in-committee-pl-hdr}{\translate[to=French]{lbl-supervisors-in-committee-hdr}s}{\translate[to=English]{lbl-supervisors-in-committee-pl}}%
+\expression{supervisors-in-committee-hdr-female}{Directrice}{\translate[to=English]{lbl-supervisors-in-committee}}%
+\expression{supervisors-in-committee-pl-hdr-female}{\translate[to=French]{lbl-supervisors-in-committee-hdr-female}s}{\translate[to=English]{lbl-supervisors-in-committee-pl}}%
+\expression{academicfield}{Discipline}{Academic Field}%
+\expression{doctoralschool}{\'Ecole doctorale}{Doctoral School}%
+\expression{aim}{En vue de l'obtention du grade de docteur de l'}{In order
+ to become Doctor from }%
+\expression{aimand}{ et de l'}{ and from }%
+\expression{examiners}{Examinateur}{Examiner}%
+\expression{examiners-pl}{\translate[to=French]{lbl-examiners}s}{\translate[to=English]{lbl-examiners}s}%
+\expression{examiners-female}{Examinatrice}{\translate[to=English]{lbl-examiners}}%
+\expression{examiners-pl-female}{\translate[to=French]{lbl-examiners-female}s}{\translate[to=English]{lbl-examiners-pl}}%
+\expression{guests}{Invit\'e}{Guest}%
+\expression{guests-pl}{\translate[to=French]{lbl-guests}s}{\translate[to=English]{lbl-guests}s}%
+\expression{guests-female}{\translate[to=French]{lbl-guests}e}{\translate[to=English]{lbl-guests}}%
+\expression{guests-pl-female}{\translate[to=French]{lbl-guests-female}s}{\translate[to=English]{lbl-guests-pl}}%
+\expression{referees}{Rapporteur}{Referee}%
+\expression{referees-pl}{\translate[to=French]{lbl-referees}s}{\translate[to=English]{lbl-referees}s}%
+\expression{referees-female}{\translate[to=French]{lbl-referees}e}{\translate[to=English]{lbl-referees}}%
+\expression{referees-pl-female}{\translate[to=French]{lbl-referees-female}s}{\translate[to=English]{lbl-referees-pl}}%
+% \expression{introduction}{Introduction}{Introduction}%
+% \expression{mcf}{\textsc{mcf}}{Associate Professor}%
+% \expression{mcf*}{\textsc{mcf} \textsc{hdr}}{\textsc{hdr} Associate Professor}%
+\expression{associateprofessor}{\textsc{mcf}}{Associate Professor}%
+\expression{associateprofessor*}{\textsc{mcf} \textsc{hdr}}{\textsc{hdr} Associate Professor}%
+\expression{keywords}{Mots cl\'es}{Keywords}%
+\expression{ordernumber}{Num\'ero d'ordre}{Order Number}%
+% \expression{preface}{Pr\'eface}{Preface}%
+\expression{committeepresident}{pr\'esident du jury}{Committee President}%
+\expression{committeepresident-female}{pr\'esidente du jury}{\translate[to=English]{lbl-committeepresident}}%
+\expression{professor}{professeur}{Professor}%
+\expression{professor-female}{\translate[to=French]{lbl-professor}e}{\translate[to=English]{lbl-professor}}%
+\expression{website}{Site}{Web Site}%
+\expression{localtocname}{Sommaire du pr\'esent chapitre}{Outline of the current
+ chapter}%
+\expression{defendedon}{Soutenue le}{Defended on}%
+\expression{speciality}{Sp\'ecialit\'e}{Speciality}%
+\expression{supervisedby}{Th\`ese dirig\'ee par}{Thesis supervised by}%
+\expression{supervisedby-hdr}{Habilitation dirig\'ee par}{Habilitation supervised by}%
+\expression{thesisdefendedby}{Th\`ese pr\'esent\'ee par}{Thesis defended by}%
+\expression{thesisdefendedby-hdr}{Habilitation \`a diriger les recherches
+ pr\'esent\'ee par}{Habilitation to conduct research defended by}%
+\expression{thesistitle}{}{}%
+\expression{thesistitle-hdr}{}{}%
+\expression{inprogress}{travail en cours}{work in progress}%
+\expression{universitydepartment}{Unit\'e de recherche}{University Department}%
+\expression{versiondate}{Version interm\'ediaire en date du}{Work in progress as
+ of}%
+\expression{inprogressfoottext}{\translate[to=French]{lbl-versiondate}}{\translate[to=English]{lbl-versiondate}}%
+\expression{submittedfoottext}{Version soumise en date du}{Submitted work as
+ of}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</translations>
+% \end{macrocode}
+%
+% \chapter{Fichier de complétion}
+% Now, the \File{yathesis.cwl} for \yatcl commands completion and syntax checking:
+%
+% \begin{macrocode}
+%<*class-cwl>
+% \end{macrocode}
+%
+% \begin{macrocode}
+# mode: yathesis.cls
+# denisbitouze, 2016-12-01
+#
+#include:class-book
+#include:latex-document
+#include:latex-mathsymbols
+#include:tex
+#include:pgfopts
+#include:etoolbox
+#include:xpatch
+#include:morewrites%
+#include:filehook
+#include:hopatch
+#include:xifthen
+#include:xkeyval%
+#include:geometry
+#include:graphicx
+#include:environ
+#include:adjustbox
+#include:array
+#include:xstring
+#include:textcase
+#include:translator
+#include:iftex
+#include:epigraph
+#include:tcolorbox
+#include:marvosym
+#include:setspace
+#include:etoc
+#include:tocbibind
+#include:nonumonpart
+#include:xcolor
+#include:datatool
+#include:fncychap
+#include:titleps
+#include:ifdraft
+#include:draftwatermark
+#include:babel
+#include:iflang
+#include:datetime
+#include:hypcap
+#include:bookmark
+#include:glossaries-babel
+#
+# Document class
+#keyvals:\documentclass/yathesis
+mainlanguage=#french,english
+secnumdepth=#part,chapter,section,subsection,subsubsection,paragraph,subparagraph
+space=#single,onehalf,double
+chap-style=#Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none
+nofrontcover#true,false
+sepcorpaffilfrench=
+sepcorpaffilenglish=
+version=#inprogress,inprogress*,submitted,submitted*,final,draft
+output=#screen,paper,paper*
+localtocs
+localtocs/depth=#section,subsection,subsubsection,paragraph,subparagraph
+localbibs
+localbibs*
+10pt
+11pt
+12pt
+leqno
+fleqn
+oneside
+noerror
+noauthor
+notitle
+noacademicfield
+nodate
+noinstitute
+nodoctoralschool
+nolaboratory
+nolaboratoryaddress
+nosupervisor
+nomaketitle
+nokeywords
+noabstract
+nomakeabstract
+notableofcontents
+noprintbibliography
+graphicx
+adjustbox
+setspace
+xcolor
+datatool
+titleps
+draftwatermark
+babel
+datetime
+#endkeyvals
+#
+\yadsetup{%<options%>}#n
+#
+# Cover and title pages
+#
+# Author
+\author{%<prénom%>}{%<nom%>}#n
+\author[%<email%>]{%<prénom%>}{%<nom%>}#n
+#
+# Title, etc.
+\title[titre dans la langue secondaire%text]{titre dans la langue principale%text}#n
+\subtitle[sous-titre dans la langue secondaire%text]{sous-titre dans la langue principale%text}#n
+\academicfield[discipline dans la langue secondaire%text]{discipline dans la langue principale%text}#n
+\speciality[spécialité dans la langue secondaire%text]{spécialité dans la langue principale%text}#n
+\subject[sujet dans la langue secondaire%text]{sujet dans la langue principale%text}#n
+#
+\title{titre%text}#n
+\subtitle{sous-titre%text}#n
+\academicfield{discipline%text}#n
+\speciality{spécialité%text}#n
+\subject{sujet%text}#n
+\date{%<jour%>}{%<mois%>}{%<année%>}#n
+\submissiondate{%<jour%>}{%<mois%>}{%<année%>}#n
+#
+# Institute and entities
+\pres{%<nom du PRES%>}#n
+\comue{%<nom de la ComUE%>}#n
+\institute{nom de l'institut%text}#n
+\coinstitute{nom de l'institut de cotutelle%text}#n
+\company{%<nom de l'entreprise%>}#n
+\doctoralschool{nom de l'école doctorale%text}#n
+\laboratory{%<nom du laboratoire%>}{%<adresse du laboratoire%>}#n
+#
+\pres[%<précision(s)%>]{%<nom du PRES%>}#n
+\comue[%<précision(s)%>]{%<nom de la ComUE%>}#n
+\institute[%<précision(s)%>]{nom de l'institut%text}#n
+\coinstitute[%<précision(s)%>]{nom de l'institut de cotutelle%text}#n
+\company[%<précision(s)%>]{%<nom de l'entreprise%>}#n
+\doctoralschool[%<précision(s)%>]{nom de l'école doctorale%text}#n
+\laboratory[%<précision(s)%>]{%<nom du laboratoire%>}{%<adresse du laboratoire%>}#n
+#
+#keyvals:\pres
+logo=
+logoheight=
+url=
+#endkeyvals
+#keyvals:\comue
+logo=
+logoheight=
+url=
+#endkeyvals
+#keyvals:\institute
+logo=
+logoheight=
+url=
+nologo
+#endkeyvals
+#keyvals:\coinstitute
+logo=
+logoheight=
+url=
+nologo
+#endkeyvals
+#keyvals:\company
+logo=
+logoheight=
+url=
+nologo
+#endkeyvals
+#keyvals:\doctoralschool
+logo=
+logoheight=
+url=
+#endkeyvals
+#keyvals:\laboratory
+logo=
+logoheight=
+url=
+telephone=
+fax=
+email=
+nonamelink
+#endkeyvals
+#
+# Committee
+\supervisor{%<prénom%>}{%<nom%>}#n
+\cosupervisor{%<prénom%>}{%<nom%>}#n
+\comonitor{%<prénom%>}{%<nom%>}#n
+\referee{%<prénom%>}{%<nom%>}#n
+\examiner{%<prénom%>}{%<nom%>}#n
+\committeepresident{%<prénom%>}{%<nom%>}#n
+\guest{%<prénom%>}{%<nom%>}#n
+#
+\supervisor[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+\cosupervisor[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+\comonitor[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+\referee[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+\examiner[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+\committeepresident[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+\guest[%<précision(s)%>]{%<prénom%>}{%<nom%>}#n
+#
+#keyvals:\supervisor
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#keyvals:\cosupervisor
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#keyvals:\comonitor
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#keyvals:\referee
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#keyvals:\examiner
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#keyvals:\committeepresident
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#keyvals:\guest
+affiliation=
+professor
+seniorresearcher
+mcf
+mcf*
+associateprofessor
+associateprofessor*
+juniorresearcher
+juniorresearcher*
+#endkeyvals
+#
+# Misc
+\ordernumber[%<numéro d'ordre%>]#n
+\ordernumber#n*
+#
+#keyvals:\maketitle
+nofrontcover
+noaim
+frametitle=#shadowbox,ovalbox,none,fbox
+#endkeyvals
+#
+# Preliminary part
+#
+\disclaimer{clause%text}#n
+\makedisclaimer#n
+\makedisclaimer*#n
+\keywords{mots clés dans la langue principale%text}{mots clés dans la langue secondaire%text}#n
+\makekeywords#n
+\makekeywords*#n
+\makelaboratory#n
+\makelaboratory*#n
+\dedication{dédicace%text}#n
+\makededications#n
+\makededications*#n
+\frontepigraph{épigraphe%text}{%<auteur%>}
+\frontepigraph[%<langue%>]{épigraphe%text}{%<auteur%>}
+#keyvals:\frontepigraph
+afrikaans
+bahasa
+basque
+breton
+bulgarian
+catalan
+croatian
+czech
+danish
+dutch
+english
+esperanto
+estonian
+finnish
+french
+galician
+ngerman
+greek
+hebrew
+hungarian
+icelandic
+interlingua
+irish
+italian
+latin
+lowersorbian
+samin
+norsk
+polish
+portuguese
+romanian
+russian
+scottish
+spanish
+slovak
+slovene
+swedish
+serbian
+turkish
+ukrainian
+uppersorbian
+welsh
+#endkeyvals
+\makefrontepigraphs#n
+\makefrontepigraphs*#n
+\begin{abstract}#n
+\begin{abstract}[intitulé alternatif%text]#n*
+\end{abstract}#n
+\makeabstract#n
+\newglssymbol{%<label%>}{%<symbole%>}{%<nom%>}{description%text}#n
+\newglssymbol[%<classement%>]{%<label%>}{%<symbole%>}{%<nom%>}{description%text}#n
+\tableofcontents#n*
+\tableofcontents[%<précision(s)%>]#n*
+#
+#keyvals:\tableofcontents
+depth=#part,chapter,section,subsection,subsubsection,paragraph,subparagraph
+name=
+#endkeyvals
+#
+# Main part
+#
+\chapter{titre%title}#L1
+\chapter*{titre%title}#L1
+\chapter[titre alt. pour TdM et entête%short title]{titre%title}#L1
+\chapter*[titre alt. pour TdM et entête%short title]{titre%title}#L1
+\chapter[titre alt. pour TdM%short title][titre alt. pour entête%short title]{titre%title}#L1
+\chapter*[titre alt. pour TdM%short title][titre alt. pour entête%short title]{titre%title}#L1
+\section{titre%title}#L2
+\section*{titre%title}#L2
+\section[titre alt. pour TdM et entête%short title]{titre%title}#L2
+\section*[titre alt. pour TdM et entête%short title]{titre%title}#L2
+\section[titre alt. pour TdM%short title][titre alt. pour entête%short title]{titre%title}#L2
+\section*[titre alt. pour TdM%short title][titre alt. pour entête%short title]{titre%title}#L2
+\subsection{titre%title}#L3
+\subsection*{titre%title}#L3
+\subsection[titre alt. pour TdM et entête%short title]{titre%title}#L3
+\subsection*[titre alt. pour TdM et entête%short title]{titre%title}#L3
+\subsubsection{titre%title}#L4
+\subsubsection*{titre%title}#L4
+\subsubsection[titre alt. pour TdM et entête%short title]{titre%title}#L4
+\subsubsection*[titre alt. pour TdM et entête%short title]{titre%title}#L4
+\paragraph{titre%title}#L5
+\paragraph*{titre%title}#L5
+\paragraph[titre alt. pour TdM et entête%short title]{titre%title}#L5
+\paragraph*[titre alt. pour TdM et entête%short title]{titre%title}#L5
+\subparagraph{titre%title}#L6
+\subparagraph[titre alt. pour TdM et entête%short title]{titre%title}#L6
+#
+# Appendix part
+#
+# Back matter part
+#
+\makebackcover
+#
+# All parts
+#
+\startlocaltocs
+\stoplocaltocs
+\nextwithlocaltoc
+\nextwithoutlocaltoc
+#
+# Customization
+#
+\expression{%<label%>}{valeur (en français)%text}{valeur (en anglais)%text}#n*
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class-cwl>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*demopkg>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{xpatch}
+\RequirePackage{xstring}
+\RequirePackage{xparse}
+\RequirePackage{letltxmacro}
+\RequirePackage{xifthen}
+\RequirePackage[user,abspage]{zref}
+%
+\AfterEndPreamble{
+ \pretocmd{\tableofcontents@YAD@without@argument}{\cleardoublepage\zlabel{tableofcontents-withoutargument}}{}{}
+ \pretocmd{\tableofcontents@YAD@with@argument}{\cleardoublepage\zlabel{tableofcontents-withargument}}{}{}
+ \pretocmd{\maketitle}{\zlabel{fr-title}}{}{}%
+ \pretocmd{\makedisclaimer}{\cleardoublepage\zlabel{disclaimer}}{}{}
+ \pretocmd{\makekeywords}{\cleardoublepage\zlabel{keywords}}{}{}
+ \pretocmd{\makelaboratory}{\cleardoublepage\zlabel{laboratory}}{}{}
+ \pretocmd{\makededications}{\cleardoublepage\zlabel{dedications}}{}{}
+ \pretocmd{\makefrontepigraphs}{\cleardoublepage\zlabel{frontepigraphs}}{}{}
+ \pretocmd{\acknowledgements}{\cleardoublepage\zlabel{acknowledgements}}{}{}
+ \pretocmd{\caution}{\cleardoublepage\zlabel{caution}}{}{}
+ \pretocmd{\makeabstract}{\cleardoublepage\zlabel{abstract}}{}{}
+ \pretocmd{\foreword}{\cleardoublepage\zlabel{foreword}}{}{}
+ \let\YAD@demo@chapter@ORI\chapter%
+ \RenewDocumentCommand\chapter{som}{%
+ \IfBooleanTF{#1}
+ {
+ \ifthenelse{\equal{#3}{Introduction g\IeC {\'e}n\IeC {\'e}rale}}{\cleardoublepage\zlabel{introduction}%
+ }{%
+ }%
+ \IfNoValueTF{#2}
+ {\YAD@demo@chapter@ORI*{#3}}
+ {\YAD@demo@chapter@ORI*[#2]{#3}}%
+ }
+ {%
+ \ifthenelse{\equal{#3}{Introduction g\IeC {\'e}n\IeC {\'e}rale}}{\cleardoublepage\zlabel{introduction}%
+ }{%
+ }%
+ \ifthenelse{\equal{#3}{Contexte du chaos du rire}}{\cleardoublepage\zlabel{chapter}%
+ }{%
+ }%
+ \ifthenelse{\equal{#3}{Documents juridiques}}{\cleardoublepage\zlabel{appendix}%
+ }{%
+ }%
+ \IfNoValueTF{#2}
+ {\YAD@demo@chapter@ORI{#3}}
+ {\YAD@demo@chapter@ORI[#2]{#3}}%
+ }
+ }
+ \ifcsdef{printglossary}{%
+ \LetLtxMacro{\YAD@printglossary@ORI}{\printglossary}
+ \renewcommand{\printglossary}[1][]{%
+ \ifthenelse{\isempty{#1}}{\cleardoublepage\zlabel{printglossary}%
+ }{%
+ }%
+ \YAD@printglossary@ORI[{#1}]%
+ }
+ \xpretocmd{\printacronyms}{\cleardoublepage\zlabel{printacronyms}}{}{}
+ \xpretocmd{\printsymbols}{\cleardoublepage\zlabel{printsymbols}}{}{}
+ }{%
+ }
+ \xpretocmd{\conclusion}{\cleardoublepage\zlabel{conclusion}}{}{}
+ \xpretocmd{\conclusion*}{\cleardoublepage\zlabel{conclusion}}{}{}
+ \xpretocmd{\printbibliography}{\cleardoublepage\zlabel{printbibliography}}{}{}
+ \xpretocmd{\printindex}{\cleardoublepage\zlabel{printindex}}{}{}
+ \xapptocmd{\makebackcover}{\zlabel{makebackcover}}{}{}
+ \let\include\input
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</demopkg>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*samples-templates-latexmkrc>
+% \end{macrocode}
+%
+% \begin{macrocode}
+$pdf_mode = 1;
+
+$bibtex_use = 1;
+$bibtex = 'biber %O %B';
+
+add_cus_dep('glo', 'gls', 0, 'makeglossaries');
+add_cus_dep('acn', 'acr', 0, 'makeglossaries');
+add_cus_dep('slo', 'sls', 0, 'makeglossaries');
+sub makeglossaries{
+ system( "makeglossaries \"$_[0]\"" );
+}
+
+$makeindex = 'texindy -L french';
+
+add_cus_dep('idx', 'ind', 0, 'texindy');
+sub texindy{
+ system("texindy -L french \"$_[0].idx\"");
+}
+
+push @generated_exts, 'acn', 'acr', 'alg', 'bbl', 'bcf', 'fls', 'gl*', 'idx',
+'ind', 'ist', 'sbl*', 'sl*', 'sym*' ;
+
+$clean_ext .= 'synctex.gz* run.xml tex.bak out bbl bcf fdb_latexmk run tdo listing *~ lo* unq mw' ;
+);
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</samples-templates-latexmkrc>
+% \end{macrocode}
+%
+% \Finale
+\endinput
+
+%%% Local Variables:
+%%% mode: tex
+%%% eval: (doctex-mode)
+%%% ispell-local-dictionary: "francais"
+%%% TeX-command-default: "TeX"
+%%% TeX-master: t
+%%% End: