% \iffalse meta-comment -*- mode: doctex -*-
%
% Thesis class for Universite Laval
%
% Copyright (C) 2012-2024 Universite Laval
%
% This file 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:
%
%   https://www.latex-project.org/lppl.txt
%
% The Current Maintainer of this work is Vincent Goulet for
% Universite Laval <ulthese-dev@bibl.ulaval.ca>.
% \fi
%
% \iffalse
%<*dtx>
\ProvidesFile{ulthese.dtx}
%</dtx>
%<class>\NeedsTeXFormat{LaTeX2e}[2021/06/01]
%<class>\ProvidesClass{ulthese}%
%<*class>
  [2024/07/02 v6.0 Thesis class for Universite Laval]
%</class>
%<*driver>
\documentclass[article,oneside,11pt,x11names,english,french]{memoir}
  \usepackage{babel}
  \usepackage[autolanguage]{numprint}
  \usepackage[round,semicolon,authoryear,sectionbib]{natbib}
  \usepackage{metalogo}
  \usepackage{enumitem}
  \usepackage{relsize}
  \usepackage{awesomebox}

  %% Le chargement de doc.sty cause des conflits avec memoir. Il faut:
  %%
  %% - annuler la définition de l'environnement 'glossary' de memoir;
  %% - remettre en place les définitions standards des commandes pour
  %%   le glossaire sur lesquelles se base doc.sty (nécessaire aussi
  %%   pour l'index, mais il n'est pas utilisé).
  \let\theglossary\relax        % avoid conflict with doc.sty
  \let\endtheglossary\relax     % avoid conflict with doc.sty
  \makeatletter
  \def\makeglossary{%
    \newwrite\@glossaryfile
    \immediate\openout\@glossaryfile=\jobname.glo
    \def\glossary{\@bsphack\begingroup
                  \@sanitize
                  \@wrglossary}\typeout
      {Writing glossary file \jobname.glo }%
    \let\makeglossary\@empty
  }
  \@onlypreamble\makeglossary
  \def\@wrglossary#1{%
     \protected@write\@glossaryfile{}%
        {\string\glossaryentry{#1}{\thepage}}%
   \endgroup
   \@esphack}
  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
  \@twosidefalse\@mparswitchfalse % turn off twoside option
  \makeatother
  \usepackage{doc}
  \def\changes#1#2#3{\glossary{#1>#3}} % simplification
  \DisableCrossrefs
  \CodelineNumbered
  \RecordChanges
  %\OnlyDescription
  \DontCheckModules

  %% Polices de caractères
  \iftutex
    \usepackage[babel=true]{microtype}
    \usepackage{fontspec}
    \usepackage{unicode-math}
    \setmainfont{STIXTwoText}
    [
      Extension = .otf,
      UprightFont = *-Regular,
      BoldFont = *-SemiBold,
      ItalicFont = *-Italic,
      BoldItalicFont = *-SemiBoldItalic,
      Numbers = {Proportional,OldStyle},
      Scale = 1,
      Ligatures = TeX
    ]
    \setsecheadstyle{\normalfont\Large\sffamily\bfseries\raggedright}
    \setsubsecheadstyle{\normalfont\large\sffamily\bfseries\raggedright}
    \setsubsubsecheadstyle{\normalfont\sffamily\bfseries\raggedright}
  \else
    \usepackage[babel=true]{microtype}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[stix2]{newtxmath}
  \fi
  \usepackage[book,medium,proportional,oldstyle,scale=0.92]{FiraSans}
  \usepackage[medium,lining,scale=0.90]{FiraMono}

  %% Couleurs
  \usepackage{xcolor}
  \definecolor{link}{rgb}{0,0.4,0.6}        % liens internes
  \definecolor{url}{rgb}{0.6,0,0}           % liens externes
  \definecolor{citation}{rgb}{0,0.5,0}      % citations

  %% Hyperliens
  \AtEndPreamble{%
    \usepackage{bookmark}       % charge hyperref
    \hypersetup{%
      pdftitle = {Guide d'utilisation de la classe ulthese},
      pdfauthor = {Faculté des études supérieures et postdoctorales},
      colorlinks = {true},
      urlcolor = {url},
      linkcolor = {link},
      citecolor = {citation}}
    \bookmarksetup{%
      open = true,
      depth = 3,
      numbered = true}
    \addto\extrasfrench{%
      \def\subsectionautorefname{section}%
    }
  }

  %% Paramétrage de babel
  \frenchsetup{%
    SmallCapsFigTabCaptions=false, % pas de petites capitales
    ThinSpaceInFrenchNumbers=true, % espace fine dans les nombres
    og=«, fg=»                     % « et » sont les guillemets
  }
  \renewcommand*\frenchtablename{Tab.}
  \renewcommand*\frenchfigurename{Fig.}
  \renewcommand*\generalname{Général} % mot clé du glossaire

  %% Désactiver le niveau des chapitres de memoir
  \let\chapter\relax
  \counterwithout{section}{chapter}

  %% Utiliser une numérotation des sections à trois niveaux
  \setsecnumdepth{subsubsection}
  \maxsecnumdepth{subsubsection}

  % Les annexes sont des sections, ici. Redéfinir la
  % commande \appendix comme dans la classe article.
  \makeatletter
  \renewcommand*\appendix{\par
    \setcounter{section}{0}
    \gdef\thesection{\@Alph\c@section}}
  \makeatother

  %% Aligner à gauche l'environnement description
  \setlist[description]{leftmargin=*,align=left}

  %% Configurer le glossaire
  \addto\extrasfrench{%
    \def\glossaryname{Historique des versions}}
  \GlossaryPrologue{\section*{\glossaryname}%
    \addcontentsline{toc}{section}{\glossaryname}}
  \setcounter{GlossaryColumns}{2}
  \setlength{\GlossaryMin}{5cm}

  %% Nouvel environnement de type \DescribeMacro pour les options de
  %% la classe
  \NewDocElement[envlike,notoplevel,printtype=\emph{option}]{Option}{option}

  %% Commandes sémantiques additionnelles
  \let\class\textsf
  \let\pkg\textbf
  \makeatletter
  \renewcommand\code{\bgroup\@makeother\_\@makeother\~\@makeother\$\code@}
  \def\code@#1{{\normalfont\ttfamily\hyphenchar\font=-1 #1}\egroup}
  \makeatother
  \newcommand*\ulthesename{ulthese}
  \newcommand*\ulclass{\class{\ulthesename}}
  \newcommand*\btx{\textsc{Bib}\TeX}

  %% Redéfinir \year pour utiliser l'information de \filedate plutôt
  %% que la date de compilation
  \def\parsedate#1/#2/#3\relax{\def\year{#1}}

  %% Convertir la date en format ISO
  \def\isodate#1/#2/#3\relax{#1-#2-#3}

  \MakeShortVerb{\|}

\begin{document}
  \DocInput{ulthese.dtx}
\end{document}
%</driver>
% \fi
% \DoNotIndex{\',\^,\`,\ ,\ae}
% \DoNotIndex{\RequirePackage,\ExecuteOptions,\ProcessOptions}
% \DoNotIndex{\newcommand,\newcommand*}
% \DoNotIndex{\setlength}
% \changes{6.0}{2024-05-22}{Prise en compte des règles de présentation
% entrées en vigueur à l'automne 2023 qui n'exigent plus une
% bibliographie par chapitre pour les thèses et mémoire par
% intégration d'articles.}
% \changes{6.0}{2024-05-22}{Suppression des options
% \texttt{bibchapitre} et \texttt{bibsection}.}
% \changes{6.0}{2024-07-02}{Ajout du grade de maître en travail
% social.}
% \changes{6.0}{2024-07-02}{Retrait du grade de maître en
% physiothérapie.}
% \changes{6.0}{2024-05-24}{Utilisation du codage de caractères UTF-8
% par défaut dans la classe. Modification des gabarits en
% conséquence.}
% \changes{6.0}{2024-06-17}{Révision exhaustive de la documentation.}
% \changes{4.4}{2017-05-16}{Prise en charge des bibliographies
% multiples pour les thèses et mémoires par articles.}
% \changes{4.4}{2017-05-15}{Ajout de l'option \texttt{bibchapitre}.}
% \changes{4.4}{2017-05-15}{Ajout de l'option \texttt{bibsection}.}
% \changes{4.4}{2017-05-16}{Documentation révisée, principalement ce
% qui touche à la préparation de la bibliographie.}
% \changes{4.3}{2017-03-01}{Nouvelles options pour les titres de
% docteur en musique, maître en architecture, maître en ergothérapie,
% maître en physiothérapie et maître en psychoéducation.}
% \changes{4.3}{2017-03-01}{Modifications à la composition des sigles
% de grades.}
% \changes{4.3}{2017-03-01}{Vérification de la compatibilité entre le
% grade et les options \texttt{multifacultaire}, \texttt{cotutelle},
% \texttt{bidiplomation} et \texttt{extension}.}
% \changes{4.3}{2017-03-01}{Améliorations à la documentation.}
% \changes{4.2}{2016-03-29}{Ajout de l'option \texttt{examen}.}
% \changes{4.1}{2016-02-13}{Paquetage geometry déclaré incompatible
% avec la classe.}
% \changes{4.0}{2015-06-12}{Nouvelles règles de présentation
% matérielle de la FESP: recto seulement, page frontispice.}
% \changes{3.1}{2014-05-23}{Prise en charge de la maîtrise en
% bidiplomation.}
% \changes{3.0a}{2014-03-24}{Modifications et corrections à la
% documentation, notamment relativement à la configuration de
% \textbf{natbib}.}
% \changes{3.0}{2014-01-06}{Déclaration du grade en option de la
% classe.}
% \changes{3.0}{2014-01-06}{Moteur {\XeLaTeX} supporté.}
% \changes{3.0}{2014-01-06}{Ajout de l'option \texttt{nobabel}.}
% \changes{2.1}{2013-01-16}{Utilisation transparente de la police
% Helvetica pour la page de titre.}
% \changes{2.0}{2013-01-13}{Traitement automatique des longs titres.}
% \changes{1.0b}{2012-11-11}{Ajouts et corrections mineures dans la
% documentation.}
% \changes{1.0a}{2012-10-17}{Précisions dans la documentation.}
% \changes{1.0}{2012-09-30}{Version initiale.}
% \GetFileInfo{ulthese.dtx}
%
% \title{Guide d'utilisation de la classe {\ulclass} \\ pour les thèses et
%   mémoires \\ de l'Université Laval}
% \author{Faculté des études supérieures et postdoctorales\thanks{%
%   Cette classe et sa documentation ont été rédigées par Vincent
%   Goulet~(Faculté des sciences et de génie) avec la collaboration de
%   Koassi D'Almeida~(Faculté des études supérieures et postdoctorales) et
%   Pierre Lasou~(Bibliothèque).}}
% \date{Version {\fileversion} du {\expandafter\isodate\filedate\relax}}
% \maketitle
%
% \section{Introduction}
%
% La classe {\ulclass} permet de composer des thèses et mémoires
% immédiatement conformes aux règles générales et complémentaires de
% présentation de la Faculté des études supérieures et postdoctorales
% (FESP) de l'Université Laval. Ces règles définissent principalement
% la présentation des pages de titre des thèses et mémoires, ainsi que
% la disposition du texte sur la page.
%
% La composition d'un manuscript avec la classe {\ulclass} requiert une
% distribution {\TeX} récente et à jour. Nous recommandons les
% distributions %
% \href{https://tug.org/texlive}{{\TeX}~Live}~---%
% ou sa variante pour macOS %
% \href{https://tug.org/mactex}{Mac{\TeX}}~--- %
% et %
% \href{https://miktex.org}{MiK{\TeX}}. %
% Vous pouvez également avoir recours à une plateforme de rédaction en
% ligne comme %
% \href{https://overleaf.com}{Overleaf}; %
% leurs distributions {\TeX} satisfont généralement les conditions
% ci-dessus.
%
% La classe {\ulclass} fait partie des distributions {\TeX} standards via
% le paquetage %
% \href{https://ctan.org/pkg/ulthese}{\pkg{ulthese}}. %
% Dans la mesure où votre distribution est
% à jour, vous devriez pouvoir l'utiliser sans autre intervention.
%
% Le compagnon naturel de la présente documentation est \emph{Rédaction
% avec {\LaTeX}}, la formation {\LaTeX} de l'Université Laval. Vous y
% trouverez sans doute une foule d'informations utiles pour la
% préparation de votre thèse ou de votre mémoire. L'ouvrage fait
% lui aussi partie des distributions {\TeX} standards, via le
% paquetage %
% \href{https://ctan.org/pkg/formation-latex-ul}{\pkg{formation-latex-ul}}. %
%
% \section{Démarrage rapide (pour les impatients)}
% \label{sec:utilisation:rapide}
%
% La classe {\ulclass} est livrée avec un ensemble de gabarits sur
% lesquels se baser pour le document maître de divers types de thèses
% et de mémoires (standard, par articles, en cotutelle, en
% bidiplomation), ainsi que pour les parties les plus usuelles
% (résumés français et anglais, remerciements, avant-propos,
% introduction, chapitres, conclusion, annexe). Les noms des fichiers
% devraient permettre de facilement identifier leur contenu. Dans la
% distribution {\TeX}~Live, les gabarits sont classés avec la
% documentation.
%
% Pour débuter rapidement la rédaction de votre manuscrit, copiez les
% gabarits appropriés dans votre dossier de travail et suivez les
% directives qui s'y trouvent. Nous recommandons de compiler votre
% manuscript avec {\XeLaTeX}.
%
% La classe utilise le codage de caractères
% \href{https://fr.wikipedia.org/wiki/UTF-8}{UTF-8}. Vous devez donc
% obligatoirement utiliser ce type codage quand un fichier contient
% des caractères non-ASCII (comme des lettres accentuées).
%
% Le reste de ce guide contient les informations détaillées sur les
% caractéristiques et fonctionnalités de la classe.
%
% \changes{5.3a}{2021-08-09}{Ajout à la documentation de la
% disponibilité d'une archive pour les personnes qui ne disposent pas
% d'une installation de {\TeX} locale.}
% \tipbox{Si vous n'avez pas accès aux gabarits parce qu'ils ne sont
%   pas inclus dans votre distribution ou parce que vous utilisez une
%   plateforme de rédaction en ligne, poursuivez votre lecture à la
%   \autoref{sec:installation}.}
%
% \section{Installation}
% \label{sec:installation}
%
% Cette section explique comment installer la classe {\ulclass}
% si elle n'est pas disponible sur votre système ou si la version
% n'est pas à jour.
%
% La classe {\ulclass} est distribuée dans le paquetage %
% \href{https://ctan.org/pkg/ulthese}{\pkg{ulthese}} %
% via le réseau de sites \emph{Comprehensive {\TeX} Archive Network}
% (CTAN). Celui-ci fait partie des distributions {\TeX} standards telles
% que {TeX}~Live, Mac{\TeX} et MiK{\TeX}. Nous recommandons fortement
% d'installer ou de mettre à jour \pkg{ulthese} à l'aide du
% gestionnaire de paquetages de votre distribution {\TeX}. Par
% exemple, avec {\TeX}~Live, vous pouvez effectuer ces opérations dans
% l'assistant graphique, ou encore avec l'une ou l'autre des commandes
% ci-dessous:
% \begin{quote}
%   \code{tlmgr install ulthese}
% \end{quote}
% ou
% \begin{quote}
%   \code{tlmgr update ulthese}
% \end{quote}
%
% S'il vous est impossible d'installer des paquetages ou de mettre à
% jour la distribution {\TeX}~--- notamment si vous utilisez une
% plateforme de rédaction en ligne~--- vous pouvez procéder à une
% installation simplifiée de la classe dont la portée sera limitée à
% votre projet. Pour ce faire, téléchargez l'archive %
% \begin{quote}
%   \code{ulthese-installation-projet.zip}
% \end{quote}
% depuis le
% \href{https://gitlab.com/vigou3/ulthese/-/releases}{dépôt du projet ulthese}
% et décompressez celle-ci dans le répertoire de votre document. Vous
% disposerez alors de tous les fichiers essentiels de la classe à
% l'intérieur de ce projet.
%
% Si votre expertise {\TeX} vous pousse à préférer une installation
% manuelle avec accès à l'intégralité du code source de la classe,
% consultez les instructions qui se trouvent dans le fichier
% \code{README.md} du paquetage.
%
% \section{Utilisation}
% \label{sec:utilisation}
%
% La classe {\ulclass} est basée sur la classe %
% \href{https://ctan.org/pkg/memoir}{\class{memoir}}, %
% une extension de la classe standard \class{book} facilitant à
% plusieurs égards la préparation de documents d'allure
% professionnelle dans {\LaTeX}. L'intégralité des fonctionnalités de
% \class{memoir} se retrouve donc dans {\ulclass}.
%
% La classe \class{memoir} fait partie des distributions {\TeX}
% récentes; elle devrait donc être installée et disponible sur votre
% système. La classe est livrée avec une documentation exhaustive: le
% guide de l'utilisateur fait près de 600~pages! N'hésitez pas à vous
% y référer pour réaliser une mise en page particulière.
%
% La classe {\ulclass} est compatible avec le moteur pdf{\LaTeX}.
% Cependant, pour faciliter la gestion du codage des fichiers et des
% polices de caractères, nous recommandons de compiler votre
% manuscript avec le plus moderne moteur {\XeLaTeX}.
%
% \subsection{Gabarits}
% \label{sec:utilisation:gabarits}
%
% La classe est livrée avec un ensemble de gabarits sur lesquels vous
% baser pour:
% \begin{itemize}
% \item le document maître de divers types de thèses et de mémoires
%   (standard, par articles, en cotutelle, en bidiplomation);
% \item les fichiers des parties les plus usuelles (résumés français
%   et anglais, remerciements, avant-propos, introduction, chapitres,
%   conclusion, annexe).
% \end{itemize}
% Vous pourriez devoir combiner les caractéristiques de deux gabarits
% de document maître, par exemple pour une thèse en cotutelle par
% articles.
%
% Les gabarits vous incitent à adopter le mode d'organisation des
% fichiers de tout document d'une certaine ampleur, soit: un fichier
% |.tex| par partie; un fichier maître contenant le préambule {\LaTeX}
% et un ensemble de commandes \cmdprint{\include} pour réunir les
% parties dans un tout.
%
% Si vous utilisez la version de la classe fournie avec votre
% distribution {\TeX}, les gabarits peuvent être classés avec la
% documentation (c'est le cas dans {\TeX}~Live). Si vous avez plutôt
% effectué une installation locale de la classe, ou si vous l'avez
% installée manuellement, les gabarits se trouvent dans votre
% dossier de travail.
%
% Nous recommandons fortement de rédiger votre manuscript à partir des
% gabarits. Il peut aussi s'avérer utile de suivre un gabarit en lisant
% la présente section.
%
% \tipbox{Il n'y a pas de gabarit spécifique pour un examen de
%   doctorat, pour un essai de maîtrise, pour un projet de recherche ou
%   pour un rapport de stage. Utilisez un gabarit de thèse ou de
%   maîtrise avec l'une ou l'autre des options |examen|, |essai|,
%   |projet| ou |stage|.}
%
% \changes{6.0}{2024-05-24}{Documentation: nouvelle section sur le
% codage de caractères du code source.}
% \subsection{Codage de caractères du code source}
% \label{sec:utilisation:codage}
%
% La classe utilise le codage de caractères
% \href{https://fr.wikipedia.org/wiki/UTF-8}{UTF-8}
% tant avec pdf{\LaTeX} qu'avec {\XeLaTeX}. Les fichiers
% contenant du texte avec des accents ou tout autre symbole non-ASCII
% doivent donc obligatoirement être enregistrés dans ce codage de
% caractères\footnote{%
%   L'UTF-8 n'étant pas le codage par défaut sous Windows, portez une
%   attention toute particulière à ce point si vous utilisez ce système
%   d'exploitation.}.
%
% \subsection{Déclaration de la classe et options}
% \label{sec:utilisation:options}
%
% On charge la classe avec la commande
% \begin{quote}
%   |\documentclass|\oarg{options}|{ulthese}|
% \end{quote}
% Les marges, l'interligne et la numérotation des pages sont adaptées
% aux règles de présentation de la FESP. La classe ne crée pas de page
% de titre par défaut\footnote{%
%   Depuis la version 5.0 de la classe.}, %
% sa production étant prise en charge par la FESP pour les thèses et
% les mémoires. Si vous utilisez la classe pour un document qui
% nécessite une page de titre, un examen de doctorat, un essai de
% maitre
%
% \changes{5.0}{2018-04-24}{La classe ne crée plus de page de titre
% suite à une nouvelle directive de la FESP.}
% \tipbox{Les fonctionnalités de composition d'une page de titre
%   demeurent disponibles dans la classe. Si votre document en nécessite
%   une, consultez l'\autoref{sec:pagetitre}.}
%
% Cette section passe en revue les \meta{options} que l'on peut
% spécifier au chargement de la classe. Les commandes mentionnées
% ci-dessous font quant à elles l'objet de la
% \autoref{sec:utilisation:commandes}.
%
% \begin{DescribeOption}{PhD,MSc,MA, ...}
%   Les options telles que |PhD|, |MSc| ou |MA| identifient le type de
%   grade; le \autoref{tab:grades} fournit la liste complète des
%   options et les grades correspondants. La déclaration d'un type de
%   grade est obligatoire, sauf en cas de l'utilisation de l'option
%   |projet| (voir ci-dessous).
% \end{DescribeOption}
%
% \begin{table}[t]
%   \centering
%   \caption{Options de la classe pour la déclaration du grade et libellés
%     correspondants}
%   \label{tab:grades}
%   \begin{tabularx}{0.9\linewidth}{l>{\raggedright\arraybackslash}X}
%     \toprule
%     Option & Nom du grade (sigle) \\
%     \midrule
%     |LLD|
%       & Docteur en droit (LL.~D.) \\
%     |DMus|
%       & Docteur en musique (D.~Mus.) \\
%     |DPsy|
%       & Docteur en psychologie (D.~Psy.) \\
%     |DThP|
%       & Docteur en théologie pratique (D.~Th.~P.) \\
%     |PhD|
%       & Philosophi{\ae} doctor (Ph.~D.) \\
%     \addlinespace[6pt]
%     |MATDR|
%       & Maître en aménagement du territoire et développement régional
%       (M.ATDR) \\
%     |MArch|
%       & Maître en architecture
%       (M.~Arch.) \\
%     |LLM|
%       & Maître en droit (LL.~M.) \\
%     |MErg|
%       & Maître en ergothérapie (M.~Erg.) \\
%     |MMus|
%       & Maître en musique (M.~Mus.) \\
%     |MPsEd|
%       & Maître en psychoéducation (M.~Ps.~éd.) \\
%     |MScGeogr|
%       & Maître en sciences géographiques (M.~Sc.~géogr.) \\
%     |MServSoc|
%       & Maître en service social (M.~Serv.~soc.) \\
%     |MTravSoc|
%       & Maître en travail social (M.~Trav.~soc.) \\
%     |MA|
%       & Maître ès arts (M.A.) \\
%     |MSc|
%       & Maître ès sciences (M.~Sc.) \\
%     \bottomrule
%   \end{tabularx}
% \end{table}
%
% \begin{DescribeOption}{cotutelle}
%   L'option |cotutelle| identifie une thèse effectuée en cotutelle
%   avec une autre université. Valide uniquement avec un grade de
%   doctorat.
% \end{DescribeOption}
%
% \begin{DescribeOption}{bidiplomation}
%   L'option |bidiplomation| identifie un mémoire effectué en
%   bidiplomation avec une autre université. Valide uniquement avec un
%   grade de maîtrise.
% \end{DescribeOption}
%
% \begin{DescribeOption}{examen}
%   L'option |examen| identifie un examen de doctorat. Elle permet
%   d'utiliser la classe pour la rédaction d'un examen de doctorat
%   respectant les règles de présentation de la FESP. L'option a pour
%   effet de changer l'appellation «Thèse» sur la page de titre pour
%   «Examen de doctorat». Elle supprime également la page frontispice.
%   L'option n'est compatible qu'avec l'une des options de grade de
%   doctorat.
% \end{DescribeOption}
%
% \changes{5.0}{2018-05-09}{Ajout d'une option \texttt{essai} pour les
% maîtrises analogue à \texttt{examen} pour les doctorats.}
% \changes{5.2}{2019-05-06}{L'option \texttt{essai} n'empêche plus
% l'utilisation d'une page frontispice.}
% \begin{DescribeOption}{essai}
%   L'option |essai| identifie un essai de maîtrise. Elle permet
%   d'utiliser la classe pour la rédaction d'un essai de maîtrise
%   respectant les règles de présentation de la FESP. L'option a pour
%   effet de changer l'appellation «Maîtrise» sur la page de titre
%   pour «Essai». Elle n'est compatible qu'avec l'une des options de
%   grade de maîtrise. Pour un essai de maîtrise, l'utilisation
%   simultanée de l'option |article| de la classe \class{memoir} peut
%   s'avérer tout indiquée.
% \end{DescribeOption}
%
% \changes{5.2}{2019-05-06}{Ajout d'une option \texttt{projet} pour
% les cours de projet de recherche.}
% \begin{DescribeOption}{projet}
%   L'option |projet| identifie un projet de recherche. Elle permet
%   d'utiliser la classe pour la rédaction d'un rapport de projet de
%   recherche respectant les règles de présentation de la FESP.
%   L'option a pour effet d'inscrire l'appellation «Projet de
%   recherche» sur la page de titre et de supprimer la mention du
%   grade. Son utilisation rend d'ailleurs non obligatoire la
%   déclaration de grade qui, si elle est présente, est simplement
%   ignorée. Comme pour un essai de maîtrise, l'utilisation simultanée
%   de l'option |article| de la classe \class{memoir} peut s'avérer
%   tout indiquée avec cette option.
% \end{DescribeOption}
%
% \changes{5.3}{2019-11-29}{Ajout d'une option \texttt{stage} pour les
% rapports de stage.}
% \begin{DescribeOption}{stage}
%   L'option |stage| identifie un rapport de stage. L'effet de cette
%   option est identique à celui de l'option |projet| à deux
%   exceptions près: l'inscription sur la page de titre est «Rapport
%   de stage» et la page frontispice est supprimée.
% \end{DescribeOption}
%
% \begin{DescribeOption}{10pt,11pt,12pt}
%   Les options |10pt|, |11pt| et |12pt| sélectionnent une taille de
%   police de 10, 11 ou 12~points. Par défaut la classe utilise une
%   police de 11~points. Ces options n'ont aucun effet sur la taille
%   des polices des pages de titre.
% \end{DescribeOption}
%
% \begin{DescribeOption}{nonatbib}
%   L'option |nonatbib| empêche le chargement du paquetage %
%   \href{https://ctan.org/pkg/natbib}{\pkg{natbib}}. %
%   Celui-ci est normalement chargé par la classe; voir la
%   \autoref{sec:bibliographie}. L'option |nonatbib| permet d'empêcher
%   son chargement pour vous permettre de modifier les options du
%   paquetage ou en cas de conflit avec un autre paquetage de mise en
%   forme de la bibliographie.
% \end{DescribeOption}
%
% \begin{DescribeOption}{nobabel}
%   L'option |nobabel| empêche le chargement du paquetage %
%   \href{https://ctan.org/pkg/babel}{\pkg{babel}}. %
%   La classe utilise par défaut ce paquetage pour le traitement des
%   langues dans le document; voir la \autoref{sec:langues}. L'option
%   |nobabel| permet d'empêcher son chargement si un autre paquetage
%   devait être utilisé~--- on pense ici principalement à %
%   \href{https://ctan.org/pkg/polyglossia}{\pkg{polyglossia}} %
%   pour un document produit avec le moteur {\XeLaTeX}.
% \end{DescribeOption}
%
% \changes{5.1}{2018-09-30}{Ajout de l'option \texttt{nohyperref}.}
% \begin{DescribeOption}{nohyperref}
%   L'option |nohyperref| empêche le chargement du paquetage %
%   \href{https://ctan.org/pkg/hyperref}{\pkg{hyperref}}. %
%   L'interaction de ce paquetage avec les autres est parfois~---
%   voire souvent~--- délicate. La classe tâche de le charger en tout
%   dernier, tel que généralement recommandé. L'option |nohyperref|
%   permet d'empêcher son chargement s'il est absolument nécessaire de
%   charger d'autres paquetages avant \pkg{hyperref}. Si vous utilisez
%   cette option, vous devez obligatoirement charger \pkg{hyperref}
%   dans le préambule du document.
% \end{DescribeOption}
%
% \begin{DescribeOption}{english, french, ...}
%   Les options telles que |english|, |french| ou autres déclarent les
%   langues utilisées dans le document. Ces options sont transférées
%   au paquetage \pkg{babel} (dans la mesure où |nobabel| n'est pas
%   spécifié, bien entendu). Le libellé des langues devrait donc
%   correspondre aux options de \pkg{babel}. La dernière langue
%   spécifiée est la langue active par défaut dans le document.
% \end{DescribeOption}
%
% Toute autre option sera passée à la classe \class{memoir} dont,
% entre autres, le format du papier. Le format lettre nord-américain
% (option |letterpaper|) est utilisé par défaut. Si votre thèse doit
% être imprimée en format international A4, utilisez l'option
% |a4paper|. La classe \class{memoir} est toujours chargée avec
% l'option |oneside|.
%
% \subsection{Commandes de la classe}
% \label{sec:utilisation:commandes}
%
% La classe {\ulclass} définit quelques nouvelles commandes
% servant principalement à créer la page frontispice et des éléments
% des pages liminaires. Le sommaire des commandes se trouve dans le
% \autoref{tab:commandes} et les descriptions détaillées, ci-dessous.
%
% \begin{table}[t]
%   \centering
%   \caption{Sommaire des commandes de la classe {\ulclass}.
%     Celles marquées d'une étoile $^\star$ sont obligatoires.}
%   \label{tab:commandes}
%   \begin{tabularx}{\linewidth}{lX}
%     \toprule
%     Commande & Usage \\
%     \midrule
%     \cmd{\titre}$^\star$ & titre principal du document \\
%     \cmd{\soustitre} & sous-titre du document \\
%     \cmd{\auteur}$^\star$ & nom complet de l'auteur \\
%     \cmd{\programme}$^\star$ & nom officiel du programme d'études \\
%     \cmd{\direction}$^\star$ & nom du directeur (directrice) de recherche \\
%     \cmd{\codirection} & noms des codirecteurs de recherche \\
%     \cmd{\frontispice}$^\star$ & production de la page frontispice \\
%     \cmd{\dedicace} & dédicace du document \\
%     \cmd{\epigraphe} & épigraphe du document \\
%     \bottomrule
%   \end{tabularx}
% \end{table}
%
% \begin{DescribeMacro}{\titre}
%   La commande \cmdprint{\titre} sert à spécifier le titre principal
%   du manuscrit. Vous ne devez pas utiliser la commande \cmd{\title}
%   de {\LaTeX} pour ce faire.
%
%   Coupez manuellement avec {\bs\bs} ou \cmd{\newline} un titre très
%   long. Par exemple, la déclaration d'un titre d'une seule ligne
%   est:
%   \begin{quote}
%     |\titre{Ceci est un titre d'une seule ligne}|
%   \end{quote}
%   Pour un titre de deux lignes, ce sera plutôt:
%   \begin{quote}
%     |\titre{Ceci est la première ligne d'un long titre \\| \\
%     |       et ceci est la seconde}|
%   \end{quote}
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\soustitre}
%   La commande \cmdprint{\soustitre} sert à spécifier le sous-titre
%   du manuscrit, le cas échéant. Les remarques sur un long titre
%   principal s'appliquent également au sous-titre.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\auteur}
%   La commande \cmdprint{\auteur} permet de saisir le nom complet de
%   l'auteur de la thèse ou du mémoire, sous la forme |Prénom Nom|
%   avec seulement des majuscules initiales. N'utilisez pas la
%   commande \cmd{\author} de {\LaTeX} pour le nom de l'auteur.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\programme}
%   La commande \cmdprint{\programme} sert à spécifier le nom complet
%   officiel du programme d'études comme «Doctorat en informatique» ou
%   «Maîtrise en mathématiques». Si le programme comporte une majeure,
%   séparez sa mention de celle du programme principal par un tiret
%   demi-quadratin (obtenu avec |--|).
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\direction}
%   La commande \cmdprint{\direction} sert à spécifier le nom complet
%   du directeur ou de la directrice de recherche, sous la forme
%   |Prénom Nom| avec seulement des majuscules initiales, suivi d'une
%   virgule et de la mention «directeur de recherche» ou «directrice
%   de recherche».
%
%   Les thèses en cotutelle comportent un directeur ou une directrice
%   de recherche et un directeur ou une directrice de cotutelle.
%   Séparez chaque mention par {\bs\bs}, comme ceci:
%   \begin{quote}
%     |\direction{Prénom Nom, directrice de recherche \\| \\
%     |           Prénom Nom, directeur de cotutelle}|
%   \end{quote}
%
%   De même, les maîtrises en bidiplomation comptent deux directeurs
%   ou directrices de recherche. Séparez chaque mention tel que
%   mentionné ci-dessus.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\codirection}
%   La commande \cmdprint{\codirection} joue le même rôle que la
%   commande \cmdprint{\direction}, mais pour le ou les codirecteurs
%   de recherche, s'il y a lieu. Lorsqu'il y a plus d'un codirecteur
%   de recherche, séparez chaque mention par {\bs\bs}, comme ceci:
%   \begin{quote}
%     |\codirection{Prénom Nom, directrice de recherche \\| \\
%     |             Prénom Nom, directeur de recherche}|
%   \end{quote}
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\frontispice}
%   La commande \cmdprint{\frontispice} crée la page frontispice à
%   l'endroit où elle apparait dans le code source. De toutes les
%   commandes ci-dessus, c'est la seule qui doit se trouver dans le
%   corps du document plutôt que dans le préambule.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\dedicace}
%   La commande \cmdprint{\dedicace} permet d'insérer une dédicace («À
%   mes parents», «À Camille») à l'endroit où elle apparait dans le
%   code source. La dédicace est disposée seule sur une page
%   liminaire, à une dizaine de lignes de la marge du haut et alignée
%   à droite. Par défaut, elle est composée en italique.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\epigraphe}
%   La commande \cmdprint{\epigraphe} permet d'insérer une épigraphe
%   au début du document. Comme la dédicace, l'épigraphe est disposée
%   seule sur une page liminaire, à une dizaine de lignes de la marge
%   du haut et alignée à droite. La commande accepte deux arguments,
%   soit le texte de la citation et son auteur ou la source, dans
%   l'ordre.
%
%   Pour ajouter une épigraphe au début d'un ou de plusieurs
%   chapitres, utilisez directement la commande \cmd{\epigraph} de
%   \class{memoir}, sur laquelle \cmd{\dedicace} et \cmd{\epigraphe}
%   sont d'ailleurs basées.
% \end{DescribeMacro}
%
% \subsection{Citations}
% \label{sec:citations}
%
% {\LaTeX} offre deux environnements pour les citations dans le
% texte: |quote| et |quotation|.
%
% \begin{DescribeEnv}{quote}
%   L'environnement |quote| sert pour les citations «courtes»,
%   quelques lignes au plus. Dans la classe, le texte est alors placé
%   en retrait des marges normales de 10~mm à gauche et à droite.
% \end{DescribeEnv}
%
% \begin{DescribeEnv}{quotation}
%   L'environnement |quotation|, quant à lui, doit être utilisé pour
%   les citations «longues», celles qui peuvent s'étendre sur plus de
%   cinq lignes ou, surtout, plus d'un paragraphe. Dans la classe, le
%   texte est alors toujours placé en retrait de 10~mm, mais aussi à
%   interligne simple. De plus, un espace vertical sépare les
%   paragraphes, le cas échéant, afin de bien les distinguer les uns
%   des autres.
% \end{DescribeEnv}
%
% \subsection{Interligne}
% \label{sec:interligne}
%
% \begin{DescribeMacro}{\OnehalfSpacing}
%   L'espacement d'un interligne et demi utilisé dans la classe est
%   obtenu avec la commande \cmd{\OnehalfSpacing} de \class{memoir}.
%   L'interligne simple est automatiquement rétabli pour les pages
%   de titre, la table des matières, la liste des tableaux, la liste
%   des figures et les longues citations (\autoref{sec:citations}).
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\SingleSpacing}
%   Si ce devait être nécessaire ailleurs dans le document, vous
%   pouvez avoir recours à la commande \cmd{\SingleSpacing} pour
%   passer à l'interligne simple.
% \end{DescribeMacro}
%
% \subsection{Hyperliens}
% \label{sec:hyperliens}
%
% Lorsque le document est produit avec pdf{\LaTeX} ou {\XeLaTeX},
% toutes les références internes et externes sont automatiquement
% transformées en hyperliens cliquables. Ceux-ci apparaissent dans une
% teinte de bleu assez foncée tout à la fois visible en couleur et peu
% contrastante si le document est imprimé en noir et blanc.
%
% \begin{DescribeMacro}{\hypersetup}
%   Vous pouvez ajouter des options de configuration pour les
%   hyperliens ou les métadonnées du document PDF avec la commande
%   \cmd{\hypersetup} du paquetage \class{hyperref}.
% \end{DescribeMacro}
%
% \subsection{Autres paquetages chargés}
% \label{sec:paquetages}
%
% \changes{6.0}{2024-06-17}{Documentation: simplification de la
% section sur les autres paquetages chargés par la classe.}
% La classe {\ulclass} charge par défaut les paquetages suivants qui
% peuvent vous être utiles: %
% \href{https://ctan.org/pkg/babel}{\pkg{babel}} (voir aussi la \autoref{sec:langues}) %
% \href{https://ctan.org/pkg/fontspec}{\pkg{fontspec}}, %
% \href{https://ctan.org/pkg/graphicx}{\pkg{graphicx}}, %
% \href{https://ctan.org/pkg/hyperref}{\pkg{hyperref}}, %
% \href{https://ctan.org/pkg/microtype}{\pkg{microtype}}, %
% \href{https://ctan.org/pkg/natbib}{\pkg{natbib}} (voir aussi la
% \autoref{sec:bibliographie}), %
% \href{https://ctan.org/pkg/numprint}{\pkg{numprint}}, %
% \href{https://ctan.org/pkg/xcolor}{\pkg{xcolor}}. %
% Tel que mentionné précédemment, la classe est basée sur
% \class{memoir} qui, elle-même, incorpore d'office une trentaine de
% paquetages\footnote{%
%   Consultez la section~18.24 de la documentation de \class{memoir}
%   pour la liste, ou encore le journal de la compilation (\emph{log})
%   d'un document utilisant la classe {\ulclass}.}. %
% L'intégralité des fonctionnalités de \class{memoir} se retrouve donc
% dans {\ulclass}.
%
% L'\autoref{sec:meo} sur la mise en œuvre de la classe fournit la
% liste détaillée des paquetages chargés et les raisons pour
% lesquelles ils sont requis dans la classe.
%
% \subsection{Paquetage incompatible}
% \label{sec:incompatible}
%
% Le paquetage %
% \href{https://ctan.org/pkg/geometry}{\pkg{geometry}} %
% est incompatible avec la classe à cause de sa mauvaise interaction
% avec \class{memoir}. Son chargement dans le préambule du document
% cause une erreur lors de la compilation.
%
% \section{Thèses et mémoires par articles}
% \changes{5.0}{2018-06-08}{Ajout d'une section spécifique sur les
% thèses et mémoires par articles.}
%
% La rédaction de la thèse ou du mémoire par articles est une pratique
% qui gagne en popularité. Elle consiste à remplacer le corps
% principal du manuscrit par un ou des articles scientifiques. Chaque
% article fait normalement l'objet d'un chapitre dans le document. Les
% résumés en français (obligatoire) et dans la langue de la thèse ou
% du mémoire (le cas échéant) y apparaissent sous forme de
% sections numérotées.
%
% Des gabarits de document maître et de chapitre fournissent la
% structure de base pour la thèse et le mémoire par articles. Vous
% pouvez, au besoin, combiner les caractéristiques de ces gabarits à
% celles de la thèse en cotutelle ou du mémoire en bidiplomation.
%
% \tipbox{À l'automne~2023, la FESP a retiré l'exigence de produire
% une bibliographie par chapitre pour les thèses et mémoires par
% articles. La thèse ou le mémoire doit désormais contenir une seule
% bibliographie regroupant l’ensemble des références du document.}
%
% \section{Bibliographie}
% \label{sec:bibliographie}
% \changes{6.0}{2024-05-22}{Documentation: suppression de la section
% sur les bibliographies multiples.}
% \changes{6.0}{2024-06-19}{Documentation: inversion des sections sur
% la bibliographie et sur la rédaction en français.}
%
% \begin{DescribeMacro}{\bibliography}
%   Il est fortement recommandé d'utiliser {\BibTeX} pour la
%   préparation de la bibliographie d'un document. Celle-ci est
%   insérée dans le document à l'endroit où apparait la commande
%   \cmd{\bibliography} dans le code source. Cette commande prend en
%   arguments les noms des bases de données bibliographiques, séparés
%   par des virgules.
% \end{DescribeMacro}
%
% \subsection{Mise en forme des citations}
% \label{sec:bibliographie:options}
%
% \begin{DescribeMacro}{\setcitestyle}
%   Dans la classe {\ulclass}, la mise en forme des citations est
%   confiée au paquetage %
%   \href{https://ctan.org/pkg/natbib}{\pkg{natbib}} %
%   (à moins que l'option |nonatbib| ne soit spécifiée). Le paquetage
%   est chargé avec les options par défaut, soit |round|, |semicolon|
%   et |authoryear|. Pour spécifier d'autres options utilisez la
%   commande \cmd{\setcitestyle} pour passer de nouvelles options à
%   \pkg{natbib}.
% \end{DescribeMacro}
%
% Par exemple, pour utiliser un style de citation numérique où le
% numéro de la référence se trouve entre crochets, insérez la commande
% suivante dans le préambule:
% \begin{quote}
%   |\setcitestyle{numbers,square}|
% \end{quote}
%
% Consultez la documentation de \pkg{natbib} pour plus de détails.
%
% \subsection{Style de la bibliographie}
% \label{sec:bibliographie:style}
%
% \begin{DescribeMacro}{\bibliographystyle}
%   Le format général de la bibliographie est contrôlé par un
%   \emph{style} choisi avec la commande \cmd{\bibliographystyle} dans
%   le préambule du document. Les styles standards de {\LaTeX} sont
%   |plain|, |unsrt|, |alpha| et |abbrv|.
% \end{DescribeMacro}
%
% Le paquetage \pkg{natbib} prend en charge le style de citation
% auteur-année fréquemment employé en sciences naturelles, plusieurs
% commandes de citation, un grand nombre de styles de bibliographie,
% ainsi que des entrées spécifiques pour les numéros ISBN et les
% adresses URL. Le paquetage fournit des styles de bibliographie
% |plainnat|, |unsrtnat| et |abbrvnat| similaires aux styles
% standards, mais plus complets. Il existe des %
% \href{https://ctan.org/pkg/bib-fr}{versions francisées} %
% de ces styles (et de quelques autres) dans CTAN.
%
% Les styles \code{francais} et \code{francaissc} du paquetage %
% \href{https://ctan.org/pkg/francais-bst}{\pkg{francais-bst}} %
% permettent de composer des bibliographies auteur-année respectant
% les normes de typographie française. Ils sont compatibles avec
% \pkg{natbib} et plus modernes que les styles mentionnés ci-dessus.
%
% Autrement, la FESP n'a pas d'exigences particulières quant à la
% présentation de la bibliographie (présentation du titre, des auteurs
% et autres informations bibliographiques).
%
% \section{Français et autres langues}
% \label{sec:langues}
%
% Une complication additionnelle si vous rédigez dans une langue autre
% que l'anglais consiste à adapter {\LaTeX} à votre langue, qu'il
% s'agisse des mots clés, de la typographie ou de la césure des mots.
% La solution standard à ce problème provient du paquetage %
% \href{https://ctan.org/pkg/babel}{\pkg{babel}}. %
% Celui-ci permet de combiner plusieurs langues dans un même document
% et de passer de l'une à l'autre facilement. Il est chargé par défaut
% par la classe {\ulclass}.
%
% Aucune langue n'est spécifiée dans la classe. Vous aurez sans doute
% recours à l'anglais et au français, ne serait-ce que pour les deux
% résumés demandés par la FESP. Vous devez spécifier les langues
% utilisées dans le document en options à la classe, tel que mentionné
% à la \autoref{sec:utilisation:options}. La \emph{dernière} langue
% spécifiée devient par défaut la langue active du document.
%
% \begin{DescribeMacro}{\selectlanguage}
%   La commande \cmd{\selectlanguage} de \pkg{babel} permet de passer de
%   la langue courante à la langue spécifiée en argument.
% \end{DescribeMacro}
%
% \begin{DescribeEnv}{otherlanguage}
%   L'environnement |otherlanguage| de \pkg{babel} permet de faire la
%   même chose que la commande \cmd{\selectlanguage}, sauf que le
%   changement de langue est local à l'environnement, ce qui peut
%   s'avérer utile pour les brefs changements de langue.
% \end{DescribeEnv}
%
% Si vous n'êtes pas autrement familier avec le paquetage \pkg{babel},
% consultez sa documentation. Celle-ci est éclatée en un document
% principal pour le cœur du paquetage et plusieurs autres pour les
% fonctionnalités propres à une langue. Consultez au moins les
% documents consacrés aux langues utilisées dans votre thèse ou
% mémoire. Le plus simple consiste sans doute à consulter en ligne sur
% CTAN les
% \href{https://ctan.org/pkg/babel-contrib/}{documents spécifiques par langue}.
% \changes{4.4}{2017-05-14}{Correction d'une url vers la documentation
% de \textbf{babel}.}
%
% \begin{DescribeMacro}{\nombre}
%   Le paquetage %
%   \href{https://ctan.org/pkg/numprint}{\pkg{numprint}} %
%   étant chargé dans la classe avec \pkg{babel}, vous pouvez utiliser
%   la commande \cmd{\nombre} pour formater automatiquement les
%   nombres. Par exemple, le résultat de |\nombre{123456789}| est
%   \nombre{123456789}.
% \end{DescribeMacro}
%
% Si vous souhaitez plutôt utiliser le plus récent paquetage %
% \href{https://ctan.org/pkg/polyglossia}{\pkg{polyglossia}} %
% avec {\XeLaTeX}, vous devez empêcher le chargement de \pkg{babel}
% avec l'option |nobabel| de la classe, puis  charger et configurer
% \pkg{polyglossia} vous-même dans l'entête de votre document. Ce
% paquetage est moins évolué que \pkg{babel} pour la typographie
% française.
%
% \section{Police de caractères du document}
% \label{sec:police}
% \changes{6.0}{2024-06-17}{Documentation: révision de la section sur
% les polices de caractères suite aux modifications apportées aux
% règles de présentation de la FESP.}
%
% Les documents {\LaTeX} sont facilement reconnaissables par leur
% police de caractères par défaut: %
% {\iftutex\fontfamily{lmr}\else\fontfamily{cmr}\fi\selectfont
% Computer Modern}. %
% Si vous le souhaitez, il est aujourd'hui assez simple de produire
% des documents {\LaTeX} utilisant d'autres polices. L'approche
% recommandée consiste à utiliser une police OpenType ou TrueType
% présente sur votre système avec le moteur {\XeLaTeX}. Autrement,
% vous pouvez charger l'une ou l'autre des polices PostScript
% standards compatibles avec le moteur pdf{\LaTeX} en ayant recours au
% paquetage %
% \href{https://ctan.org/pkg/psnfss}{\pkg{psnfss}}. %
% Dans tous les cas, assurez-vous de respecter les règles de
% présentation de la FESP en matière de polices de caractères.
%
% La Bibliothèque de l’Université Laval détient une licence
% d’utilisation des polices de très grande qualité %
% \href{https://tug.org/store/lucida}{Lucida Bright}. %
% Vous pouvez vous procurer gratuitement une copie des polices en
% écrivant à %
% \href{mailto:lucida@bibl.ulaval.ca}{lucida@bibl.ulaval.ca}.
%
% À titre indicatif, le présent document est composé avec les polices
% OpenType %
% \href{https://ctan.org/pkg/stix2-otf}{STIX~Two} %
% pour le texte et %
% \href{https://ctan.org/pkg/fira}{Fira} %
% pour les éléments décoratifs (notamment \textsf{Fira Sans} pour les
% titres de sections et \texttt{Fira Mono} pour le code informatique).
%
% \changes{6.0}{2024-05-25}{Documentation: suppression de la section
% portant sur l'explication détaillée des gabarits. En échange,
% ceux-ci comportent des commentaires additionnels.}
%
% \section{Commentaires, suggestions et aide}
% \changes{5.0}{2018-08-09}{Code source du projet déplacé de GitHub
% vers GitLab.}
% \changes{6.0}{2024-06-18}{Documentation: retrait du wiki thèse
% (fermé) et des archives de la liste ulthese-aide (peu utiles).}
%
% Le \href{https://gitlab.com/vigou3/ulthese/}{dépôt du projet} dans
% GitLab demeure le meilleur endroit pour rapporter des bogues ou pour
% proposer des améliorations à la classe {\ulclass}.
%
% Pour de l'aide additionnelle sur l'utilisation de la classe~--- et
% non sur celle de {\LaTeX} en général~--- écrivez à l'adresse %
% \href{mailto:ulthese-aide@listes.ulaval.ca}{ulthese-aide@listes.ulaval.ca}.
%
% \appendix
%
% \section{Création d'une page de titre}
% \label{sec:pagetitre}
%
% La thèse ou le mémoire déposé à la FESP ne doit \emph{pas} comporter
% de page de titre. Les options de classe et les commandes mentionnées
% dans cette section permettent néanmoins de composer une page de
% titre conforme aux normes de présentation matérielles, notamment
% pour les examens de doctorat, les essais de maîtrise ou les rapports
% de projet de recherche ou de stage.
%
% En premier lieu, les \meta{options} suivantes s'ajoutent à celles de
% la \autoref{sec:utilisation:options} lorsque l'on souhaite créer une
% page de titre.
%
% \begin{DescribeOption}{multifacultaire}
%   L'option |multifacultaire| identifie une thèse
%   multifacultaire. Valide uniquement avec un grade de doctorat.
%   Cette déclaration requiert ensuite d'utiliser la commande
%   \cmd{\faculteUL}.
% \end{DescribeOption}
%
% \begin{DescribeOption}{extensionUdeS}
%   L'option |extensionUdeS| identifie une thèse réalisée en extension
%   à l'Université de Sherbrooke. Valide uniquement avec un grade de
%   doctorat. Cette déclaration requiert ensuite d'utiliser les
%   commandes \cmd{\faculteUL} et \cmd{\faculteUdeS}.
% \end{DescribeOption}
%
% \begin{DescribeOption}{extensionUQO}
%   L'option |extensionUQO| identifie une thèse réalisée en extension
%   à l'Université du Québec en Outaouais (UQO). Valide uniquement
%   avec un grade de doctorat. Cette déclaration requiert ensuite
%   d'utiliser les commandes \cmd{\faculteUL} et \cmd{\faculteUQO}.
% \end{DescribeOption}
%
% \begin{DescribeOption}{extensionUQAC}
%   L'option |extensionUQAC| identifie un mémoire réalisé en extension
%   à l'Université du Québec à Chicoutimi (UQAC). Valide uniquement
%   avec un grade de maîtrise. Cette déclaration requiert ensuite
%   d'utiliser les commandes \cmd{\faculteUL} et \cmd{\faculteUQAC}.
% \end{DescribeOption}
%
% Ensuite, la composition d'une page de titre peut nécessiter
% d'utiliser les commandes ci-dessous en plus de celles de la
% \autoref{sec:utilisation:commandes}.
%
% \begin{DescribeMacro}{\annee}
%   La commande \cmdprint{\annee} spécifie l'année du dépôt final de
%   la thèse ou du mémoire.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\univcotutelle}
%   Pour les thèses en cotutelle, la commande
%   \cmdprint{\univcotutelle} permet de saisir le nom, la ville et le
%   pays de l'université de cotutelle, sous la forme
%   \begin{quote}
%     |\univcotutelle{Nom de l'université \\ Ville, Pays}|
%   \end{quote}
%   Cette commande prend effet seulement lorsque la classe est chargée
%   avec l'option |cotutelle|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\gradecotutelle}
%   Pour les thèses en cotutelle, la commande
%   \cmdprint{\gradecotutelle} spécifie le grade conféré par
%   l'université de cotutelle, sous la forme
%   \begin{quote}
%     |\gradecotutelle{Nom du grade (sigle)}|
%   \end{quote}
%   Cette commande prend effet seulement lorsque la classe est chargée
%   avec l'option |cotutelle|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\univbidiplomation}
%   Pour les mémoires en bidiplomation, la commande
%   \cmdprint{\univbidiplomation} permet de saisir le nom, la ville et
%   le pays de l'université de bidiplomation, sous la forme
%   \begin{quote}
%     |\univbidiplomation{Nom de l'université \\ Ville, Pays}|
%   \end{quote}
%   Cette commande prend effet seulement lorsque la classe est chargée
%   avec l'option |bidiplomation|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\gradebidiplomation}
%   Pour les mémoires en bidiplomation, la commande
%   \cmdprint{\gradebidiplomation} spécifie le grade conféré par
%   l'université de bidiplomation, sous la forme
%   \begin{quote}
%     |\gradebidiplomation{Nom du grade (sigle)}|
%   \end{quote}
%   Cette commande prend effet seulement lorsque la classe est chargée
%   avec l'option |bidiplomation|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\faculteUL}
%   La commande \cmdprint{\faculteUL} sert à saisir deux types
%   d'informations:
%   \begin{enumerate}
%   \item noms des facultés pour les thèses et mémoires
%     multifacultaires, séparés par des commandes |\\|;
%   \item nom de la faculté de l'Université Laval où sont réalisés les
%     thèses et mémoires en extension à l'Université de Sherbrooke, à
%     l'UQO ou à l'UQAC.
%   \end{enumerate}
%   Cette commande prend effet seulement lorsque la classe est chargée
%   avec l'une ou l'autre des options |multifacultaire|,
%   |extensionUdeS|, |extensionUQO| ou |extensionUQAC|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\faculteUdeS}
%   La commande \cmdprint{\faculteUdeS} spécifie le nom de la faculté
%   de l'Université de Sherbrooke hébergeant la thèse en extension.
%   Cette commande prend effet seulement lorsque la classe est chargée
%   avec l'option |extensionUdeS|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\faculteUQO}
%   La commande \cmdprint{\faculteUQO} spécifie le nom de la faculté
%   de l'Université du Québec en Outaouais hébergeant la thèse en
%   extension. Cette commande prend effet seulement lorsque la classe
%   est chargée avec l'option |extensionUQO|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\faculteUQAC}
%   La commande \cmdprint{\faculteUQAC} spécifie le nom de la faculté
%   de l'Université du Québec à Chicoutimi hébergeant le mémoire en
%   extension. Cette commande prend effet seulement lorsque la classe
%   est chargée avec l'option |extensionUQAC|.
% \end{DescribeMacro}
%
% \begin{DescribeMacro}{\pagetitre}
%   La commande \cmdprint{\pagetitre} crée la page de titre à
%   l'endroit où elle apparait dans le code source. N'utilisez pas la
%   commande \cmd{\titlepage} de {\LaTeX} pour ce faire. De toutes les
%   commandes ci-dessus, c'est la seule qui doit se trouver dans le
%   corps du document plutôt que dans le préambule.
% \end{DescribeMacro}
%
% \MaybeStop{\PrintChanges}
%
% ^^A >>>>> Début du code de la classe
% \section{Mise en œuvre}
% \label{sec:meo}
%
% Cette annexe passe en revue le code {\TeX} et {\LaTeX} de la classe.
% Elle n'est susceptible d'intéresser que les personnes qui souhaitent
% explorer comment la classe est programmée.
%
% \subsection{Tests et valeurs booléennes}
% \changes{4.4}{2017-06-01}{Tests et valeurs booléennes réalisés sans
% \textbf{ifthen}.}
%
% Nous définissons ici toutes les valeurs booléennes requises par la
% classe.
%    \begin{macrocode}
%<*class>
\newif\ifUL@babel        \UL@babeltrue         % charger babel?
\newif\ifUL@natbib       \UL@natbibtrue        % charger natbib?
\newif\ifUL@hyperref     \UL@hyperreftrue      % charger hyperref?
\newif\ifUL@isthesis                           % programme est une these?
\newif\ifUL@iscotutelle  \UL@iscotutellefalse  % these en cotutelle?
\newif\ifUL@isexam       \UL@isexamfalse       % examen de doctorat?
\newif\ifUL@isessay      \UL@isessayfalse      % essai de maitrise?
\newif\ifUL@isresearch   \UL@isresearchfalse   % projet de recherche?
\newif\ifUL@isworkterm   \UL@isworktermfalse   % rapport de stage?
\newif\ifUL@hassubtitle  \UL@hassubtitlefalse  % document a un sous-titre?
\newif\ifUL@hastitlepage \UL@hastitlepagefalse % page titre utilisee?
%    \end{macrocode}
%
% \subsection{Options de la classe}
%
% Les grandes catégories d'options propres à la classe sont: la
% possibilité d'empêcher le chargement du paquetage \pkg{natbib}; la
% possibilité d'empêcher le chargement du paquetage \pkg{babel}; la
% possibilité d'empêcher le chargement du paquetage \pkg{hyperref}; la
% taille de la police de caractères en points; le type de grade; la
% déclaration qu'il s'agit d'un examen de doctorat ou d'un essai de
% maîtrise.
%
% \begin{macro}{nonatbib}
%   L'option |nonatbib| permet d'empêcher la classe de charger le
%   paquetage \pkg{natbib} en cas d'incompatibilité avec d'autres
%   paquetages spécialisés de mise en forme de la bibliographie.
%    \begin{macrocode}
\DeclareOption{nonatbib}{\UL@natbibfalse}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{nobabel}
%   L'option |nobabel| permet d'empêcher la classe de charger le
%   paquetage \pkg{babel}. Cette option peut s'avérer utile pour
%   les utilisateurs de {\XeLaTeX} qui souhaitent plutôt utiliser
%   \pkg{poyglossia} pour le traitement des langues dans leur
%   document.
%    \begin{macrocode}
\DeclareOption{nobabel}{\UL@babelfalse}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{nohyperref}
%   L'option |nohyperref| permet d'empêcher la classe de charger le
%   paquetage \pkg{hyperref}. Cette option peut s'avérer utile pour
%   charger d'autres paquetages comme \pkg{cleveref} ou
%   \pkg{glossaries} après \pkg{hyperref}.
%    \begin{macrocode}
\DeclareOption{nohyperref}{\UL@hyperreffalse}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{10pt,11pt,12pt}
%   Les valeurs possibles pour la taille de la police de caractères
%   sont |10pt|, |11pt| et |12pt|. Cette option est gérée au niveau de
%   la classe afin de s'assurer que les divers éléments sur les pages
%   de titre sont toujours de la même taille. La taille de la police
%   par défaut permet de déterminer si, par exemple, le titre du
%   document doit être dans la taille \cmd{\Huge}, \cmd{\huge} ou \cmd{\LARGE} de
%   \class{memoir}.
%
%   La taille de la police est passée à \class{memoir} et la macro
%   \cmd{\UL@ptsize} stocke la taille des caractères pour usage futur.
%    \begin{macrocode}
\newcommand*{\UL@ptsize}{}
\DeclareOption{10pt}{%
  \PassOptionsToClass{10pt}{memoir}
  \renewcommand*{\UL@ptsize}{10}}
\DeclareOption{11pt}{%
  \PassOptionsToClass{11pt}{memoir}
  \renewcommand*{\UL@ptsize}{11}}
\DeclareOption{12pt}{%
  \PassOptionsToClass{12pt}{memoir}
  \renewcommand*{\UL@ptsize}{12}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{PhD,MSc,MA,...}
%   Définition du type de grade et si la thèse ou le mémoire est
%   en cotutelle, en bidiplomation, multifacultaire ou en
%   extension. Seuls les doctorats sont offerts en cotutelle et seules
%   les maîtrises offrent l'option d'une bidiplomation. Les options
%   «multifacultaire» et «en extension» ne sont pertinentes que pour créer
%   une page de titre. La page de titre des programmes en extension
%   comporte une mention «offert en extension» ou «offerte en
%   extension» selon qu'il s'agit d'un doctorat ou d'une maîtrise; le
%   bon terme est défini avec l'option correspondante.
%    \begin{macrocode}
\newcommand*{\UL@typenum}{}
\DeclareOption{LLD}{%
  \UL@isthesistrue
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Docteur en droit (LL.~D.)}}
\DeclareOption{DMus}{%
  \UL@isthesistrue
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Docteur en musique (D.~Mus.)}}
\DeclareOption{DPsy}{%
  \UL@isthesistrue
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Docteur en psychologie (D.~Psy.)}}
\DeclareOption{DThP}{%
  \UL@isthesistrue
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Docteur en th\'eologie pratique (D.~Th.~P.)}}
\DeclareOption{PhD}{%
  \UL@isthesistrue
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Philosophi{\ae} doctor (Ph.~D.)}}
\DeclareOption{MATDR}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en am\'enagement du territoire %
    et d\'eveloppement r\'egional (M.ATDR)}}
\DeclareOption{MArch}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en architecture (M.~Arch.)}}
\DeclareOption{LLM}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en droit (LL.~M.)}}
\DeclareOption{MErg}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en ergoth\'erapie (M.~Erg.)}}
\DeclareOption{MMus}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en musique (M.~Mus.)}}
\DeclareOption{MPsEd}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en psycho\'education (M.~Ps.~\'ed.)}}
\DeclareOption{MScGeogr}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en sciences g\'eographiques (M.~Sc.~g\'eogr.)}}
\DeclareOption{MServSoc}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en service social (M.~Serv.~soc.)}}
\DeclareOption{MTravSoc}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre en travail social (M.~Trav.~soc.)}}
\DeclareOption{MA}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre \`es arts (M.A.)}}
\DeclareOption{MSc}{%
  \UL@isthesisfalse
  \renewcommand*{\UL@typenum}{0}
  \newcommand*{\UL@degree}{Ma\^itre \`es sciences (M.~Sc.)}}
\DeclareOption{multifacultaire}{%
  \ifUL@isthesis
    \renewcommand*{\UL@typenum}{1}
  \else
    \ClassError{ulthese}{%
      Incompatible option multifacultaire}
    {Use this option with a doctorate degree only.}
  \fi}
\DeclareOption{cotutelle}{%
  \ifUL@isthesis
    \renewcommand*{\UL@typenum}{2}
    \UL@iscotutelletrue
  \else
    \ClassError{ulthese}{%
      Incompatible option cotutelle}
    {Use this option with a doctorate degree only.}
  \fi}
\DeclareOption{bidiplomation}{%
  \ifUL@isthesis
    \ClassError{ulthese}{%
      Incompatible option bidiplomation}
    {Use this option with a master degree only.}
  \else
    \renewcommand*{\UL@typenum}{2}
  \fi}
\DeclareOption{extensionUdeS}{%
  \ifUL@isthesis
    \renewcommand*{\UL@typenum}{3}
    \newcommand*{\UL@offered}{offert}
    \newcommand*{\UL@extensionat}{Universit\'e de Sherbrooke}
    \newcommand*{\UL@extensionloc}{Sherbrooke, Canada}
  \else
    \ClassError{ulthese}{%
      Incompatible option extensionUdeS}
    {Use this option with a doctorate degree only.}
  \fi}
\DeclareOption{extensionUQO}{%
  \ifUL@isthesis
    \renewcommand*{\UL@typenum}{3}
    \newcommand*{\UL@offered}{offert}
    \newcommand*{\UL@extensionat}{Universit\'e du Qu\'ebec en Outaouais}
    \newcommand*{\UL@extensionloc}{Gatineau, Canada}
  \else
    \ClassError{ulthese}{%
      Incompatible option extensionUQO}
    {Use this option with a doctorate degree only.}
  \fi}
\DeclareOption{extensionUQAC}{%
  \ifUL@isthesis
    \ClassError{ulthese}{%
      Incompatible option extensionUQAC}
    {Use this option with a master degree only.}
  \else
    \renewcommand*{\UL@typenum}{3}
    \newcommand*{\UL@offered}{offerte}
    \newcommand*{\UL@extensionat}{Universit\'e du Qu\'ebec \`a Chicoutimi}
    \newcommand*{\UL@extensionloc}{Chicoutimi, Canada}
  \fi}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{examen,essai}
%   L'option |examen| change l'appellation «Thèse» sur la couverture
%   pour «Examen de doctorat». L'option |essai|, quant à elle, change
%   l'appellation «Maîtrise» pour «Essai». L'option |examen|
%   n'est compatible qu'avec l'une des options de thèse, alors que
%   |essai| n'est compatible qu'avec une option de maîtrise. Un
%   message d'erreur est émis en cas d'incompatibilité.
%    \begin{macrocode}
\DeclareOption{examen}{%
  \ifUL@isthesis
    \UL@isexamtrue
  \else
    \ClassError{ulthese}{%
      Incompatible option examen}
    {Use this option with a thesis type only.}
  \fi}
\DeclareOption{essai}{%
  \ifUL@isthesis
    \ClassError{ulthese}{%
      Incompatible option essai}
    {Use this option with a Master's type only.}
  \else
    \UL@isessaytrue
  \fi}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{projet,stage}
%   L'option |projet| inscrit l'appellation «Projet de recherche» sur
%   la page de titre et aucun type de diplôme, alors que l'option
%   |stage| inscrit «Rapport de stage». La page de titre est
%   autrement traitée comme celle d'une thèse ou d'un mémoire
%   standard. Ces options ont préséance sur toute déclaration de type de
%   doctorat ou de maîtrise. Il faut donc les utiliser avec prudence.
%    \begin{macrocode}
\DeclareOption{projet}{%
  \UL@isresearchtrue
  \renewcommand*{\UL@typenum}{0}
  \def\UL@degree{\mbox{}}}
\DeclareOption{stage}{%
  \UL@isworktermtrue
  \renewcommand*{\UL@typenum}{0}
  \def\UL@degree{\mbox{}}}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Chargement de la classe \texorpdfstring{\class{memoir}}{memoir}}
%
% Toutes les options de la classe sont passées à \class{memoir}. Le
% format de papier et la taille de police par défaut sont, dans
% l'ordre, |letterpaper| et |11pt|. On vérifie qu'un type de grade a
% bien été déclaré (à moins que l'option |projet| ou l'option |stage|
% ne soit présente). L'option de \class{memoir} |oneside| est
% explicitement déclarée afin d'éviter toute tentative de passer outre
% à cette exigence de la FESP.
%    \begin{macrocode}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}}
\ExecuteOptions{11pt,letterpaper}
\ProcessOptions\relax
\ifx\UL@typenum\empty
  \ifUL@isresearch\else
    \ifUL@isworkterm\else
      \ClassError{ulthese}{%
        No thesis type specified}
        {Declare the thesis type as a class option.}
    \fi
  \fi
\fi
\LoadClass[oneside]{memoir}
%    \end{macrocode}
%
% \subsection{Paquetages requis}
% \changes{5.0}{2018-06-10}{Le paquetage \textbf{unicode-math} n'est
% plus chargé par défaut par la classe.}
% \changes{5.0}{2018-08-11}{Le paquetage \textbf{hyperref} est
% désormais chargé dans la classe plutôt que dans les gabarits.
% Requiert le paquetage etoolbox.}
%
% La classe s'efforce de charger un minimum de paquetages afin d'éviter
% les conflits potentiels.
%
% \changes{6.0}{2024-05-24}{Mise en œuvre: paquetage \textbf{inputenc} ^^A
% désormais chargé avec l'option \texttt{utf8} lorsque la compilation
% est effectuée par pdf{\LaTeX}.}
% Le code source doit obligatoirement être enregistré dans le codage
% UTF-8. Avec pdf{\LaTeX}, cela requiert le paquetage \pkg{inputenc}.
%
% \changes{6.0}{2024-05-24}{Mise en œuvre: paquetage
% \textbf{microtype} désormais chargé par la classe avec
% \textbf{fontspec} ou \textbf{fontenc}.}
% \changes{6.0}{2024-05-24}{Mise en œuvre: option \texttt{Ligatures} ^^A
% plus définie par défaut pour les polices OpenType.}
% La classe charge également les paquetages minimalement nécessaires
% pour la gestion des polices de caractères, soit \pkg{fontspec} avec
% les moteurs modernes et \pkg{fontenc} avec pdf{\LaTeX}.
%    \begin{macrocode}
\iftutex
  \RequirePackage[babel=true]{microtype}
  \RequirePackage{fontspec}
\else
  \RequirePackage[babel=true]{microtype}
  \RequirePackage[utf8]{inputenc}
  \RequirePackage[T1]{fontenc}
\fi
%    \end{macrocode}
%
% Le paquetage \pkg{natbib} doit être chargé avant \pkg{babel} pour
% bien fonctionner, le cas échéant.
%    \begin{macrocode}
\ifUL@natbib
  \RequirePackage[round,semicolon,authoryear]{natbib}
\fi
%    \end{macrocode}
%
% Le support pour les langues autres que l'anglais est offert par le
% paquetage \pkg{babel}~--- à moins que l'option |nobabel| n'ait
% été spécifiée au chargement de la classe. Les langues sont passées
% en option de la classe, et non du paquetage. Le paquetage
% \pkg{numprint} est requis par \pkg{babel} pour la définition
% de la commande de mise en forme des nombres \cmd{\nombre}.
%    \begin{macrocode}
\ifUL@babel
  \RequirePackage{babel}
  \RequirePackage[autolanguage]{numprint}
\fi
%    \end{macrocode}
%
% Le paquetage obligatoire \pkg{hyperref} est chargé en tout dernier
% avec la commande \cmd{\AtEndPreamble} du paquetage \pkg{etoolbox}
% (chargé par \class{memoir}). Si l'option |nohyperref| a été
% spécifiée, la classe vérifie que le paquetage a été chargé. La
% configuration de base de la classe fait en sorte que tous les liens
% sont signalés par la couleur |ULlinkcolor| définie à la
% \autoref{sec:couleurs}.
% \changes{6.0}{2024-06-17}{Mise en œuvre: chargement explicite de
% \textbf{etoolbox} retiré, car le paquetage est chargé par memoir.}
%    \begin{macrocode}
\ifUL@hyperref
  \AtEndPreamble{\RequirePackage{hyperref}}
\else
  \AtBeginDocument{%
    \@ifpackageloaded{hyperref}{\relax}{%
      \ClassError{ulthese}{%
        Package hyperref is required}
      {Delete option nohyperref or load the package in the preamble.}}}
\fi
\PassOptionsToPackage{colorlinks,allcolors=ULlinkcolor}{hyperref}
%    \end{macrocode}
%
% L'insertion du logo de l'Université sur la page de titre requiert
% \pkg{graphicx}. Les coloration des hyperliens requiert \pkg{xcolor}.
%    \begin{macrocode}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
%    \end{macrocode}
%
% \changes{6.0}{2024-06-17}{Mise en œuvre: paquetage \textbf{textcomp} ^^A
% retiré, car non nécessaire.}
%
% \subsection{Paquetage incompatible}
%
% Le chargement du paquetage \pkg{geometry} avec la classe
% \class{memoir} modifie les marges du document. Pour cette raison,
% \pkg{geometry} est déclaré incompatible avec la classe.
%    \begin{macrocode}
\AtBeginDocument{%
  \@ifpackageloaded{geometry}{%
    \ClassError{ulthese}{%
      Package geometry is incompatible with this class}
    {Use the memoir class facilities to change the page layout.}}{\relax}}
%    \end{macrocode}
%
% \subsection{Couleur des hyperliens}
% \label{sec:couleurs}
%
% La classe définit une couleur standard pour les hyperliens, une
% teinte de bleu assez foncée pour être à la fois visible en couleur
% et peu contrastante si le document est imprimé en noir et blanc.
%    \begin{macrocode}
\definecolor{ULlinkcolor}{rgb}{0,0,0.3}
%    \end{macrocode}
%
% \subsection{Marges}
%
% Les marges exigées par les normes de présentation de la FESP sont de
% 30~mm pour les marges gauche et droite et 25~mm pour les marges
% supérieure et inférieure. Le pied de page est placé de sorte que le
% folio de page se retrouve à 10~mm du bas de la page.
%    \begin{macrocode}
\setlrmarginsandblock{30mm}{30mm}{*}
\setulmarginsandblock{25mm}{25mm}{*}
\checkandfixthelayout[nearest]
\setlength{\footskip}{\lowermargin}
\addtolength{\footskip}{-10mm}
%    \end{macrocode}
%
% Comme les thèses et mémoires comportent normalement plusieurs pages
% liminaires, il arrive que des folios (en chiffres romains) dépassent
% dans la marge de droite dans la table des matières. Pour régler ce
% problème, nous augmentont la largeur de la boîte prévue pour les
% imprimer.
%    \begin{macrocode}
\renewcommand{\@pnumwidth}{3em}
\renewcommand{\@tocrmarg}{4em}
%    \end{macrocode}
%
% \subsection{Interligne}
%
% L'espacement entre les lignes est d'un interligne et demi.
% L'espacement double entre les paragraphes est fixé à
% |0.5\baselineskip| afin d'en arriver à une disposition agréable à
% l'œil. Le retrait de première ligne est supprimé puisque plus
% nécessaire suite à l'ajout de l'espacement entre les paragraphes.
%    \begin{macrocode}
\OnehalfSpacing
\setlength{\parskip}{0.5\baselineskip}
\setlength{\parindent}{0em}
%    \end{macrocode}
%
% La table des matières, la liste des tableaux et la liste des figures
% sont composées à interligne simple.
%    \begin{macrocode}
\renewcommand{\tocheadstart}{\SingleSpacing\chapterheadstart}
\renewcommand{\lotheadstart}{\SingleSpacing\chapterheadstart}
\renewcommand{\lofheadstart}{\SingleSpacing\chapterheadstart}
%    \end{macrocode}
%
% \subsection{Entêtes et pieds de page}
%
% Les règles pour les entêtes et pieds de page sont uniformes pour
% tout le document: aucun entête et folio au centre du pied de page.
% Ceci correspond au style standard |plain|.
%    \begin{macrocode}
\pagestyle{plain}
%    \end{macrocode}
%
% \subsection{Pages de titre}
%
% Le code pour traiter et composer la page de titre (le cas échéant)
% et la page frontispice constitue l'essentiel de la classe.
%
% \subsubsection{Famille et style de la police de caractères}
%
% Les pages de titre sont composées avec la police \textsf{Helvetica}
% (famille \texttt{phv} dans la classification NFSS) dans les
% tailles\footnote{%
%   La police Helvetica produite par {\LaTeX} est plus grande que
%   celle utilisée par Microsoft Word. Pour cette raison, les tailles
%   utilisées dans la classe sont toutes quelques points inférieures à
%   celles des gabarits Word.}%
% et les graisses présentées au \autoref{tab:polices}. La
% déclaration |\fontencoding{T1}| est nécessaire avec les moteurs
% modernes pour explicitement charger la même police qu'avec
% pdf{\LaTeX}.
%
% \begin{table}
%   \centering
%   \caption{Tailles et graisses de la police Helvetica des éléments
%     de la page de titre}
%   \label{tab:polices}
%   \begin{tabular}{ll}
%     \toprule
%     Élément          & Police \\
%     \midrule
%     Titre            & 17~points gras \\
%     Sous-titre       & 14~points gras \\
%     Auteur           & 12~points gras \\
%     Nom du programme & 12~points gras \\
%     Autres éléments  & 12~points normal \\
%     \bottomrule
%   \end{tabular}
% \end{table}
%
%    \begin{macrocode}
\newcommand*{\UL@phvfamily}{\fontencoding{T1}\fontfamily{phv}\selectfont}
%    \end{macrocode}
% Les commandes sélectionnant ces polices sont adaptées selon la
% taille de police choisie pour le document afin d'être toujours
% identiques. Nous utilisons les déclarations de taille de police de
% la classe \class{memoir}, présentées au tableau~3.9 de sa
% documentation.
%    \begin{macrocode}
\ifnum\UL@ptsize=10\relax
  \newcommand*{\UL@fonttitle}{\normalfont\huge\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontsubtitle}{\normalfont\LARGE\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontauthor}{\normalfont\Large\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontprogram}{\UL@fontauthor}
  \newcommand*{\UL@fontbase}{\normalfont\Large\UL@phvfamily}
\fi
\ifnum\UL@ptsize=11\relax
  \newcommand*{\UL@fonttitle}{\normalfont\LARGE\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontsubtitle}{\normalfont\Large\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontauthor}{\normalfont\large\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontprogram}{\UL@fontauthor}
  \newcommand*{\UL@fontbase}{\normalfont\large\UL@phvfamily}
\fi
\ifnum\UL@ptsize=12\relax
  \newcommand*{\UL@fonttitle}{\normalfont\Large\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontsubtitle}{\normalfont\large\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontauthor}{\normalfont\normalsize\bfseries\UL@phvfamily}
  \newcommand*{\UL@fontprogram}{\UL@fontauthor}
  \newcommand*{\UL@fontbase}{\normalfont\normalsize\UL@phvfamily}
\fi
%    \end{macrocode}
%
% \subsubsection{Interfaces interne et externe}
%
% Définition des commandes permettant de construire les pages de titre.
% L'interface utilisateur est basée sur un ensemble de commandes
% internes. On commence par celles-ci.
%    \begin{macrocode}
\newcommand{\UL@maintitle}{}
\newcommand{\UL@subtitle}{}
\newcommand*{\UL@author}{}
\newcommand*{\UL@year}{}
\newcommand*{\UL@program}{}
\newcommand*{\UL@director}{}
\newcommand*{\UL@codirector}{}
\newcommand*{\UL@nameother}{}
\newcommand*{\UL@degreeother}{}
\newcommand*{\UL@facUL}{}
\newcommand*{\UL@facother}{}
%    \end{macrocode}
% Puis les commandes visibles pour les utilisateurs, qui redéfinissent
% les commandes internes. Voir la \autoref{sec:utilisation:commandes}
% pour leur signification.
%    \begin{macrocode}
\newcommand{\titre}[1]{\renewcommand{\UL@maintitle}{#1}}
\newcommand{\soustitre}[1]{%
  \UL@hassubtitletrue
  \renewcommand{\UL@subtitle}{#1}}
\newcommand*{\auteur}[1]{\renewcommand*{\UL@author}{#1}}
\newcommand*{\annee}[1]{\renewcommand*{\UL@year}{#1}}
\newcommand*{\programme}[1]{\renewcommand*{\UL@program}{#1}}
\newcommand*{\direction}[1]{\renewcommand*{\UL@director}{#1}}
\newcommand*{\codirection}[1]{\renewcommand*{\UL@codirector}{#1}}
\newcommand*{\univcotutelle}[1]{\renewcommand*{\UL@nameother}{#1}}
\newcommand*{\gradecotutelle}[1]{\renewcommand*{\UL@degreeother}{#1}}
\newcommand*{\univbidiplomation}[1]{\renewcommand*{\UL@nameother}{#1}}
\newcommand*{\gradebidiplomation}[1]{\renewcommand*{\UL@degreeother}{#1}}
\newcommand{\faculteUL}[1]{\renewcommand*{\UL@facUL}{#1}}
\newcommand*{\faculteUdeS}[1]{\renewcommand*{\UL@facother}{#1}}
\newcommand*{\faculteUQO}[1]{\renewcommand*{\UL@facother}{#1}}
\newcommand*{\faculteUQAC}[1]{\renewcommand*{\UL@facother}{#1}}
%    \end{macrocode}
%
% \subsubsection{Titre et sous-titre}
%
% Le titre et le sous-titre peuvent s'étendre sur plus d'une ligne.
% Sans traitement spécial, un long titre ou sous-titre aurait pour
% impact de décaler vers le bas tous les autres éléments de la page
% de titre. Pour contrer ce phénomène, nous devrons mesurer la hauteur du
% titre et du sous-titre pour ensuite ajuster en conséquence la
% distance entre ce bloc et les éléments qui suivent.
%
% \begin{macro}{\UL@measuretitle}
%   On place le titre et le sous-titre centrés dans des boîtes
%   \cmd{\UL@titlebox} et \cmd{\UL@subtitlebox}. La commande
%   \cmd{\UL@measuretitle} permettra de mesurer leur hauteur lorsque le
%   titre sera créé avec \cmd{\pagestitre}, plus loin. Un espacement
%   vertical d'un demi interligne est ajouté entre le titre et le
%   sous-titre, le cas échéant.
%    \begin{macrocode}
\newsavebox{\UL@titlebox}
\newsavebox{\UL@subtitlebox}
\newlength{\UL@titleboxtotht}
\newlength{\UL@subtitleboxtotht}
\newcommand{\UL@measuretitle}{%
  \setbox\UL@titlebox=\vbox{%
    \centering\UL@fonttitle\UL@maintitle}
  \setlength{\UL@titleboxtotht}{%
    \dimexpr\ht\UL@titlebox+\dp\UL@titlebox}
  \ifUL@hassubtitle
    \setbox\UL@subtitlebox=\vbox{%
      \centering\vspace*{0.5\baselineskip}\UL@fontsubtitle\UL@subtitle}
    \setlength{\UL@subtitleboxtotht}{%
      \dimexpr\ht\UL@subtitlebox+\dp\UL@subtitlebox}
  \fi}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Type de document}
%
% \begin{macro}{\UL@typeofdoc}
%   La commande |\UL@typeofdoc| contient le type de document qui est
%   produit: thèse, thèse en cotutelle, maîtrise, examen de doctorat,
%   essai, projet de recherche ou rapport de stage.
%    \begin{macrocode}
\ifUL@isthesis
  \ifUL@iscotutelle
    \newcommand*{\UL@typeofdoc}{Th\`ese en cotutelle}
  \else
    \newcommand*{\UL@typeofdoc}{Th\`ese}
  \fi
\else
  \newcommand*{\UL@typeofdoc}{M\'emoire}
\fi
\ifUL@isexam
  \renewcommand*{\UL@typeofdoc}{Examen de doctorat}
\fi
\ifUL@isessay
  \renewcommand*{\UL@typeofdoc}{Essai}
\fi
\ifUL@isresearch
  \renewcommand*{\UL@typeofdoc}{Projet de recherche}
\fi
\ifUL@isworkterm
  \renewcommand*{\UL@typeofdoc}{Rapport de stage}
\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\UL@docid}
%   La commande |\UL@docid| prépare ensuite la mention mise en forme
%   du type de document pour les pages de titre. La thèse ou le
%   mémoire en cotutelle ou en bidiplomation requiert un traitement
%   différent puisque le programme d'étude apparaît immédiatement sous
%   la mention.
%    \begin{macrocode}
\newcommand{\UL@docid}{%
  {\UL@fontprogram\UL@typeofdoc\par
  \ifnum\UL@typenum=2 \UL@program\par \fi}}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Détails sur les facultés et universités d'attache}
%
% \begin{macro}{\Ul@details}
%   La commande |\Ul@details| est la plus complexe puisque la
%   disposition des informations additionnelles sur le document varie
%   beaucoup selon le type de thèse ou de mémoire. Il existe quatre
%   grandes catégories de disposition des éléments sur la page de titre:
%   standard; multifacultaire; en cotutelle ou en bidiplomation
%   (disposition identique); en extension.
%
%   Tel qu'expliqué à l'\autoref{sec:pagetitre}, certains
%   types de grade requièrent expressément que certaines informations
%   soient fournies pour la composition d'une page de titre. Si un
%   élément d'information manque, un avertissement est émis.
%    \begin{macrocode}
\newcommand{\UL@details}{%
  \ifcase\UL@typenum\relax% 0 standard
    \vspace{96pt}
    {\UL@fontprogram\UL@program}\par
    \ifnum\ifUL@isresearch 1\else\ifUL@isworkterm 1\else 0\fi\fi
      =1 %
      \vspace{\baselineskip}
    \else
      \UL@degree
    \fi\par
    \vspace{112pt}
    Qu\'ebec, Canada\par
  \or%                      1 multifacultaire
    \vspace{96pt}
    {\UL@fontprogram\UL@program}\par
    \UL@degree\par
    \vspace{36pt}
    \ifx\UL@facUL\empty
      \ClassWarningNoLine{ulthese}{UL faculty names missing.}
    \else
      \UL@facUL\par
    \fi
    \vspace{48pt}
    Qu\'ebec, Canada\par
  \or%                      2 cotutelle et bidiplomation
    \vspace{72pt}
    Universit\'e Laval\par Qu\'ebec, Canada\par
    \UL@degree\par
    \vspace{\baselineskip} et\par \vspace{\baselineskip}
    \ifx\UL@nameother\empty
      \ClassWarningNoLine{ulthese}{Other university name and location missing}
    \else
      \UL@nameother\par
    \fi
    \ifx\UL@degreeother\empty
      \ClassWarningNoLine{ulthese}{Other university degree missing}
    \else
      \UL@degreeother\par
    \fi
  \or%                      3 extension
    \vspace{48pt}
    {\UL@fontprogram\UL@program\ de l'Universit\'e Laval\par
      \UL@offered\ en extension \`a l'\UL@extensionat}\par
    \vspace{36pt}
    \UL@degree\par
    \vspace{36pt}
    \ifx\UL@facother\empty
      \ClassWarningNoLine{ulthese}{Other university faculty name missing}
    \else
      \UL@facother\par
    \fi
    \UL@extensionat\par
    \UL@extensionloc\par
    \vspace{\baselineskip}
    \ifx\UL@facUL\empty
      \ClassWarningNoLine{ulthese}{UL faculty name missing}
    \else
      \UL@facUL\par
    \fi
    Universit\'e Laval\par Qu\'ebec, Canada\par
  \fi}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Conception de la page frontispice}
%
% \begin{macro}{\frontispice}
%   Les thèses et mémoires doivent obligatoirement débuter par une
%   page frontispice. Celle-ci comporte, de haut en bas:
%   \begin{enumerate}
%   \item un espace vide (créé avec une boîte de réglure invisible, ou
%     \emph{strut}) de la même hauteur que le logo de l'Université
%     Laval;
%   \item le titre et le sous-titre, le cas échéant;
%   \item le type de document (thèse, thèse en cotutelle,
%     mémoire, etc.);
%   \item le nom complet de l'auteur;
%   \item les noms des directeur et codirecteurs de recherche.
%   \end{enumerate}
%
%   Nous devons rétablir pour les pages de titre l'interligne simple et
%   l'espacement nul entre les paragraphes (\cmd{\parskip}). Ensuite, nous
%   devons ajuster la distance entre le bloc de titre et le type de
%   document (\cmd{\UL@docidspacing}) et celle entre ce dernier et le nom
%   de l'auteur (\cmd{\UL@authorspacing}). Cela fait en sorte que les
%   éléments des pages de titre se retrouvent (presque) toujours au même
%   endroit sur la page. Une distance minimale d'un interligne est
%   conservée entre le bloc de titre et le type de document
%   (précaution nécessaire pour l'éventuel cas d'un bloc de titre
%   s'étendant sur plusieurs lignes).
%
%   Le nom de l'auteur et ceux des directeurs et codirecteurs de
%   recherche sont insérées directement dans le code de la commande
%   \cmd{\frontispice}.
%    \begin{macrocode}
\newlength{\UL@docidspacing}
\setlength{\UL@docidspacing}{82pt}
\newlength{\UL@authorspacing}
\setlength{\UL@authorspacing}{72pt}
\newcommand{\UL@settitledims}{%
  \UL@measuretitle
  \addtolength{\UL@docidspacing}{-\UL@titleboxtotht}
  \addtolength{\UL@docidspacing}{-\UL@subtitleboxtotht}
  \ifdim\UL@docidspacing<\baselineskip\relax
  \setlength{\UL@docidspacing}{\baselineskip}
  \addtolength{\UL@authorspacing}{-\baselineskip}
  \fi}
\newcommand{\frontispice}{{%
    \ifUL@isexam\else\ifUL@isworkterm\else
      \clearpage
      \pagestyle{empty}
      \SingleSpacing\setlength{\parskip}{0pt}
      \centering
      \UL@fontbase
      \ifUL@hastitlepage\else
        \UL@settitledims
      \fi
      \ifnum\UL@typenum>1\relax
        \vspace*{0pt}\par
      \else
        \rule{0mm}{15mm}\par    % strut
      \fi
      \vspace{82pt}
      \box\UL@titlebox
      \box\UL@subtitlebox
      \vspace{\UL@docidspacing}
      \UL@docid
      \vspace{\UL@authorspacing}
      {\UL@fontauthor\UL@author}\par
      \vspace{72pt}
      Sous la direction de:\par
      \vspace{\baselineskip}
      \UL@director\par
      \UL@codirector
    \fi\fi
    \clearpage}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pagetitre}
%   La composition d'une page de titre est optionnelle pour les thèses
%   et mémoires de l'Université Laval. La commande \cmd{\pagetitre}
%   permet néanmoins d'en créer une conforme aux normes de
%   présentation matérielle de la FESP. La page de titre comporte, de
%   haut en bas:
%   \begin{enumerate}
%   \item le logo de l'Université Laval (sauf pour les thèses ou
%     mémoires réalisés en cotutelle, en bidiplomation ou en
%     extension);
%   \item le titre et le sous-titre, le cas échéant;
%   \item le type de document (thèse, thèse en cotutelle,
%     mémoire, etc.);
%   \item le nom complet de l'auteur;
%   \item une description du programme, du grade obtenu et des
%     facultés ou universités d'attache, le cas échéant;
%   \item la mention «Québec, Canada» si le logo de l'Université
%     Laval est présent;
%   \item la notice de copyright.
%   \end{enumerate}
%    \begin{macrocode}
\newcommand{\pagetitre}{{%
    \UL@hastitlepagetrue
    \clearpage
    \pagestyle{empty}
    \SingleSpacing\setlength{\parskip}{0pt}
    \centering
    \UL@fontbase
    \UL@settitledims
    \ifnum\UL@typenum>1\relax
      \vspace*{0pt}\par
    \else
      \includegraphics[height=15mm,keepaspectratio=true]{ul_p}\par
    \fi
    \vspace{82pt}
    \copy\UL@titlebox
    \copy\UL@subtitlebox
    \vspace{\UL@docidspacing}
    \UL@docid
    \vspace{\UL@authorspacing}
    {\UL@fontauthor\UL@author}\par
    \UL@details
    \vfill
    {\textcopyright} \UL@author, \UL@year\par
    \clearpage}}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Listes des figures et des tableaux}
%
% \begin{macro}{\listfigurename}
%   Le paquetage \pkg{babel} définit comme titre pour la liste des
%   figures «Table des figures», alors que la liste des tableaux est
%   «Liste des tableaux». Pour une plus grande symétrie, la classe
%   redéfinit le titre correspondant à \cmd{\listoffigures}. La commande
%   \cmd{\addto} est nécessaire pour éviter que \pkg{babel} redéfinisse
%   le titre à |\begin{document}|.
%    \begin{macrocode}
\ifUL@babel
  \addto\captionsfrench{\renewcommand{\listfigurename}{Liste des figures}}
\fi
%    \end{macrocode}
%   Si \pkg{babel} n'est pas chargé, ce sera à l'utilisateur de faire
%   une correction équivalente. Avec \pkg{polyglossia}, la commande à
%   insérer dans l'entête du document est la même que ci-dessus.
% \end{macro}
%
% \subsection{Dédicace et épigraphe}
%
% La dédicace et l'épigraphe sont mises en forme avec la commande
% \cmd{\epigraph} de \class{memoir}.
% \begin{macro}{\dedicace}
%   La dédicace est une épigraphe simplifiée placée seule sur une
%   page, alignée à droite à une dizaine de lignes de la marge
%   supérieure, sans auteur ou source et sans ligne de démarcation.
%    \begin{macrocode}
\newcommand{\dedicace}[1]{{%
    \clearpage
    \pagestyle{empty}
    \setlength{\beforeepigraphskip}{10\baselineskip}
    \setlength{\epigraphrule}{0pt}
    \epigraphtextposition{flushright}
    \mbox{}\epigraph{\itshape #1}{}}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\epigraphe}
%   L'épigraphe de début de document est placée seule sur une page à
%   une dizaine de lignes de la marge supérieure. Pour le reste, on
%   s'en remet à la commande \cmd{\epigraph} de \class{memoir}.
%    \begin{macrocode}
\newcommand{\epigraphe}[2]{{%
    \clearpage
    \pagestyle{empty}
    \setlength{\beforeepigraphskip}{10\baselineskip}
    \mbox{}\epigraph{#1}{#2}}}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Citations}
%
% \begin{environment}{quote}
%   La classe redéfinit l'environnement |quote| de \class{memoir}
%   afin que le texte des citations se trouve en retrait de 10~mm à
%   gauche et à droite, conformément aux règles de présentation de la
%   FESP.
%    \begin{macrocode}
\renewenvironment{quote}{%
  \list{}{\rightmargin 10mm \leftmargin 10mm}%
  \item[]}{\endlist}
%    \end{macrocode}
%   \end{environment}
%
% \begin{environment}{quotation}
%   Il en va de même de l'environnement |quotation|. Cependant, cet
%   environnement passe également à l'interligne simple et la classe
%   ajuste l'espacement vertical entre les paragraphes afin que
%   ceux-ci soient bien distincts les uns des autres tout en demeurant
%   raisonnablement compacts. Cet espacement est ici fixé à 6~points.
%    \begin{macrocode}
\renewenvironment{quotation}{%
  \list{}{%
    \SingleSpacing
    \listparindent 0em
    \itemindent    \listparindent
    \leftmargin    10mm
    \rightmargin   \leftmargin
    \parsep        6\p@ \@plus\p@}%
  \item[]}{\endlist}
%    \end{macrocode}
% \end{environment}
%
% \subsection{Numérotation des divisions du document}
%
% Par défaut, \class{memoir} numérote les divisions du document
% seulement jusqu'au niveau des sections. La classe étend la
% numérotation aux sous-sections.
%    \begin{macrocode}
\setsecnumdepth{subsection}
%</class>
%    \end{macrocode}
% ^^A <<<<< Fin du code de la classe
%
% ^^A Les notes de versions relatives aux gabarits doivent se trouver
% ^^A avant \Finale
% \changes{5.0}{2018-06-08}{Gabarits: meilleure indication du texte à
% remplacer.}
% \changes{5.0}{2018-06-08}{Gabarits: bonification de la structure
% d'un chapitre de thèse ou de mémoire par articles.}
% \changes{5.0}{2018-04-25}{Gabarits: ajout d'étiquettes et de renvois
% dans les gabarits des parties du document.}
% \changes{5.0}{2018-04-25}{Gabarits: automatisation de l'ajout
% d'entrées dans la table des matières à l'aide d'étiquettes et de
% renvois.}
% \changes{4.4}{2017-05-16}{Gabarits: nouveau gabarit pour une thèse
% par articles.}
% \changes{4.2}{2016-03-29}{Gabarits: nouvelles options de babel.}
% \changes{6.0}{2024-05-22}{Gabarits: gabarits pour une thèse par
% articles révisés suite aux changements aux règles de présentation.}
% \changes{6.0}{2024-05-22}{Gabarits: meilleure sélection automatique
% des paquetages pour les polices et pour le codage selon le moteur
% {\TeX}.}
% \changes{6.0}{2024-06-20}{Gabarits: seul l'exemple de changement
% pour les polices STIX Two est maintenant fourni, et ce, dans une
% version qui fonctionne avec les polices livrées avec TeX Live.}
%
% \Finale
%
% \iffalse
% ^^A Gabarits du document maître
%<*gabarit>
%<phd&standard>%% GABARIT POUR THÈSE STANDARD
%<phd&mesure>%% GABARIT POUR THÈSE SUR MESURE
%<phd&articles>%% GABARIT POUR THÈSE PAR ARTICLES
%<phd&multifac>%% GABARIT POUR THÈSE MULTIFACULTAIRE
%<phd&cotutelle>%% GABARIT POUR THÈSE EN COTUTELLE
%<phd&UdeS>%% GABARIT POUR THÈSE EN EXTENSION À L'UNIVERSITÉ DE SHERBROOKE
%<phd&UQO>%% GABARIT POUR THÈSE EN EXTENSION À L'UQO
%<m&standard>%% GABARIT POUR MÉMOIRE STANDARD
%<m&mesure>%% GABARIT POUR MÉMOIRE SUR MESURE
%<m&bidiplomation>%% GABARIT POUR MÉMOIRE EN BIDIPLOMATION
%<m&UQAC>%% GABARIT POUR MÉMOIRE EN EXTENSION À L'UQAC
%%
%% Consulter la documentation de la classe ulthese pour une
%% description détaillée de la classe, de ce gabarit et des options
%% disponibles.
%%
%% Vous devez obligatoirement enregistrer tout fichier contenant des
%% caractères non-ASCII (comme des lettres accentuées) dans le codage
%% de caractères UTF-8.
%%
%% [Ne pas hésiter à supprimer les commentaires après les avoir lus.]
%%
%% Déclaration de la classe avec le type de grade
%<phd>%%   [l'un de LLD, DMus, DPsy, DThP, PhD]
%<m>%%   [l'un de MATDR, MArch, LLM, MErg, MMus, MPsEd, MScGeogr,
%<m>%%    MServSoc, MTravSoc, MA, MSc]
%% et les langues les plus courantes. Le français sera la langue par
%% défaut du document.
%<phd&(standard|articles)>\documentclass[PhD,english,french]{ulthese}
%<phd&cotutelle>\documentclass[PhD,cotutelle,english,french]{ulthese}
%<m&(standard|articles)>\documentclass[MSc,english,french]{ulthese}
%<m&bidiplomation>\documentclass[MA,bidiplomation,english,french]{ulthese}
  %% Charger ici les autres paquetages nécessaires pour le document.
  %% Quelques exemples; décommenter au besoin.
  %\usepackage{amsmath}       % recommandé pour les mathématiques
  %\usepackage{icomma}        % gestion de la virgule dans les nombres

  %% Utilisation d'une autre police de caractères pour le document
  %% (exemple pour les polices STIX Two incluses dans TeX Live).
  %% - Avec pdfLaTeX
  %\usepackage{stix2}
  %% - Avec XeLaTeX
  %\setmainfont{STIXTwoText}
  %[
  %  Extension = .otf,
  %  UprightFont = *-Regular,
  %  BoldFont = *-SemiBold,
  %  ItalicFont = *-Italic,
  %  BoldItalicFont = *-SemiBoldItalic,
  %]
  %\setmathfont{STIXTwoMath-Regular}
  %[
  %  Extension = .otf,
  %]

  %% Options de mise en forme du mode français de babel. Consulter la
  %% documentation du paquetage babel-french pour les options
  %% disponibles. Désactiver (effacer ou mettre en commentaire) si
  %% l'option 'nobabel' est spécifiée au chargement de la classe.
  \frenchsetup{%
    StandardItemizeEnv=true,       % format standard des listes
    ThinSpaceInFrenchNumbers=true, % espace fine dans les nombres
    og=«, fg=»                     % caractères « et » sont les guillemets
  }

  %% Style de la bibliographie.
  \bibliographystyle{}

  %% Composition de la page frontispice. Remplacer les éléments entre < >.
  %% Supprimer les caractères < >. Couper un long titre ou un long
  %% sous-titre manuellement avec \\.
  \titre{<Titre principal>}
  % \titre{Ceci est un exemple de long titre \\
  %   avec saut de ligne manuel}
  % \soustitre{Sous-titre le cas échéant}
  % \soustitre{Ceci est un exemple de long sous-titre \\
  %   avec saut de ligne manuel}
  \auteur{<Prénom Nom>}
%<phd&(standard|cotutelle)>  \programme{Doctorat en <discipline> <-- majeure, s'il y a lieu>}
%<m&standard>  \programme{Maîtrise en <discipline> <-- majeure, s'il y a lieu>}
%<m&bidiplomation>  \programme{Maîtrise en <discipline>}
%<!(cotutelle|bidiplomation)>  \direction{<Prénom Nom>, <directeur ou directrice> de recherche}
%<cotutelle>  \direction{<Prénom Nom>, <directeur ou directrice> de recherche \\
%<cotutelle>             <Prénom Nom>, <directeur ou directrice> de cotutelle}
%<bidiplomation>  \direction{<Prénom Nom>, <directeur ou directrice> de recherche \\
%<bidiplomation>             <Prénom Nom>, <directeur ou directrice> de recherche}
  % \codirection{<Prénom Nom>, <codirecteur ou codirectrice> de recherche}
  % \codirection{<Prénom Nom>, <codirecteur ou codirectrice> de recherche \\
  %              <Prénom Nom>, <codirecteur ou codirectrice> de recherche}

  %% Les commandes ci-dessous servent uniquement pour la création
  %% d'une page de titre (interdite lors du dépôt à la FESP).
  % \annee{<20xx>}
%<cotutelle>  % \univcotutelle{<Université de cotutelle> \\ <Ville>, <Pays>}
%<bidiplomation>  % \univcotutelle{<Université de bidiplomation> \\ <Ville>, <Pays>}
%<cotutelle|bidiplomation>  % \gradecotutelle{<Nom du grade> (<sigle du grade>)}

\begin{document}

\frontmatter                    % pages liminaires

\frontispice                    % page frontispice (obligatoire)

\include{resume}                % résumé français (obligatoire)
\include{abstract}              % résumé anglais (optionnel)
\cleardoublepage

\tableofcontents                % table des matières (obligatoire)
\cleardoublepage

\listoftables                   % liste des tableaux
\cleardoublepage

\listoffigures                  % liste des figures
\cleardoublepage

\dedicace{<Dédicace si désiré>}
\cleardoublepage

\epigraphe{<Texte de l'épigraphe>}{<Source ou auteur>}
\cleardoublepage

\include{remerciements}         % remerciements
%<!articles>\include{avantpropos}           % avant-propos (optionnel)
%<articles>\include{avantpropos}           % avant-propos (obligatoire)

\mainmatter                     % corps du document

\include{introduction}          % introduction
%<!articles>\include{chapitre1}             % chapitre 1
%<articles>\include{chapitre1-articles}    % chapitre 1
%<!articles>\include{chapitre2}             % chapitre 2, etc.
%<articles>\include{chapitre2-articles}    % chapitre 2, etc.
\include{conclusion}            % conclusion

\appendix                       % annexes le cas échéant

\include{annexe}                % annexe A

\bibliography{}                 % production de la bibliographie
\end{document}
%</gabarit>
%
% ^^A Gabarits des parties du document
%<*resume>
\chapter*{Résumé}               % ne pas numéroter
\label{chap-resume}             % étiquette pour renvois
\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-resume}} % inclure dans TdM

\begin{otherlanguage*}{french}
  <Texte du résumé en français. Obligatoire.>
\end{otherlanguage*}
%</resume>
%
%<*abstract>
\chapter*{Abstract}             % ne pas numéroter
\label{chap-abstract}           % étiquette pour renvois
\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-abstract}} % inclure dans TdM

\begin{otherlanguage*}{english}
  <Text of English abstract. Optional, but recommended.>
\end{otherlanguage*}
%</abstract>
%
%<*remerciements>
\chapter*{Remerciements}        % ne pas numéroter
\label{chap-remerciements}      % étiquette pour renvois
\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-remerciements}} % inclure dans TdM

<Texte des remerciements en prose.>
%</remerciements>
%
%<*avantpropos>
\chapter*{Avant-propos}         % ne pas numéroter
\label{chap-avantpropos}        % étiquette pour renvois
\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-avantpropos}} % inclure dans TdM

<Texte de l'avant-propos. Obligatoire seulement pour une thèse ou un
mémoire par intégration d'articles.>
%</avantpropos>
%
%<*introduction>
\chapter*{Introduction}         % ne pas numéroter
\label{chap-introduction}       % étiquette pour renvois
\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-introduction}} % inclure dans TdM

<Texte de l'introduction. La thèse ou le mémoire devrait normalement
débuter par une introduction. Celle-ci est traitée comme un chapitre
normal, sauf qu'elle n'est pas numérotée.>
%</introduction>
%
%<*chapitre>
\chapter{<Titre du chapitre ou de l'article>}     % numéroté
\label{chap-}                   % étiquette pour renvois (à compléter!)

%<articles>\section{Résumé}
%<articles>
%<articles>\begin{otherlanguage*}{french}
%<articles>  <Résumé de l'article en français. Obligatoire.>
%<articles>\end{otherlanguage*}
%<articles>
%<articles>\section{Abstract}
%<articles>
%<articles>\begin{otherlanguage*}{english}
%<articles>  <English abstract of the paper. Optional, but recommended.>
%<articles>\end{otherlanguage*}
%<articles>
<Texte du chapitre ou de l'article.>
%<articles>
%</chapitre>
%
%<*conclusion>
\chapter*{Conclusion}           % ne pas numéroter
\label{chap-conclusion}         % étiquette pour renvois
\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-conclusion}} % inclure dans TdM

<Texte de la conclusion. Une thèse ou un mémoire devrait normalement
se terminer par une conclusion placée avant les annexes, le cas
échéant. La conclusion est traitée comme un chapitre normal, sauf
qu'elle n'est pas numérotée.>
%</conclusion>
%
%<*annexe>
\chapter{<Titre de l'annexe>}     % numérotée
\label{chap-}                   % étiquette pour renvois (à compléter!)

<Texte de l'annexe.>
%</annexe>
% \fi
