%------------------------------------------------------------------------------------
% J'ai créé ce fichier quand j'ai commencé à rédigé ma thèse d'informatique. C'est
% le "main" de ma thèse qui définit les options que j'ai voulu et qui inclut les
% autres sources .tex "sous-documents" qui composent les chapitres.

% Au fil de la rédaction, j'ai ajouté de plus en plus de packages LaTeX pour
% l'esthétique, la gestion des tableaux, la mise en page... bref tout en n'importe
% quoi. Comme j'ai quelquefois passé de  longues heures sur CTAN à chercher tel ou 
% tel package ou option, je livre ce fichier
 
% C'est un exemple qui peut servir à ceux qui veulent rédiger leur thèse avec
% LaTeX. Chaque fois que j'ai utilisé un package, fait ou copier/coller un script,
% j'ai tâché de le commenter pour une faciliter la réutilisation de cette source tex.

% Je suis l'auteur de tous les fichiers de ce modèle de thèse (sauf "these.bst")
% Le modèle est placé sous licence Creative Commons "by-nc-sa", voir fichier
% LICENCE.txt contenu dans le zip de distribution

% 							     Romuald THION
% 					romuald[dot]thion[at]univ-lyon1[dot]fr
%------------------------------------------------------------------------------------

%config dvi2ps
%-j0 -Ppdf -Pdownload35 -G0 -t letter -D 1200 -Z -mode ljfzzz -o '%S.ps' '%S.dvi'

\documentclass[a4paper,11pt]{book}%,12pt draft twoside
%style défaut Book
%------------------------------------------------------------------------------------


%aliases et defs
%------------------------------------------------------------------------------------
	\def\version{0.5}
	%version cf. historique de versions ds "preambule.tex"
	
% 	\input{./acronyms}
	%définitions des acronymes de la thèse

	\def\padding{\input{padding.txt}}
	%pour ajouter du texte Lorem ipsum
	
	\def\x{\ensuremath{\times}}
	\def\bul{\ensuremath{\bullet}}
	\def\cir{\ensuremath{\circ}}
	%un raccourci pour mettre des croix dans les tableaux
	
	\def\release{v.\version, r.\svnrev}
% 	\def\release{v.\version, r.\svnrev, \ddmmyydate\today{}  \currenttime }
	%alias de version détaillé

%------------------------------------------------------------------------------------


%langue & fontes
%------------------------------------------------------------------------------------
	\usepackage[frenchb]{babel}
	%francisation du document
	
	\usepackage[latin1]{inputenc}
	%encodage des fichiers prenant en compte les accents dans le texte (iso 8859 pour moi)
	
	\usepackage[T1]{fontenc}
	%encodage moderne des fontes
	
	\usepackage{aeguill}%défaut [lm]
	%pour avoir les guillemets français
	
	\usepackage{palatino}
	%fonte Adobe, + moderne que Computer Modern de Knuth

	\usepackage{mathpazo}
	%fonte math ``conjointe'' à palatino	

	\linespread{1.02} 
	%conseillé pour Palatino 1.05
	
% 	\usepackage{yfonts}
	%fonte des lettrines "gothiques" de début de chapitre		
%------------------------------------------------------------------------------------


