Exemples complets de thèses LaTex avec bibliographie et table des matières par chapitre

L’objectif de cet article est de donner un exemple complet de structures de fichiers LaTeX pour la rédaction de thèses. Voici le cadre général :

  • Un document maître dans lequel sont inclus des fichiers contenant chacun un chapitre
  • Une table des matières générale
  • Une table des matières par chapitre
  • Une bibliographie numérotée automatiquement et ordonnée dans l’ordre d’apparition des références dans le texte.
  • La bibliographie sera par chapitre ou non suivant le choix

Noms des différents fichiers :

  • these.tex : le document maître
  • intro.tex : fichier contenant l’introduction
  • chap1.tex : fichier contenant le chapitre 1
  • chap2.tex : fichier contenant le chapitre 2
  • conclu.tex : fichier contenant la conclusion
  • annexe.tex : fichier contenant une annexe

Un des points crucial est de bien s’organiser. Une organisation possible est d’avoir dans un dossier l’ensemble des fichiers latex qui seront inclus dans le document maître ainsi qu’un dossier contenant l’ensemble des figures incluses dans la thèse.

Bibliographie en fin de manuscrit

On commence par le document maître : these.tex. Le document ci-dessous répond aux contraintes évoquées plus haut avec une unique bibliographie en fin de thèse.

\documentclass{book}
 
\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage{lipsum}
 
% permet de faire une table des matieres par chapitre
\usepackage[french]{minitoc}
 
% ajoute (entre autre) la bibliographie dans la table des matieres 
\usepackage[nottoc]{tocbibind}
 
% biblio ordonnee classique
\bibliographystyle{unsrt}
 
\title{Exemple de thèse \LaTeX{} qui se veut minimal}
\author{G. Vallverdu}
\date{\today}
 
\begin{document}
 
% le titre
\maketitle
 
% preparation des minitocs
\dominitoc
 
% table des matieres generale
\tableofcontents
 
% inclusion des chapitres
\include{intro}
 
\include{chap1}
 
\include{chap2}
 
\include{conclu}
 
\appendix
 
\include{annexe}
 
% bibliographie
\bibliography{allbiblio}
 
\end{document}

Voici les autres fichiers :

 
%
% contenu du fichier : intro.tex
%
\chapter*{Introduction}
% pour faire apparaitre l'introduction dans le sommaire et que les minitocs soient au bon
% endroit
\addstarredchapter{Introduction générale} 
 
% Pour que l'entete soit correcte car chapter* ne redefinit pas l'entete.
\markboth{INTRODUCTION}{}
 
\lipsum[22-26]
 
% 
% contenu du fichier : chap1.tex
%
\chapter{Premier chapitre}
 
\minitoc
 
\section{Citations}
 
Ici on cite un article de Dudarev\cite{Dudarev1998}, puis un sur 
Bader\cite{Henkelman2006} et un petit dernier\cite{Blochl1994}. 
Le tout pour tester la bibliographie.
 
\lipsum[6-8]
 
\section{Paragraphe}
 
\lipsum[9-12]
 
%
% contenu du fichier : chap2.tex
%
\chapter{Second chapitre}
 
\minitoc
 
\section{Citations}
 
On remet une petite couche de biblio\cite{Kresse1993}. Toujours pour voir si la
bibliographie est bonne\cite{Kresse1996}.
 
\lipsum[13-16]
 
\section{Texte}
 
\lipsum[17-21]
 
%
% contenu du fichier : conclu.tex
%
\chapter*{Conclusion}
% pour faire apparaitre l'introduction dans le sommaire
\addcontentsline{toc}{chapter}{Conclusion}
 
% Pour que l'entete soit correcte car chapter* ne redefinit pas l'entete.
\markboth{CONCLUSION}{}
 
\lipsum[22-25]
 
%
% contenu du fichier : annexe.tex
%
\chapter{Une annexe}
 
\lipsum[26-27]

Il manque le fichier allbiblio.bib qui contient les références :

