Format de thèse en LaTeX pour l'Université de Montréal

Dernière mise à jour: 18 août 2010

Cette page contient une variante du modèle de thèse en LaTeX de Anne Broadbent. Ce modèle, ainsi que son prédécesseur élaboré par Pierre Carrier, souffrait de plusieurs défauts dont l'incompatibilité avec l'extension hyperref et la difficulté de générer une bibliographie complètement francophone. La variante disponible sur cette page est compatible avec la version précédente et résoud ces problèmes.

Éventuellement, il est à prévoir que les extensions que je propose seront intégrées au modèle d'Anne Broadbent. En attendant, si vous utilisez ma variante, n'hésitez pas à me me contacter en cas de problèmes.

Version française Version anglaise
UdeMFR.zip UdeMEN.zip

Configuration requise

Une distribution de TeX/LaTeX est nécessaire pour utiliser le style de thèse fourni sur cette page. Sous Linux, une telle distribution est souvent déjà installée par défaut et se nomme TeX Live ou te-TeX.

Dans le cas de Windows, il faudra télécharger et installer une distribution, par exemple MikTeX. Le système proTeXt, qui inclut MikTeX, permet de simplifier l'installation de LaTeX sous Windows.

Sous Mac OS X, Intel ou PowerPC, il y a MacTeX; voir cette page pour des instructions d'installation simples.

Parfois, certaines tâches décrites sur cette page demandent des outils étendant LaTeX standard. Sauf indication contraire, ces outils sont désormais tous intégrés aux versions les plus récentes des deux distributions majeures de LaTeX. Si ces extensions ne sont pas disponibles sous votre distribution de TeX/LaTeX, il est heureusement possible de les télécharger et de les installer séparément. Voir pour cela les sites Web des extensions concernées.

Note: j'ai été informé de plusieurs problèmes avec le style de thèse pour lesquels je n'ai pu trouver aucune autre explication que la diversité des versions de LaTeX. Tester le style avec toutes les versions de toutes les distributions de TeX/LaTeX serait beaucoup trop long, en plus que je ne dispose pas de toutes ces versions sur ma machine. En cas de problème, une solution possible consiste alors à tester avec une autre distribution de TeX/LaTeX, la plus récente possible.

Ce style a été testé principalement avec TeX Live sous la distribution GNU/Linux Ubuntu, mais il fonctionne aussi avec te-TeX sous Fedora 7.

Installation du style

Il suffit de télécharger le fichier ZIP correspondant à votre préférence linguistique et le décompresser dans un répertoire vide. Le fichier principal est These.tex et contient un modèle de thèse. Comme l'extension Hyperref fonctionne, il est possible d'entrer le nom de l'auteur, le titre et les mots-clés dans les méta-données du fichier PDF. L'utilisation de \hypersetup permet d'écrire des caractères accentués dans ces titres, contrairement au passage direct d'options à l'extension hyperref.

Si votre thèse est déjà écrite avec la version précédente du modèle, vous pouvez copier les fichiers udem_these.sty, udethese_fr.sty et frplainnat.bst dans le répertoire de votre thèse et remplacer \usepackage{udem_these} par \usepackage{udem_these_fr}. Si vous utilisez BibTeX, vous pouvez ensuite remplacer \bibliographystyle{plain} par \bibliographystyle{frplainnat}.

Pour une thèse en anglais, remplacez udem_these_fr par udem_these_eng dans les instructions précédentes et utilisez le style BibTeX plainnat plutôt que frplainnat.

Compilation de la thèse en LaTeX

Habituellement, vous chercherez à produire un fichier PDF à partir de votre document LaTeX afin de l'imprimer ou de la publier sur une page Web. La procédure la plus simple est d'appeler pdflatex These, bibtex These puis pdflatex These deux autres fois. C'est de cette façon qu'il est possible d'obtenir les PDF de meilleure qualité. Malheureusement, il peut être difficile d'intégrer des diagrammes, schémas, graphiques et autres figures à un document LaTeX ainsi traité.