%commandes de racourcis
%------------------------------------------------------------------------------------
	\newcommand{\mc}[3]{\multicolumn{#1}{#2}{#3}}
	%multicolumn pour les tables
	\newcommand{\mr}[3]{\multirow{#1}{#2}{#3}}
	%multirow pour les tables



% 	\newcommand{\note}[1]{\marginpar{\raggedright\footnotesize\hrule\smallskip#1\par\smallskip\hrule}}%
	\newcommand{\note}[1]{\marginpar[\raggedleft\footnotesize\itshape#1\par]{\raggedright\footnotesize\itshape#1\par}}%
% 	\newcommand{\note}[1]{\marginpar{\raggedright\footnotesize\itshape#1\par}}%
	%notes dans la marge 	
	
	\newcommand{\removenotes}{\renewcommand{\note}[1]{}}
	%permet de supprimer TOUTES les notes lors de la compilations
	
	\newcommand{\vertc}[1]{\rotatebox{90}{\textbf{#1}}}
	\newcommand{\vertcr}[1]{\rotatebox{-90}{\textbf{#1}}}
	\newcommand{\vertcn}[1]{\rotatebox{90}{#1}}
	%rotation de celulle pour les tableaux
%------------------------------------------------------------------------------------

%outils
%------------------------------------------------------------------------------------
	\usepackage{url}
	%hyperlinks

	\usepackage{xspace}
	%permet d'utiliser des espaces magiques qui disparaissent si suivis d'une ponctuation

	\usepackage[active]{srcltx}
	%pour la recherche inverse Kdvi <-> Kile
	
	\usepackage{moreverb}
	%environnement verbatimtab avec gestion des tabulations
	
	\usepackage{svnkw}
% 	\usepackage{svn-multi}
	%pour gestion svn dans source
	
	\svnid{$Id: MainThese.tex 401 2008-05-15 16:59:00Z rthion $}
	%le champs $Id: MainThese.tex 401 2008-05-15 16:59:00Z rthion $ est remplacé lors des commit de SVN
	
% 	\usepackage[light]{draftcopy} %bottomafter,firsttwo
	%option conditional pour supprimer ?
	%texte en trame de fond sur chaque page. N'apparait pas sur les dvi

	\usepackage{datetime}
	%pour pouvoir choisir le format de date	

% 	\draftcopyName{\release}{90}
	%texte en trame utilisant les champs svn fournis par svnkw		

	%\usepackage[french]{varioref}
	%pour les références de pages locale en francais "sur cette page ..."
%------------------------------------------------------------------------------------



%maths
%------------------------------------------------------------------------------------
	\usepackage{amsmath}
	\usepackage{amsthm}
	\usepackage{amssymb}
	%symboles de maths supplémentaires
	
	\DeclareMathOperator{\precprec}{ \prec\!\prec}
	\DeclareMathOperator{\succsucc}{ \succ\!\succ}
	%operateur custom avec retrait négatif entre \prec
	
	\theoremstyle{plain}% default
	
	\newtheorem*{thm}{Théorème}%[thm]
	\newtheorem*{prop}{Proposition}%[thm]
	\newtheorem*{defni}{Définition}
	%suppression de la numérotation et déclaration des environnements
	
	\usepackage[french,vlined,figure,boxed]{algorithm2e} 	
	%pour de "meilleurs" algos
%------------------------------------------------------------------------------------


%géometrie
%------------------------------------------------------------------------------------
	\overfullrule=5pt
	%met un carré noir dans la marge qd overfull box
	
	\usepackage[a4paper, hmarginratio=1:1]{geometry} %\geometry{ hmargin=3.5cm, vmargin=2cm }
	%gestion des marges
	
% 	\geometry{top=2cm, bottom=2.5cm, left=2cm, right=2.7cm}
	\geometry{marginparwidth=3cm}
	%ajuste la marge dans laquelle les notes sont écrites
% Docinsa
% 	#  marge gauche et droite de 2,5 cm
% 	# marge haute de 1,5 cm
% 	# marge basse de 2 cm

	\addtolength{\headheight}{2.3pt}
	%augmente la hauteur de la zone d'en-tête pour éviter les overfull boxes
	
	\parskip=5pt
	%set des marges avant §
%------------------------------------------------------------------------------------


%figures
%------------------------------------------------------------------------------------
	\usepackage{graphicx}
	%sortie dvi standard

	\usepackage{epsfig}
	%pour charger les figures eps dans subfigure ???
	
	\usepackage{subfigure}
	%figure multiples dans un flottant
	
	\usepackage{wrapfig}
	%figures flotantes encadrées par du texte, comme floatflt
%------------------------------------------------------------------------------------


%tableaux
%------------------------------------------------------------------------------------
	\usepackage{tabularx,lscape,longtable,booktabs}
	%dans l'ordre :
	%  - tableau avec définition de la largeur
	%  - tableau en mode paysage
	%  - tableau sur plusieurs pages
	%  - jolis traits (\toprule, \midrule, \bottomrule et \cmidrule(){})
	
	\usepackage{slashbox}
	%pour avoir une case séparée en deux diagonalement dans un tableau
	
	\usepackage{multirow}
	%multi ligne dans les tableaux

	\renewcommand{\multirowsetup}{\centering}
	%position par défaut du texte dans les mr
	
	\usepackage{rotating}
	%pour des rotations faciles de celulles ou autres
%------------------------------------------------------------------------------------

%TeX lui même ...
%------------------------------------------------------------------------------------
% 	\usepackage{microtype}
	%pour meilleur margin kerning ... c enorme

% 	\pretolerance 2000
	\tolerance = 400
	% A parameter that tells TeX how much badness is allowable without error. [number] can range from 0 to 10000, and there are no units.
	% \tolerance is often a good method for adjusting spacing; Plain TeX and LaTeX both set its value to 200. LaTeX's \sloppy command sets it to 9999, as does the sloppypar environment.

	\hyphenpenalty=50
	% limite les erreurs lors de césure d'un mot accentué

	\hbadness = 1500
	% A parameter that tells TeX at what point to report badness errors (i.e. underfull and overfull error). [number] ranges from 0 to 10000.

	\hfuzz 0pt
	% A parameter that allows hbox's to be overfull by [length] before an overfull error occurs.	
	
 	\emergencystretch 1em %\emergencystretch 1.5em
	%The choice of method has time implications - each of the passes takes time, so adding a pass (by changing \emergencystretch) is less desirable than suppressing one (by changing \pretolerance). However, it's unusual nowadays to find a computer that's slow enough that the extra passes are really troublesome.
	
	\clubpenalty=9999
	\widowpenalty=9999
% 	\widowpenalty=10000
	\vfuzz \hfuzz
	\raggedbottom
	%configuration de la césure
%------------------------------------------------------------------------------------

%esthétique
%------------------------------------------------------------------------------------
% 	\usepackage{setspace}
	%gestion de l'interligne, pour corrections
% 	\singlespacing \onehalfspacing et \doublespacing sont a placé dans le préambule.
% 	\setstrech{facteur} permet d'obtenir d'autres interlignages.


	\usepackage{lettrine}
	%lettrine de début de chapitre. 

% 	\usepackage{soul}
	%accès à l'interlettrage
	
% 	\renewcommand \thesection{\arabic{section}}
%  	\renewcommand \thesubsection{\thesection.\arabic{subsection}}
	%évite le préfixe avec le numéro de chapitre pour chaque section

% 	\renewcommand \thechapter{\Roman{chapter}}
	%numérotation des chapitres en romain
	
	\usepackage[usenames]{color}
	\usepackage[table]{xcolor}
	%package de couleur
	
	\definecolor{gris10}{rgb}{0.75,0.75,0.75}
	\definecolor{gris60}{rgb}{0.60,0.60,0.60}
	\definecolor{gris80}{rgb}{0.40,0.40,0.40}				
	%pour les tableaux colorés en fond gris
	
	\usepackage[usenames,dvipsnames]{pstricks}
	\usepackage{pst-grad} % For gradients
	\usepackage{pst-plot} % For axes
	%génial package pour faire des figure. utiliser LaTeXDraw

	\usepackage[helvetica]{quotchap} %helvetica en \arabic, newcentury ou times en \Roman, utopia
	%pour les citations au début de chaque chapitre et la numérotaion fancy
	%permet d'inclure des citations les options sont :
	%	charter, palatino, avantgarde, bookman, courier, helvetica, newcentury, times et utopia

	\makeatletter\def\@seccntformat#1{\protect\makebox[0pt][r]{\csname the#1\endcsname\hspace{12pt}}}\makeatother
% 	\makeatletter\def\@seccntformat#1{\protect\makebox[0pt][r]{\csname the#1\endcsname\hspace{12pt}}}\makeatother
	%numérotation section ds la marge

% 	\usepackage{sectsty}
% 	\allsectionsfont{\sffamily}
	%redéfinition du formattage du sectioning

	\usepackage{titlesec}	
	%redéfinition du formattage du sectioning

	\titleformat{\paragraph}[hang]
		{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
	\titlespacing*{\paragraph} {0pt}{1ex plus 1ex minus .2ex}{0pt}
	%redefinition des titres de paragraphe	
	
	\usepackage{fancyhdr}
	\pagestyle{fancyplain}
	%définition des headers et footers fancy
	
	\renewcommand{\chaptermark}[1]{\markboth{Chapitre \thechapter.\ #1}{}}
	\renewcommand{\sectionmark}[1]{\markright{Section \thesection.\ #1}}
	%redéfinition du texte de chapitre et de section affiché en en-tête
	
	\lhead[\fancyplain{}{\bfseries\thepage}] {\fancyplain{}{\bfseries\rightmark}}
	\rhead[\fancyplain{}{\bfseries\leftmark}] {\fancyplain{}{\bfseries\thepage}}
	\cfoot{}
	%définition de l'en-tête et du pied de page
	
	\let\origdoublepage\cleardoublepage
	\newcommand{\clearemptydoublepage}{%
	\clearpage
	{\pagestyle{empty}\origdoublepage}%
	}
	\let\cleardoublepage\clearemptydoublepage 
	%pas d'en-tête sur les pages blanches : redef de \cleardoublepage
%------------------------------------------------------------------------------------


%gestion des index, des tables et listes
%------------------------------------------------------------------------------------
	%\usepackage{showkeys}
	%mise au point : pour afficher les index des références biblio lors de \cite	
	
	\usepackage[a4paper,ps2pdf,linktocpage,bookmarksnumbered,pagebackref]{hyperref}
	%hyperlien dans le texte sur les reférences et citations
	
	
% 	\usepackage{makeidx}
	%\usepackage{showidx}
%  	\makeindex
	%gestion d'index cf. http://www.tuteurs.ens.fr/logiciels/latex/makeindex.html
	%config dans indexConfig.ist, cf. option du project, appel de makeIndex
	%ex : \index{controle d'acces@contrôle d'accès!definition@définition}
	%ex : \index{autorisation|see{controle d'acces}}

	\usepackage[subfigure]{tocloft}%option subfigure à ajouter qd utilisation conjointe ,titles titles
	%pour formatter la table des matières et permettre la définition de liste "custom". cf. environnement exemple
	%par défaut, le style proposé permet de réduire l'espace pris par les tables


	\usepackage[section,notlof,notlot,notbib]{tocbibind}%nottoc 
	%pour que la tables des matières, listes de figures, tableaux et biblio soient présent dans la tables des matière. Evite le addtocontent
		
	\setcounter{secnumdepth}{3}
	% profondeur des sections numérotées 3: subsubsection	
	
	\setcounter{tocdepth}{1}
	% Visibles dans la table des matieres 3: subsubsection
	% réduire à 2 en release
%------------------------------------------------------------------------------------


%gestions des environnements et listes custom
%------------------------------------------------------------------------------------
	\usepackage{float}
	%pour déclarer ses propres flottants
 
 	\floatstyle{ruled}
	%\floatstyle{plaintop}%boxed,ruled,plain,plaintop
	\newfloat{floexample}{thpb}{loe}[chapter]
	\floatname{floexample}{Exemple}

% 	\newcommand{\listexamplesname}{Liste des exemples}
% 	\newlistof[chapter]{examples}{exe}{\listexamplesname}
	%nvlle liste des exemples, comme tables des matières ou liste des tableaux

	\newcommand{\listdefinitionsname}{Liste des définitions}
	\newlistof[chapter]{definitions}{def}{\listdefinitionsname}
	%nvlle liste des définitions : utilise tocloft
%------------------------------------------------------------------------------------


%formattage de la table des matières avec tocloft
%------------------------------------------------------------------------------------
	\setlength{\cftchapnumwidth}{2em} 	%soucis pour numérotation romaine exemple VI qui produit overfull
	\setlength{\cftbeforechapskip}{2ex} 	%réduit l'espacement
	\setlength{\cftbeforesecskip}{0.5ex} 	%réduit l'espacement
% 	\cftpagenumbersoff{chapter}		%pas de numéro de page pour les chapitres

	\setlength{\cftdefinitionsindent}{1.5em}
	\setlength{\cftdefinitionsnumwidth}{2.3em}
%------------------------------------------------------------------------------------

%gestion des minitocs
%------------------------------------------------------------------------------------
	\usepackage[french,nohints]{minitoc}%
% 	%pour table des matières de chaque chapitre. hyperref doit être chargé AVANT minitoc
% 	%utiliser \adjustmtc pour corriger le bug des chapter*
% 
	\mtcsettitle{minitoc}{Plan du chapitre}
% 	%change le titre des minitocs
% 
	\mtcsetfeature{minitoc}{after}{\clearpage}
% 	%définition d'action à faire
% 
	\mtcsetdepth{minitoc}{2}
% 	%ajuste la profondeur des minitocs
%------------------------------------------------------------------------------------

%environnements personnalisés
%------------------------------------------------------------------------------------
 	\newenvironment{defn}[1]
	%encapsulation de l'env théorème defni
	{	
		\begin{defni}[#1]
		{
			\refstepcounter{definitions}
		}
		{
			\addcontentsline{def}{definitions}{\protect\numberline{\thedefinitions}{#1}}
		}  
	}
	{
		\end{defni}		
	}	

	\newenvironment{exemple}[1]
	%def de l'environnement "exemple" qui encadre la description d'un exemple et numérote par chapitre
	{	\begin{floexample}
		\begin{center}
		\begin{minipage}{.9\textwidth}
		\caption{\sffamily #1} \sffamily \small \medskip	
	}%à l'ouverture \begin
	{	\end{minipage}
		\end{center}    
		\end{floexample}
	}%à la fermeture \end

\newenvironment{myQuote}
	{	\begin{quote} % 		\hspace{-5pt}
		\itshape		
	}%à l'ouverture \begin
	{
		\end{quote}%\par				
	}%à la fermeture \end


\newenvironment{resume}
	{	%\textsc{Résumé}
% 		\itshape \small
		\vfill \itshape \small %\sffamily
		$\vartriangleright$}
	{	$\vartriangleleft$ \par \vfill
		\clearpage
		\minitoc}
%------------------------------------------------------------------------------------


% Infos spécifiques aux pdfs
%------------------------------------------------------------------------------------
		\hypersetup{
				pdfauthor   = {Jacques DARROUIN},%
				pdftitle    = {Thèse de doctorat en informatique},%
				pdfsubject  = {Cosmologie des choux bigarrés},%
				pdfkeywords = {Base de données, logique, choux},%
		}	
%------------------------------------------------------------------------------------



\begin{document}
%Directives générales
%------------------------------------------------------------------------------------
	%\sloppy
	%\fussy
	
	\removenotes 
	%pour supprimer les notes (cf. commandes)
%------------------------------------------------------------------------------------

%Page de garde
%------------------------------------------------------------------------------------
	%\maketitle
	%calcul de la page de garde, inutile si environnement titlepage utilisé

\newcommand{\hr}{\textcolor{gris80}{\rule{\linewidth}{0.5pt}}}
\newcommand{\vertspace}{\vspace{4pt}}

\begin{titlepage}

		
	\sffamily \scshape \centering \Huge

	\vfill

	\textcolor{gris80}{Th\`ese}
	\vfill
	\hr

	\vfill
	Cosmologie des choux bigarrés


	

	Du big bang au bling bling

	
	\vfill
	\hr
	\vfill

	 \upshape 
	\textcolor{gris80}{Jacques \textsc{Darrouin}}

	\vfill \vfill
	
	\end{titlepage}
%------------------------------------------------------------------------------------

%dédicace
%------------------------------------------------------------------------------------
	\cleardoublepage
	\thispagestyle{empty}
	%page blanche
	\begin{flushright}
		\large\em\null\vfill
		\`A qui de droit\vfill\vfill
		%emphaze large au 1/3 de la page
	\end{flushright}
	\cleardoublepage
	%imprimé sur une page de droite
%------------------------------------------------------------------------------------


\frontmatter
%page numérotées en latin

%calcul de la tables des matières et de listes
%------------------------------------------------------------------------------------
	\include{./preambule/preambule}
	%remerciements, résumé etc...
	
 	\dominitoc
	%pour lancer le calcul des minitocs

	\cleardoublepage
	\tableofcontents
	\cleardoublepage
	%table des matières

	\listoffigures
 	\cleardoublepage
	%liste des figures

	\listoftables
	\cleardoublepage
	%liste des tableaux

% 	\addcontentsline{toc}{section}{\listdefinitionsname}	
 	\listofdefinitions	
	\cleardoublepage
	
% 	\listof{floexample}{Liste des exemples}
	%liste des exemples construite par le package float
%------------------------------------------------------------------------------------


\mainmatter
%corps du document, numérotation en arabe
%------------------------------------------------------------------------------------	
	\adjustmtc
	%pour géré pb du chapter* avec minitoc

	\include{./chapitre1/chap1}
	%introduction

	\include{./chapitre2/chap2}
	%etat de l'art
	
	\include{./chapitre3/chap3}
	%background
	
	\include{./chapitre4/chap4}
	%proposition

	\include{./chapitre5/chap5}
	%application et résultats

	\include{./chapitre6/chap6}
	%conclusion, dicussion et perspectives
%------------------------------------------------------------------------------------

\appendix
%annexes
%------------------------------------------------------------------------------------
	\renewcommand{\chaptermark}[1]{\markboth{Annexe \thechapter.\ #1}{}}
	%change l'affichage de l'en-tête pour les annexes

	\include{./annexes/annexeA}
	%préliminaires au cadre théorique

%------------------------------------------------------------------------------------


\backmatter
%bonus, toujours numérotés en arabe
%------------------------------------------------------------------------------------
	%\nocite{*}
	%pour citer TOUT le .bib	
	
	\bibliographystyle{these} %unsrt
	%fichier these.bst qui formatte en [Abiteboul95] contre [AVH95] en alpha pour Serge Abiteboul, Richard Hull & Victor Vianu

	\cleardoublepage	
	\bibliography{./biblio/bibliographie}
	\addcontentsline{toc}{chapter}{Bibliographie}	
	%séparer les articles des confs, pour éviter bug bibtex ?
%------------------------------------------------------------------------------------


%------------------------------------------------------------------------------------
% 	\printindex
	%affichage de l'index
%------------------------------------------------------------------------------------

\end{document}