%
% contenu du fichier : allbiblio.bib
%
@ARTICLE{Kresse1993,
  author = {Kresse, G. and Hafner, J.},
  title = {\textit{Ab initio} molecular dynamics for liquid metals},
  journal = {Phys. Rev. B},
  year = {1993},
  volume = {47},
  pages = {558--561},
  month = {Jan},
  issue = {1},
  publisher = {American Physical Society},
}
 
@ARTICLE{Blochl1994,
  author = {Bl\"ochl, P. E.},
  title = {Projector augmented-wave method},
  journal = {Phys. Rev. B},
  year = {1994},
  volume = {50},
  pages = {17953--17979},
  month = {Dec},
  issue = {24},
  publisher = {American Physical Society},
}
 
@ARTICLE{Dudarev1998,
  author = {Dudarev, S. L. and Botton, G. A. and Savrasov, S. Y. and Humphreys,
	C. J. and Sutton, A. P.},
  title = {Electron-energy-loss spectra and the structural stability of nickel
	oxide: An LSDA+U study},
  journal = {Phys. Rev. B},
  year = {1998},
  volume = {57},
  pages = {1505--1509},
  month = {Jan},
  issue = {3},
  publisher = {American Physical Society},
}
 
@ARTICLE{Henkelman2006,
  author = {Henkelman, G.a and Arnaldsson, A.b and Jonsson, H.b c},
  title = {A fast and robust algorithm for Bader decomposition of charge density},
  journal = {Computational Materials Science},
  year = {2006},
  volume = {36},
  pages = {354-360},
  number = {3},
  note = {cited By (since 1996) 559}
}
 
@ARTICLE{Kresse1996,
  author = {G. Kresse and J. Furthmüller},
  title = {Efficiency of ab-initio total energy calculations for metals and
	semiconductors using a plane-wave basis set},
  journal = {Computational Materials Science},
  year = {1996},
  volume = {6},
  pages = {15 - 50},
  number = {1},
}

Dernier point : la compilation. Elle peut se faire soit avec latex soit avec pdflatex en procédant de la façon suivante :

  1. (pdf)latex these.tex
  2. (pdf)latex these.tex
  3. bibtex these.aux
  4. (pdf)latex these.tex
  5. (pdf)latex these.tex

Il est nécessaire de compiler plusieurs fois le document avec latex ou pdflatex pour que la table des matières et les références soient bonnes. bibtex permet de générer la bibliographie. Le résultat :

these_simple.pdf

L’ensemble des fichiers :

these_simple.zip

Bibliographie par chapitre

Il existe plusieurs possibilités pour faire une bibliographie par chapitre. La plus simple et qui répond réellement aux attentes d’une bibliographie numérotée automatiquement dans l’ordre d’apparition des références dans le texte consiste à utiliser le paquet chapterbib. Le principe est de placer dans chaque document pour lesquels on veut une bibliographie, les commandes \bibliography et \bibliographystyle.

Le document maître est peu différent du précédent. Les commandes \bibliography et \bibliographystyle ont disparu et on ajoute \usepackage[sectionbib]{chapterbib}. L’option sectionbib permet de définir l’environnement bibliographie comme une section au lieu d’un chapitre ce qui est plus cohérent avec la classe book :

\documentclass{book}
 
\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage{lipsum}
 
% permet de faire une table des matieres par chapitre
\usepackage[french]{minitoc}
 
% bibliographie par chapitre :
%     * mettre \bibliography et \bibliographystyle dans chaque fichier inclu
\usepackage[sectionbib]{chapterbib}
 
\title{Exemple de thèse \LaTeX{} avec la bibliographie par chapitre qui se veut minimal}
\author{G. Vallverdu}
\date{\today}
 
\begin{document}
 
% le titre
\maketitle
 
% preparation des minitocs
\dominitoc
 
% table des matieres generale
\tableofcontents
 
% inclusion des chapitres
\include{intro}
 
\include{chap1}
 
\include{chap2}
 
\include{conclu}
 
\appendix
 
\include{annexe}
 
\end{document}

Voici les nouveaux fichiers chap1.tex et chap2.tex, les autres n’ont pas changé :

%
% contenu du fichier chap1.tex
%
\chapter{Premier chapitre}
 
\minitoc
 
\section{Citations}
 
Ici on cite un article de Dudarev\cite{Dudarev1998}, puis un sur 
Bader\cite{Henkelman2006} et un petit dernier\cite{Blochl1994}. 
Le tout pour tester la bibliographie par chapitre.
 
\lipsum[6-8]
 
\section{Paragraphe}
 
\lipsum[9-12]
 
% bibliographie pour chapterbib uniquement
\bibliographystyle{unsrt}
\bibliography{allbiblio}
 
%
% contenu du fichier chap2.tex
%
\chapter{Second chapitre}
 
\minitoc
 
\section{Citations}
 
On remet une petite couche de biblio\cite{Kresse1993}. Toujours pour voir si la
bibliographie est bien par chapitre\cite{Kresse1996}.
 
\lipsum[13-16]
 
\section{Texte}
 
\lipsum[17-21]
 
% bibliographie pour chapterbib uniquement
\bibliographystyle{unsrt}
\bibliography{allbiblio}

Le fichier allbiblio.bib est le même pour les deux chapitres et est identique à celui donné plus haut. Enfin la compilation. Comme précédemment il est possible de compiler avec latex ou pdflatex et il faut compiler plusieurs fois pour que les citations et les références soient bonnes. De plus, comme on a cette fois une bibliographie par chapitre, il faut exécuter bibtex pour chaque chapitre contenant une bibliographie :

  1. (pdf)latex these.tex
  2. (pdf)latex these.tex
  3. bibtex chap1.aux
  4. bibtex chap2.aux
  5. (pdf)latex these.tex
  6. (pdf)latex these.tex

Le résultat est le suivant :

these_chapterbib.pdf

L’ensemble des fichiers :

these_chapterbib.zip

Bonne rédaction !

Bibliographie par section

Suite aux commentaires, voici une bibliographie par section. Dans ce cas j’ai utilisé la classe article au lieu de book. Il ne faut pas oublier le principe de base de chapterbib qui est de créer une bibliographie chaque fois qu’un fichier tex est inclus via la commande include.

L’ensemble des fichiers :

chapterbib_section.zip

Entête LaTex pour les examens à l’UPPA : examenUPPA.sty

Ce paquet permet de créer facilement l’entête des sujets de contrôles continus ou d’examens de l’université de Pau et des pays de l’Adour. Il introduit deux commandes spéciales : \makeentete et \nomPrenomGroupe. La première permet de créer l’entête, la seconde permet de faire afficher la demande du nom du prénom et du groupe de l’étudiant directement sur le sujet.

Entête examen UPPA

Les fichiers tex et pdf ci-dessous contiennent un exemple d’utilisation du packages :

examenUPPA.sty : le package.

exemple_examenUPPA.tex : fichier exemple pour le paquet examenUPPA.sty

exemple_examenUPPA.pdf : fichier pdf obtenu à partir de exemple_examenUPPA.tex

Mes macros LaTex : mes_macros.sty

Ce paquet définit un ensemble de commandes qui sont de simples racourcis (énumération, vecteurs, opérateurs …) et d’autres plus complexes, principalement en lien avec la chimie quantique.

Paires libres dessinée avec mes_macros.stycases quantiques dessinée avec mes_macros.sty

Les commandes avancées de ce paquets permettent ou simplifient :

  • Le dessin de paires d’électrons
  • Le dessin de cases quantiques (OA, principe de hund)
  • Le dessin de diagramme d’orbitale moléculaire
  • L’écriture de configuration électronique (Z = 1 – 86)

Les dessins utilises Tikz. Des exemples sont disponibles dans le fichier tex et le fichier pdf ci-dessous.

mes_macros.sty

mes_macros.tex : fichier exemple pour le paquet mes_macros.sty

mes_macros.pdf : fichier pdf obtenu à partir de mes_macros.tex

Le fichier suivant est un script python qui affiche une configuration électronique pour un nombre d’électrons donné. Dans le paquet mes_macros.sty il y a une macro LaTeX du même genre, cependant elle est écrite sans aucune finesse. Si quelqu’un est capable de convertir mon script python en Tex je suis preneur !

configElec.py

Quelques paquets LaTeX utiles

Voici quelques paquets que j’utilise fréquemment. Les plus largement connus sont graphicx (pour les images), xcolor (gestion des couleurs), inputenc (pour l’encodage et les accents), fontenc (police), babel (langue du document) et les paquets des polices mathématiques (amsmath, amsfonts et amsfont). En voici d’autres que je trouve utiles et qui sont peut être moins connus :

  • geometry
    Mise en page du document : marge, entête, pied de page …
  • fancyhdr
    Comme son nom l’indique le paquet fancy header permet de modifier le style et le contenu des entêtes et des pieds de pages.
  • titlesec
    Ce paquet permet de modifier le style des différentes sections du document, de la table des matières ou encore de la liste des figures.
  • tabularx
    Une extension de l’environnement tabular qui permet de définir la largeur d’un tableau et de définir une colonne de type X dans laquelle le texte est dans un paragraphe dont la largeur est automatiquement ajustée de sorte que le tableau ait la largeur souhaitée.
  • gnuplottex
    Permet de créer un graphique en insérant des commandes gnuplot directement dans le fichier source latex, dans un environnement gnuplot.
  • animate
    Permet d’inclure des fichiers gif animés ou de créer des animations à partir d’un ensemble de fichiers images à la manière d’un dessin animé.
  • mhchem
    Un paquet permettant d’écrire de façon simplifié des formules brutes de molécules et des équations chimiques.
  • setspace
    Permet de gérer l’interligne.
  • xspace
    Ce paquet donne une commande permettant de gérer l’espace qui doit intervenir ou non à la suite de l’utilisation d’une macro.
  • textpos
    Un paquet qui permet de placer des boites de façon absolue sur une page.

Comment « installer » de nouveaux paquets LaTeX ?

Sous linux, quelque soit la distribution, on peut installer très simplement de nouveaux paquets (fichiers .sty) sans avoir besoin des droits administrateur. Par contre, ces nouveaux paquets ne seront pas accessible à tous les utilisateurs. Pour cela, dans votre dossier utilisateur (/home/votre_nom_utilisateur/) il faut créer un dossier texmf qui contient un dossier tex qui contient un dossier latex. Placer ensuite simplement vos nouveaux paquets dans le dossier /home/votre_nom_utilisateur/texmf/tex/latex/ ou dans un sous dossier de celui-ci et ils seront tout de suite utilisables.

En utilisant la ligne de commande, voici quelques commandes bash permettant d’ajouter le paquet mon_paquet.sty :

mkdir -pv $HOME/texmf/tex/latex
cp mon_paquet.py $HOME/texmf/tex/latex

D’autre part, lors de la compilation, latex cherche dans ces dossiers lorsqu’il essaye d’inclure des images ou tout autre type de fichier inclus dans le document. On peut donc également placer dans le dossier, ou un sous dossier de /home/votre_nom_utilisateur/texmf/tex/latex/ les images dont on se sert régulièrement, par exemple les logos.

Un thème beamer UPPA

Je met ici à disposition un thème beamer aux couleurs de l’université de Pau et des pays de l’Adour.

EDIT 21 septembre 2012 : J’ai allégé un peu le précédent thème, le nouveau s’appelle UPPAlight. La précédente version est disponible tout en bas.

theme beamer UPPA

Pour installer le thème, extraire le contenu de l’archive dans le dossier où vous placez tous vos paquets supplémentaires. Par exemple, sous linux, extraire l’archive dans ~/texmf/tex/latex/.

L’archive contient un dossier doc/ dans lequel vous trouverez un exemple de présentation utilisant le thème UPPA. Une fois installé, le thème s’utilise comme les autres thèmes beamer en ajoutant la ligne suivante dans le préhambule de votre document :
\usetheme{UPPA}

Pièces jointes :
themeUPPAlight.zip

exemple_beamer_themeUPPA.tex : fichier exemple

exemple_beamer_themeUPPA.pdf

Ancienne version du thème :
themeUPPA.zip