La procédure classique consiste à appeler latex au lieu de pdflatex. Il en résulte un fichier au format DVI plutôt que PDF. Ce fichier DVI doit être converti en fichier PostScript par une commande de la forme suivante: dvips -Ppdf -t letter -o These.ps These.dvi. L'option -Ppdf est cruciale, car elle assure que le fichier PostScript contient des fontes vectorielles plutôt que bitmap. Si le fichier PostScript contient des fontes bitmaps, ces dernières ne seront pas correctement affichées à l'écran; seul le fichier imprimé sera facilement lisible. L'option -t letter permet de contourner un bogue dans certaines versions de DVIPS qui change le format du papier pour du A4, ce qui crée un décalage inacceptable de tout le texte.

Ensuite, le fichier PostScript peut être converti en format PDF avec ps2pdf14 These.ps These.pdf sous Linux. Sous Windows, il faudra utiliser GSView. Dans tous les cas, il est aussi possible de convertir un PostScript en PDF grâce à Adobe Distiller.

Un désavantage important de la technique classique, passant par le format DVI puis PostScript, est que les hyperliens créés par l'extension Hyperref doivent tenir sur une seule ligne. L'extension créant un tel hyperlien pour chaque titre de section apparaissant dans la table des matières et chaque libellé apparaissant dans les listes de figures et de tableaux, aucun de ces titres ne doit prendre plus d'une ligne. Pour contourner ce problème, il faut choisir entre utiliser des titres courts, employer pdflatex au lieu de latex ou renoncer à l'extension Hyperref.

Passage à UTF-8

Par défaut, les logiciels sur bon nombre de machines UNIX/Linux produisent des fichiers dans l'encodage UTF-8. Cela inclut les ordinateurs du Département d'Informatique et de Recherche Opérationnelle de l'Université de Montréal ainsi que toute machine utilisant les distributions Red Hat 9, Fedora Core et probablement d'autres distributions. Sous Windows, ce problème pourrait aussi survenir avec certains logiciels si bien qu'il est important de vérifier. Une mauvaise configuration de l'encodage pourrait affecter tous les caractèes accentués d'un ouvrage.

Par défaut, LaTeX n'est pas configuré pour lire l'encodage UTF-8. Il considérera plutôt l'encodage ISO Latin 1. UTF-8 est une version 8 bits d'Unicode qui permet d'encoder les caractères de la plupart des alphabets utilisés dans le monde. L'encodage Latin 1, quant à lui, ne supporte que les langues latines comme le Français, l'Anglais, l'Espagnol, etc.

Si vous écrivez des accents directement, sans utiliser les séquences de commandes de TeX/LaTeX, vous devez veiller à indiquer le bon encodage et vérifier que les accents sont produits correctement à l'impression. La méthode pour spécifier ou changer l'encodage dépend malheureusement de l'éditeur de texte utilisé. Il est aussi important de vous assurer que tous les fichiers LaTeX d'un ouvrage soient dans le même encodage. Si l'environnement logiciel change au cours de la rédaction (mise à jour de l'éditeur de texte ou du système d'exploitation, par exemple), il est facile de se retrouver avec des fichiers encodés en ISO Latin 1 et d'autres fichiers en UTF-8.

Il est donc important de choisir entre UTF-8 et Latin 1 dès le départ, mais des outils permettent de passer de l'un à l'autre en cas de besoin. Sous Linux, il y a la commande Recode et l'éditeur de texte Emacs. Sous Windows, il n'y a aucun outil intégré de conversion, mais bon nombre d'éditeurs de texte disposent de l'option nécessaire. Si vous optez pour UTF-8, il faudra, dans le préambule, charger l'extension inputenc avec l'option utf8. Dans le cas d'un changement d'encodage, il peut être nécessaire de supprimer les fichiers auxiliaires (.aux, .toc, .out, .bbl, etc.) pour permettre de nouveau la compilation du document.

Bien entendu, la solution la plus simple (mais la moins conviviale) est d'utiliser du ASCII pur. Pour encoder un accent dans ce cas, il faut alors utiliser des séquences de contrôle de TeX/LaTeX. Par exemple, \'e permet de formater é, \`u permet d'écrire ù, \"\i produit ï, \c{C} donne Ç, \^a permet d'obtenir â, etc. Les fichiers ASCII résultant de ce travail additionnel ont l'intérêt de pouvoir s'échanger plus simplement entre utilisateurs.

Malheureusement, le support de UTF-8 est loin d'être parfait sous LaTeX. Bien que je n'aie pas expérimenté moi-même ces difficultés, il arrive que les caractères ne soient pas rendus correctement dans la table des matières lorsque des symboles Unicode apparaissent dans les titres de chapitre ou de section. La solution la plus simple à ce problème consiste à utiliser des séquences de contrôle pour les caractères accentués dans les titres. Une autre solution est d'inclure la commande \PrerenderUnicode dans le préambule, mais elle ne fonctionne pas sous te-TeX puisque cette commande n'est pas définie. Par exemple, si les titres contiennent les caractères é, à et ê, il faudra écrire \PrerenderUnicode{éàê} dans le préambule.

L'extension Listings, pour formater des programmes, est quant à elle totalement incompatible avec UTF-8: sitôt qu'elle trouve des caractères accentués dans un programme, elle affiche des messages d'erreur. Je n'ai pu trouver aucun autre contournement que reconvertir tout le manuscrit en Latin 1 ou omettre les accents dans les programmes. C'est très dommage, car Listings est sans doute le meilleur système, voire le seul système viable, de formatage de programmes disponible sous LaTeX. Il faudra sans doute attendre une version complètement Unicode de TeX, par exemple Omega TeX, pour enfin avoir une compatibilité parfaite avec UTF-8.

Problèmes avec Hyperref

De nombreuses difficultés ont été rapportées avec l'extension Hyperref permettant d'ajouter des attributs interactifs au fichier PDF produit à partir de LaTeX. En cas de problème de compilation, la solution la plus simple consiste à commenter, dans These.tex, la ligne chargeant l'extension avec la commande \usepackage. Cette solution est acceptable pour un manuscrit destiné uniquement à être imprimé. Par contre, elle n'est pas très intéressante dans le cas où le manuscrit est publié sur un site Internet.

Pour minimiser la quantité de problèmes liés à Hyperref, il vaut mieux charger l'extension après toutes les autres extensions utilisées. En effet, Hyperref redéfinit plusieurs commandes, engendrant des incompatibilités.

Personnalisation du style

Parfois, il peut être nécessaire de personnaliser le style de la thèse. La variante que je propose sur cette page facilite cette personnalisation, car beaucoup de redondances dans les définitions de macros ont été éliminées et beaucoup de commentaires ont été ajoutés. Je vais traiter ici des personnalisations les plus importantes.

Il faut toutefois garder en mémoire que certaines personnalisations pourraient être interdites par les normes de présentation de la FES. Il est donc important de vérifier que l'ouvrage final se conforme bien aux normes.

Malheureusement, trouver comment appliquer des personnalisations sous LaTeX est très difficile, car il n'y a aucune documentation facilement accessible, du moins pas sous la distribution TeX Live désormais incluse avec la distribution de Linux Ubuntu. Souvent, il est plus rapide de consulter les fichiers source de LaTeX pour trouver une solution, mais même l'emplacement de ces fichiers, sous Ubuntu, est devenu très difficile à trouver depuis le passage de te-TeX à TeX Live.

Utilisation du style bibliographique auteur-année

Le nouveau modèle de thèse utilise NatBib pour la gestion des références bibliographiques. NatBib étant compatible avec Hyperref, les références bibliographiques seront des hyperliens vers la bibliographie. Pour obtenir des références complètement francophones, j'ai adapté le style bibliographique plainnat.bst qui est alors devenu frplainnat.bst. Par défaut, le modèle se comporte comme si l'extension cite avait été utilisée (comme dans la version précédente): les références bibliographiques sont triées et les références consécutives sont compressées (par exemple, [1--4] plutôt que [1, 2, 3, 4]). Il est possible d'altérer ce comportement en modifiant les premières lignes de udem_these.sty.

Retirer l'option sort&compress de natbib permet au style de se comporter comme si l'extension cite n'était pas utilisée. Pour passer en mode auteur-année, il suffit de remplacer la déclaration bibpunct par une ligne de la forme suivante:

\bibpunct{(}{)}{,}{a}{,}{,~}

En mode auteur-année, NatBib propose des variantes de la commande \cite permettant d'omettre ou d'afficher les parenthèses dans les noms d'auteurs. Voir la documentation de NatBib, intégrée à toute distribution de TeX/LaTeX, pour plus d'informations.

Modification de la fonte

Par défaut, le fichier These.tex active la fonte Times qui est beaucoup utilisée en publication. Malheureusement, les versions gratuites de LaTeX ne disposent pas d'une fonte mathématique MathTimes complète. L'extension mathptmx est utilisée pour émuler la fonte commerciale MathTimes, mais la solution n'est pas parfaite. Parfois, des symboles mathématiques peuvent ne pas s'afficher correctement. Pour un mémoire ou une thèse comportant un grand nombre de formules mathématiques, il peut être long de vérifier tous les symboles. Pour éviter ce problème, il est possible d'utiliser la fonte Computer Modern de TeX/LaTeX plutôt que la fonte Times.

Pour ce faire, vous devez commenter les lignes chargeant les extensions times et mathptmx et charger les extensions ae, aecompl et aeguill. Ces extensions permettent le support de la fonte EC qui est une extension de la fonte Computer Modern pour l'encodage T1. L'encodage T1, chargé par l'extension fontenc, permet les coupures de mots avec des caractères accentués.

Changement de la règle de pagination des annexes

Une thèse ou un mémoire est composé de L pages liminaires, N pages de corps et A pages d'annexes. Par défaut, le modèle pagine les annexes en chiffres romains et commence la numérotation à L+1. Pour éviter d'avoir à changer un compteur à la main pour obtenir ce résultat, comme il fallait le faire dans la version précédente du modèle, j'ai simplement modifié la macro \debutchapitres afin qu'elle mémorise la page courante dans un compteur et récupère cette valeur dans la macro \debutannexes.

Ce comportement peut être redéfini en altérant la macro \debutannexes dans udem_these.sty. Par exemple, supprimer les déclarations suivantes permet de numéroter les annexes en chiffres arabes, en commençant à N+1.

\pagenumbering{roman}
\setcounter{page}{\value{lastromanpg}}

Modification des chaînes de caractères

Plusieurs chaînes de caractères sont générées pendant le formatage d'une thèse ou d'un mémoire: le libellé des tables et des listes et différents mots tels que Chapitre, Figure, etc. La valeur de ces chaînes est définie dans l'extension udem_these_fr.sty pour un ouvrage en français et dans udem_these_eng.sty pour un ouvrage en anglais. Notez que ces extensions chargent l'extension de base udem_these.sty. Ces fichiers peuvent être personnalisés afin de s'adapter aux besoins. Dans le fichier français, la redéfinition de la macro captionsfrench est nécessaire pour éviter que Babel affiche Fig et Tab au lieu de Figure et Tableau dans les libellés de flottants.

Ajout d'une liste de codes source

En informatique, il est souvent utile d'intégrer des codes source dans un ouvrage: exemples de programmes utilisant une bibliothèque, algorithmes proposés pour résoudre un problème donné, etc. L'utilisation de figures est certes possible, mais il arrive parfois que le code source déborde, nécessitant plusieurs pages. La création de figures successives nécessite beaucoup de travail et encombre la liste des figures. Une excellente solution consiste à utiliser l'extension listings qui permet le formatage de codes source, avec coloration syntaxique. J'ai ajouté au modèle de thèse une macro du nom de listedeslistings qui permet de générer une nouvelle page liminaire contenant une liste des codes source. J'ai choisi de placer cette liste qui n'a pas été prévue par la FES entre la liste des figures et celle des annexes.

Éviter l'utilisation du PostScript

Dans certains cas, notamment lorsque des diagrammes, images ou graphiques sont nécessaires dans un ouvrage, il peut être difficile d'incorporer les figures dans le manuscrit en LaTeX. Souvent, la seule solution est de convertir la figure en fichier PostScript tandis que PDFLaTeX ne peut traiter ce format. Il faut alors produire le fichier PDF à partir d'un fichier PostScript lui-même obtenu d'un fichier DVI. Il est très avantageux d'utiliser PDFLaTeX, car la création des fichiers PDF est plus efficace avec ce programme: compilation directe, meilleur support des hyperliens, etc. Il faut aussi mentionner que les logiciels de revue d'écran tels que AiSquared ZoomText se comportent mieux avec un PDF issu de PDFLaTeX qu'un fichier PostScript converti, ce qui signifie une accessibilité accrue. Pour un manuscrit publié sur un site Internet, c'est un atout précieux, voire crucial dans certains cas. Malheureusement, aucune approche ne produit pour le moment un fichier PDF balisé (le nec plus ultra en matière d'accessibilité) à partir d'un manuscrit LaTeX.

Formatage de diagrammes en LaTeX

La meilleure solution pour le formatage de diagrammes divers sous LaTeX est sans doute PSTricks. Cette formidable extension permet de tirer parti de toute la puissance du langage PostScript pour formater des points, des lignes, des courbes, des formes complexes et même des diagrammes tels que des automates, des arbres, etc. PSTricks a malheureusement un inconvénient majeur: il est incompatible avec PDFLaTeX.

PGF, du projet LaTeX Beamer, est un substitut intéressant à PSTricks, car il supporte PDFLaTeX en plus de DVIPS. Ses possibilités sont plus limitées que celles de PSTricks, mais il pourrait suffire pour bon nombre de diagrammes. Beamer, quant à lui, est un outil permettant de construire des supports pour présentations avec LaTeX. Les présentations produites par Beamer rivalisent avec le formatage visuel produit avec PowerPoint, avec en plus la possibilité de formater des équations mathématiques sans difficulté.

Importation de diagrammes sous LaTeX

Souvent, les outils intégrés de LaTeX ne suffisent pas pour construire des figures complexes. La création de schémas avec PGF peut être ardue et il est difficile de formater des graphiques. Il devient ainsi nécessaire, à divers moments, d'intégrer des résultats de GNU Plot, R ou d'autres logiciels dans un ouvrage écrit en LaTeX.

L'importation d'images sous LaTeX est effectuée avec l'extension graphics ou graphicx. Malheureusement, selon l'approche de compilation utilisée, les fichiers qui peuvent être importés diffèrent. Si latex est utilisé, le format EPS (Encapsulated PostScript) est sans doute la seule option. Avec PDFLaTeX, il est possible d'importer des fichiers PDF, PNG ou JPEG.

Si vous créez des diagrammes avec d'autres logiciels, exporter en PNG ou en JPEG n'est généralement pas une bonne idée, car ce format est bitmap. Il en résulte un plus gros fichier PDF et le diagramme peut paraître flou à l'écran ou à l'impression. Il vaut mieux utiliser un format vectoriel tel que PostScript ou PDF, car il permet en plus à l'utilisateur lisant l'ouvrage depuis un ordinateur de zoomer sur les images sans perte de qualité. L'utilitaire epstopdf peut être employé pour convertir des fichiers PostScript ou EPS en PDF.

Une autre solution pour générer des images pour LaTeX consiste à utiliser des programmes Java. La bibliothèque Java iText permet de produire des fichiers PDF pouvant être importés sous LaTeX. Il suffit pour cela de construire un document avec un format arbitraire de page correspondant aux dimensions voulues et d'insérer tout le contenu désiré dans ce document, en utilisant l'API de iText. Il est également possible de «dessiner» dans un fichier PDF en utilisant l'API Java2D, ce qui crée un nombre infini de possibilités. Le didacticiel de iText fournit un exemple dessinant une poire, mais il est possible de remplacer le code de rendu graphique par quelque chose de bien plus utile! Par exemple, en utilisant JFreeChart, il est possible de construire des graphiques complexes avec un degré de flexibilité très appréciable. Pour des diagrammes de type graphe (UML, automates, diagramme de flot, etc.), la bibliothèque JGraph pourrait être employée. De plus, grâce à Batik, il est possible de traiter des fichiers SVG produits par d'autres logiciels et utiliser iText pour les convertir en PDF, rendant ainsi les fichiers SVG exploitables par LaTeX. Tous les outils cités ci-haut sont gratuits et open source, mais leur usage n'est pas toujours facile et demande de la programmation.

PNG ou JPEG sont par contre parfaits pour les captures d'écran ou des photographies. Toutefois, ces images peuvent apparaître trop grandes dans le manuscrit. La meilleure solution est de contraindre leur largeur en spécifiant des dimensions à la commande \includgraphics. Pour éviter toute distorsion de l'image, ne spécifiez que la largeur ou la hauteur; LaTeX calculera l'autre dimension pour vous. Il est aussi possible de conserver le dimensionnement dynamique mais d'augmenter la résolution de l'image avec un utilitaire tel que The Gimp. Faire passer la résolution de 72 points par pouce à 150 points par pouce a parfois suffi pour le traitement de mes captures d'écran.