\chapter{Personnalisation}\label{cha:configuration}

Cette section passe en revue les outils de personnalisation propres ou pas à la
\yatcl{} :
\begin{enumerate}
\item options de classe ;
\item options de préambule ;
\item commandes (et options de commandes) de la \yatcl;
\item packages chargés par la \yatcl ;
\item packages chargés manuellement.
\end{enumerate}

\section{Options de classe}\label{options-classe}

Les \meta{options} de classe de la \yatcl sont à passer selon la syntaxe
usuelle :
\begin{preamblecode}
\documentclass[÷\meta{options}÷]{yathesis}
\end{preamblecode}
% ^^A Tester et documenter la commande ×\yasetup×.

% ^^A La \yatcl accepte, en sus des options qui lui sont propres, celles de la
% ^^A \Class{book} sur laquelle est elle basée.

\subsection{Options de la classe \textsf{book}}\label{sec:options-usuelles-de}

Parmi les \meta{options} de la \yatcl figurent celles de la \Class{book},
notamment :
\begin{itemize}
\item \docAuxKey{10pt} (défaut), \docAuxKey{11pt}, \docAuxKey{12pt}, pour fixer
  la taille de base des caractères ;
\item éventuellement :
  \begin{itemize}
  \item \docAuxKey{leqno} pour afficher les numéros d'équations à gauche ;
  \item \docAuxKey{fleqn} pour que les équations hors texte soient toutes
    alignées à gauche avec un même retrait d'alinéa ;
  \item \docAuxKey{oneside} pour une pagination en recto seulement.
  \end{itemize}
\end{itemize}
\begin{dbwarning}{Options usuelles de la \Class{book} : à utiliser avec
    discernement}{}
  Dans le cadre d'un usage de la \yatcl, il est \emph{fortement} déconseillé de
  recourir à d'autres options usuelles de la \Class{book} que celles
  ci-dessus : cela risquerait de produire des résultats non souhaités.
\end{dbwarning}

% ^^A \subsection{Options de la \yatcl}\label{sec:options-yatcl}
%
% ^^A Les \meta{options} discutées dans cette section, propres à la \yatcl{},
% ^^A permettent de contrôler les grandes lignes du document.

\subsection{Langues (principale, secondaire,
  supplémentaires)}\label{sec:langues}

Par défaut, un mémoire créé avec la \yatcl est composé :
\begin{itemize}
\item en français comme langue principale;
\item en anglais comme langue secondaire\footnote{Utilisée ponctuellement pour
    des éléments supplémentaires tels qu'une page de titre, un résumé ou des
    mots clés.}.
\end{itemize}
%
\begin{docKey}{mainlanguage}{=\docValue{french}\textbar\docValue{english}}{pas
    de valeur par défaut, initialement \docValue{french}}
  Pour que la langue principale \phrase{et activée par défaut} du mémoire soit
  l'anglais, il suffit de le stipuler au moyen de l'option
  ×mainlanguage=english×. Le français devient alors automatiquement la langue
  secondaire de la thèse.
\end{docKey}

\begin{dbwarning}{Langues principales et secondaires prises en charge}{}
  Les seules langues \emph{principale} et \emph{secondaire} prises en charge
  par la \yatcl sont le français (\docValue{french}) et l'anglais
  (\docValue{english}).
\end{dbwarning}

\begin{dbremark}{Langues supplémentaires}{languessupplementaires}
  Il est cependant possible de faire usage de langues \emph{supplémentaires},
  autres que le français et l'anglais, en les stipulant en option de
  \docAuxCommand{documentclass}\footnote{Ces langues doivent être l'une de
    celles supportées par le \Package{babel}.} et en les employant selon la
  syntaxe du \Package*{babel}.
\end{dbremark}

\begin{dbexample}{Langue supplémentaire pour thèse
    multilingue principalement en français}{}
  Pour composer un mémoire ayant pour langue principale le français et
  supplémentaire l'espagnol \phrase{cas par exemple d'une thèse en linguistique
    espagnole}, il suffit de passer l'option suivante à la \yatcl{}.
\begin{preamblecode}
\documentclass[spanish]{yathesis}
\end{preamblecode}
\end{dbexample}

\begin{dbexample}{Langue supplémentaire pour thèse
    multilingue principalement en anglais}{}
  Pour composer un mémoire ayant pour langue principale l'anglais (donc
  secondaire le français) et supplémentaire l'espagnol \phrase{cas par exemple
    d'une thèse en linguistique espagnole}, il suffit de passer les options
  suivantes à la \yatcl{}.
\begin{preamblecode}
\documentclass[mainlanguage=english,spanish]{yathesis}
\end{preamblecode}
\end{dbexample}

\subsection{Versions du mémoire}\label{sec:versions}

Au moyen de la clé \refKey{version}, la \yatcl{} permet de facilement produire
différentes versions du document : \enquote{intermédiaire} (par défaut),
\enquote{à soumettre}, \enquote{finale} et \enquote{brouillon}.

{\tcbset{before lower=\vspace*{\baselineskip}\par}
  \begin{docKey}{version}{=\docValue{inprogress}\textbar\docValue{inprogress*}\textbar\docValue{submitted}\textbar\docValue{submitted*}\textbar\docValue{final}\textbar\docValue{draft}}{pas
      de valeur par défaut, initialement \docValue{inprogress}}
    Cette clé permet de spécifier la version du document à produire, au moyen
    des valeurs suivantes.
    \begin{description}
    \item[\docValue{inprogress}.] Cette valeur produit une version
      \enquote{intermédiaire} du document\footnote{Une telle version est
        éventuellement destinée à être diffusée à des relecteurs.}. Ses
      caractéristiques sont les suivantes.
      \begin{enumerate}
      \item\label{item:inprogress:1} Pour indiquer clairement qu'il s'agit d'une
        version \enquote{intermédiaire}, (presque) tous les pieds de page
        contiennent en petites capitales la mention \enquote{Version
          intermédiaire en date du \meta{date du jour}} ou
        \foreignquote{english}{Work in progress as of \meta{date du
            jour}}\selonlangue{}.
      \item\label{item:inprogress:2} Aucun élément \enquote{obligatoire}
        (cf. \vref{sec:comm-oblig}) manquant n'est signalé.
      \end{enumerate}
    \item[\docValue{inprogress*}.] Cette valeur produit le même effet que la
      valeur \docValue{inprogress} sauf que le caractère non définitif de la
      version est renforcé par la mention \enquote{travail en cours} ou
      \foreignquote{english}{work in progress}\selonlangue{}, figurant en
      filigrane et en capitales sur toutes les pages.
    \item[\docValue{submitted}.] Cette valeur produit une version du document
      destinée à être \enquote{soumise} aux rapporteurs. \emph{Contrairement à}
      la version par défaut :
      \begin{enumerate}
      \item l'affichage en pied de page de la mention \enquote{Version
          intermédiaire en date du \meta{date du jour}} ou
        \foreignquote{english}{Work in progress as of \meta{date du jour}} est
        désactivé ;
      \item \changes*{v0.99f}{2014/07/11}{En versions \enquote{à soumettre},
          date de soutenance et composition du jury absentes des pages de titre
          (et non obligatoires)}% ^^A
        % ^^A
        sur les pages de titre, la composition du jury est masquée et la date de
        soutenance est supprimée\footnote{En versions soumises aux rapporteurs,
          le doctorant ne peut préjuger ni d'un jury ni d'une date de
          soutenance, ne sachant pas encore s'il va être autorisé à soutenir.} ;
      \item tout élément \enquote{obligatoire} (cf. \vref{sec:comm-oblig})
        manquant est signalé par une erreur de compilation\footnote{La date de
          soutenance est normalement \enquote{obligatoire}, sauf dans les
          versions soumises aux rapporteurs où elle ne figure nulle part.}.
      \end{enumerate}
    \item[\docValue{submitted*}.] %
      \changes{v0.99k}{2014/10/01}{Nouvelle commande
        \protect\refCom{submissiondate} permettant de stipuler une date de
        soumission du mémoire aux rapporteurs}% ^^A
      % ^^A
      Cette valeur produit le même effet que la valeur \docValue{submitted} sauf
      que le caractère \enquote{à soumettre} de la version est renforcé par
      l'affichage, sur (presque) tous les pieds de pages et en petites
      capitales, de la mention \enquote{Version soumise en date du \meta{date}}
      ou \foreignquote{english}{Submitted work as of
        \meta{date}}\selonlangue{}. Ici, la \meta{date} est par défaut celle du
      jour, mais il est possible d'en spécifier une autre au moyen de la
      commande \refCom{submissiondate}.
    \item[\docValue{final}.] Cette valeur produit une version \enquote{finale}
      du document. \emph{Contrairement à} la version par défaut :
      \begin{enumerate}
      \item l'affichage en pied de page de la mention \enquote{Version
          intermédiaire en date du \meta{date du jour}} ou
        \foreignquote{english}{Work in progress as of \meta{date du jour}} est
        désactivé ;
      \item si un élément \enquote{obligatoire} (cf. \vref{sec:comm-oblig})
        manque, une erreur de compilation signale l'omission.
      \end{enumerate}
    \item[\docValue{draft}.] Cette valeur produit une version
      \enquote{brouillon} du document\footnote{Une telle version est \emph{a
          priori} à usage exclusif de l'utilisateur et n'est en particulier pas
        destinée à être diffusée.}. Ses caractéristiques sont les suivantes :
      \begin{itemize}
      \item \emph{comme} la version par défaut, si un élément
        \enquote{obligatoire} (cf. \vref{sec:comm-oblig}) manque, aucune erreur
        de compilation ne signale l'omission ;
      \item \emph{contrairement à} la version par défaut, la mention
        \enquote{Version intermédiaire en date du \meta{date du jour}} ou
        \foreignquote{english}{Work in progress as of \meta{date du jour}} ne
        figure pas ;
      \item \emph{en plus de} la version par défaut :
        \begin{enumerate}
        \item Les différentes zones de la page, notamment celle allouée au
          texte, sont matérialisées et les dépassements de marges sont signalés
          par une barre verticale noire dans la marge.
        \item La mention \enquote{brouillon} ou
          \foreignquote{english}{draft}\selonlangue{} figure en filigrane (et en
          capitales) sur toutes les pages du document.
        \item Sur certaines pages, notamment celles de titre :
          \begin{enumerate}
          \item les données caractéristiques de la thèse\footnote{Auteur,
              (sous-)titre, institut(s), directeurs, rapporteurs, examinateurs,
              etc.} sont des hyperliens vers le fichier de configuration de la
            thèse\footnote{Cf. \vref{sec:lieu-de-saisie}.} où il est possible de
            les (re)définir (cf. \vref{sec:expressions-cles});
          \item\label{item-expression} les expressions fournies par la
            \yatcl\footnote{\enquote{Thèse présentée par},
              \foreignquote{english}{In order to become Doctor from},
              \foreignquote{english}{draft}, \enquote{Version intermédiaire en
                date du}, etc. insérées de façon automatique sur certaines pages
              du mémoire.} sont :
            \begin{itemize}
            \item estampillées du label qui les identifie;
            \item des hyperliens vers le fichier de configuration de la thèse
              (cf.  \vref{rq:configurationfile}) où il est possible de les
              (re)définir (cf. \vref{sec:expressions-cles}).
            \end{itemize}
          \end{enumerate}
          Si le système d'exploitation est correctement configuré, un simple
          clic sur ces hyperliens ouvre le fichier correspondant dans l'éditeur
          de texte \LaTeX{} par défaut.
        \end{enumerate}
      \end{itemize}
    \end{description}
  \end{docKey}
}

\begin{docCommand}{submissiondate}{\marg{jour}\marg{mois}\marg{année}}
  Cette commande définit la date de la soumission du mémoire (qui ne figure
  qu'en version \enquote{\docValue*{submitted*}}). Ses arguments sont soumis aux
  mêmes contraintes que ceux de la commande \refCom{date}
  (cf. \vref{wa:format-date}).
\end{docCommand}

Les versions \enquote{à soumettre} et \enquote{finale} d'un mémoire de thèse ne
sont à produire qu'exceptionnellement, en toute fin de rédaction. De ce fait :
\begin{dbwarning}{Par défaut, documents en version intermédiaire}{}
  Un document composé avec la \yatcl{} est par défaut en version
  \emph{intermédiaire}. Autrement dit, la clé \refKey{version} a pour valeur
  initiale \docValue*{inprogress}.
\end{dbwarning}

\subsection{Formats de sortie}
\label{sec:formats-de-sortie}

Les documents composés avec la \yatcl{} peuvent avoir deux formats de sortie :
\enquote{écran} (par défaut) et \enquote{papier}, stipulés au moyen de la clé
\refKey{output}.

\begin{docKey}{output}{=\docValue{screen}\textbar\docValue{paper}\textbar\docValue{paper*}}{pas
    de valeur par défaut, initialement \docValue{screen}}
  Cette clé permet de spécifier le format de sortie du document, au moyen des
  valeurs suivantes.
  \begin{description}
  \item[\docValue{screen}.] Avec cette valeur, le document a un format de
    sortie destiné à être visualisé à l'écran. Ce format ne présente pas de
    spécificités particulières.
  \item[\docValue{paper}.] Avec cette valeur, le document a un format de sortie
    destiné à être imprimé sur papier. Les différences par rapport au format
    \enquote{écran} sont les suivantes :
    \begin{enumerate}
    \item si le \Package{hyperref} est chargé par l'utilisateur,
      \begin{enumerate}
      \item\label{item:paper:1} sa commande
        ×\href{×\meta{\acrshort*{url}}×}{×\meta{texte}×}× est automatiquement
        remplacée par :
        \begin{itemize}
        \item
          \meta{texte}\lstinline[deletekeywords={[2]url}]+\footnote{\url{+\meta{\acrshort*{url}}×}}×
          si elle figure dans le texte ordinaire ;
        \item \meta{texte}
          \lstinline[deletekeywords={[2]url}]+(\url{+\meta{\acrshort*{url}}×})×
          si elle figure en note de bas de page ;
        \end{itemize}
      \item les liens hypertextes sont systématiquement matérialisés comme le
        fait par défaut le \Package{hyperref}, c'est-à-dire par des cadres
        rectangulaires de couleurs (qui ne figurent pas sur le document
        papier). Ainsi, si l'utilisateur recourt à la commande
        ×\hypersetup{colorlinks=true}× pour que, en sortie \enquote{écran}, les
        hyperliens soient composés en couleur et non pas encadrés, il n'a pas
        besoin de modifier ce choix pour que, en sortie \enquote{papier}, cette
        coloration soit désactivée ;
      \end{enumerate}
      \item\label{item:paper:2} les barres de navigation affichées par certains
        styles de glossaires\footnote{Telles qu'on peut en voir
          \vref{fig:printacronyms,fig:printglossary}.} \emph{sont} masquées.
    \end{enumerate}
  \item[\docValue{paper*}.] Cette valeur produit le même effet que la valeur
    \docValue{paper} sauf que son \vref{item:paper:2} est inversé : les barres
    de navigation \emph{ne} sont \emph{pas} masquées.
  \end{description}
\end{docKey}

\begin{dbwarning}{Mises en page éventuellement différentes en sortie
    \enquote{écran} et \enquote{papier}}{}
  Du fait des \cref{item:paper:1,item:paper:2} précédents, les mises en page
  des sorties \enquote{écran} et \enquote{papier} peuvent être différentes, et
  il pourra être opportun de les comparer, par exemple à l'aide d'un logiciel
  comparateur de fichiers \acrshort{pdf}. Si on souhaite que les sorties
  \enquote{écran} et \enquote{papier} soient absolument identiques, il suffit
  d'imprimer la première ; mais il faut avoir conscience du fait que, dans ce
  cas, si le mémoire contient des références vers des \acrshort{url} (par
  exemple fournies par ×\href{×\meta{\acrshort*{url}}×}{×\meta{texte}×}×),
  leurs cibles ne figureront nulle part en sortie \enquote{papier}.
\end{dbwarning}

\subsection{Nombre de laboratoires sur les pages de résumés et de 4\ieme{} de couverture}
\label{sec:nombre-de-labor}

Par défaut, seul le laboratoire principal (avec son adresse) est affiché sur
les pages de résumés et de 4\ieme{} de couverture
(cf. \vref{sec:abstract,sec:quatr-de-couv}). Mais la clé
\refKey{numlaboratories} suivante permet de faire figurer un nombre arbitraire
de laboratoires parmi ceux définis au moyen de la commande
\refCom{laboratory}.%^^A
%^^A
\changes{v0.99j}{2014/07/18}{Nouvelle clé \protect\refKey{numlaboratories}
  permettant de spécifier le nombre ($\geqslant 0$) de laboratoires devant
  figurer sur les pages de résumés et de 4\ieme{} de couverture}%^^A

\begin{docKey}{numlaboratories}{=\meta{nombre}}{pas de valeur par
    défaut, initialement \docValue*{1}}
  Cette clé permet de spécifier le \meta{nombre} (entier positif ou nul) de
  laboratoires dont les noms et adresses doivent figurer sur la page de résumés
  et de 4\ieme{} de couverture. Ces laboratoires sont pris dans l'ordre de
  leurs définitions au moyen de la commande \refCom{laboratory}.
\end{docKey}

Pour gagner de la place sur les pages concernées, la composition des noms et
adresses des laboratoires est un peu condensée si \meta{nombre} dépasse $1$.

\subsection{Style des têtes de chapitres}\label{sec:style-des-tetes}

Pour gérer les têtes de chapitres, la \yatcl{} s'appuie sur le
\Package*{fncychap}, par défaut chargé avec le style \docValue{PetersLenny}. La
clé \refKey{fncychap} suivante permet de spécifier un autre style de ce
package\footnote{Par souci de compatibilité ascendante, la clé désormais
  obsolète \docAuxKey{chap-style} est un alias de la clé
  \refKey{fncychap}.}.%^^A
%
{%
  \tcbset{before lower=\vspace*{\baselineskip}\par}
  \begin{docKey}{fncychap}{=\docValue{Sonny}\textbar\docValue{Lenny}\textbar\docValue{Glenn}\textbar\docValue{Conny}\textbar\docValue{Rejne}\textbar\docValue{Bjarne}\textbar\docValue{PetersLenny}\textbar\docValue{Bjornstrup}\textbar\docValue{none}}{pas
      de valeur par défaut, initialement \docValue{PetersLenny}}
    \changes{v0.99g}{2014/07/13}{Clé \protect\refAux{chap-style} remplacée par
      (et alias de) la clé \protect\refKey{fncychap}}%^^A
    % ^^A
    Cette clé permet de spécifier un autre style du \Package{fncychap}.

    Le \enquote{style} supplémentaire \docValue{none} permet de désactiver le
    chargement de \package{fncychap} pour retrouver les têtes de chapitres
    usuelles de la \Class{book}.
  \end{docKey}
}

\subsection{Expressions séparant les corps et affiliations des membres du jury}
\label{sec:expr-separ-les}

Sur les pages de titre, chaque membre du jury peut être précisé notamment par :
\begin{itemize}
\item son corps, cf. \refKey{professor}, \refKey{mcf}, \refKey{mcf*},
  \refKey{seniorresearcher}, \refKey{juniorresearcher} et
  \refKey{juniorresearcher*} ;
\item son affiliation, cf. \refKey{affiliation}.
\end{itemize}
Comme illustré \vref{fig:maketitle}, si ces deux précisions sont présentes,
elles sont par défaut séparées :
\begin{description}
\item[en français] par l'une des deux expressions contextuelles suivantes :
  \begin{itemize}
  \item \enquote{\textvisiblespace{}à l'}\footnote{Le symbole
      \enquote{\textvisiblespace{}} matérialise une espace.} ;
  \item \enquote{\textvisiblespace{}au\textvisiblespace{}} ;
  \end{itemize}
  où l'article défini est automatiquement élidé selon l'initiale (voyelle ou
  consonne) de l'affiliation ;
\item[en anglais] par l'expression fixe (non contextuelle)
  \enquote{\textvisiblespace{}at\textvisiblespace{}}.
\end{description}

\begin{dbwarning}{Élision automatique non robuste}{elision-separateurs}
  L'élision automatique des expressions contextuelles en français n'est pas
  robuste : elle peut en effet ne pas donner le résultat escompté si la valeur
  de la clé \refKey{affiliation}, définissant l'affiliation, a pour initiale :
  \begin{itemize}
  \item une consonne, mais est de genre féminin ;
  \item une voyelle, mais par le truchement d'une commande\commandeacronyme, et
    non pas \enquote{directement}.
  \end{itemize}
\end{dbwarning}

Au moyen des clés \refKey{sepcorpaffilfrench} et \refKey{sepcorpaffilenglish}
suivantes, les expressions séparatrices en français et en anglais peuvent être
redéfinies, globalement ou localement.

\begin{docKey}{sepcorpaffilfrench}{=\meta{expression}}{pas de valeur par défaut,
    initialement \lstinline[showspaces]+\ à l'+ ou
    \lstinline[showspaces]+\ au\ +}
  Cette option permet de redéfinir l'\meta{expression} employée en français
  pour séparer les corps et affiliations des membres du jury. Elle peut
  être employée :
  \begin{description}
  \item[globalement:] elle est alors à spécifier en option de la classe de
    document ;
  \item[localement:] elle est alors à spécifier en option de l'une des
    commandes de définition des membres du jury (cf.
    \vref{sec:definition-jury}).
  \end{description}
\end{docKey}

\begin{docKey}{sepcorpaffilenglish}{=\meta{expression}}{pas valeur par
    défaut, initialement \lstinline[showspaces]+\ at\ +}
  Cette option, analogue à \refKey{sepcorpaffilfrench}, permet de redéfinir
  l'\meta{expression} employée en anglais pour séparer les corps et
  affiliations des membres du jury.
\end{docKey}

\begin{dbwarning}{Expressions séparatrices débutant ou finissant par un espace}{}
  Si les valeurs des clés \refKey{sepcorpaffilfrench} ou
  \refKey{sepcorpaffilenglish} doivent \emph{débuter} ou \emph{finir} par un
  espace, celui-ci doit être saisi au moyen de
  % ^^A
  \lstinline[showspaces]+\ +
  % ^^A
  % ^^A ou de
  % ^^A
  % ^^A \lstinline[deletekeywords={[2]space}]+\space+,
  % ^^A
  et non pas seulement de
  % ^^A
  \lstinline[showspaces]+ +.
  % ^^A
\end{dbwarning}

\begin{dbexample}{Redéfinition (globale) de l'expression séparant corps et
    affiliations}{}
  L'exemple suivant montre comment remplacer l'expression (par défaut) séparant
  corps et affiliations par une virgule, et ce :
  \begin{itemize}
  \item globalement pour tous les membres du jury;
  \item en anglais.
  \end{itemize}
\begin{preamblecode}[listing options={showspaces}]
\documentclass[sepcorpaffilenglish={,\ }]{yathesis}
\end{preamblecode}
\end{dbexample}

\begin{dbexample}{Redéfinition (locale) de l'expression séparant corps et
    affiliation}{}
  L'exemple suivant montre comment remplacer l'expression séparant corps et
  affiliation par \enquote{\textvisiblespace{}à la\textvisiblespace{}}, et ce :
  \begin{itemize}
  \item localement (pour un membre du jury particulier);
  \item en français.
  \end{itemize}
\begin{bodycode}[listing options={showspaces}]
\referee[professor,sepcorpaffilfrench=\ à la\ ,affiliation=Cité des sciences]{René}{Descartes}
\end{bodycode}
\end{dbexample}

\subsection{Habilitations à diriger les recherches}
\label{sec:hdr}
%
Grâce à sa clé \refKey{hdr}, la \yatcl{} peut être utilisée pour
les habilitations à diriger les recherches.

\begin{docKey}{hdr}{=\docValue{true}\textbar\docValue{false}}{par défaut
    \docValue{true}, initialement \docValue{false}}
  \changes{v0.99f}{2014/07/11}{Nouvelle clé \protect\refKey{hdr} permettant de
    d'utiliser la \yatcl{} pour une \gls{hdr}}%^^A
  % ^^A
  Cette clé spécifie que le document est une habilitation à diriger les
  recherches.
\end{docKey}

Le seul effet de la clé \refKey{hdr} est d'adapter un certain nombre
d'expressions clés de la \yatcl{}, en remplaçant par exemple \enquote{Thèse
  présentée par} par \enquote{Habilitation à diriger les recherches présentée
  par}. Les expressions propres aux habilitations à diriger les recherches sont
celles dont le label est suffixé par \enquote{\texttt{-hdr}} dans le
\vref{tab:expressions-cles}.

\section{Options à passer aux packages chargés par la \yatcl{}}
\label{sec:options-passer-aux}

\changes{v0.99g}{2014/07/13}{Des options peuvent être passées aux packages
  chargés par \yat{}}%^^A
%^^A
Pour plusieurs de ses fonctionnalités, la \yatcl s'appuie sur des packages
qu'elle charge automatiquement (listés
\vref{sec:packages-charges-par}). Aussi son comportement par défaut et sa
personnalisation sont-ils également gouvernés par le comportement par défaut et
la personnalisation de ces packages.

\begin{dbwarning}{Packages automatiquement chargés à ne pas charger
    manuellement}{packages-a-ne-pas-charger}
  Les packages qui sont automatiquement chargés par la \yatcl{} ne doivent pas
  être chargés manuellement (au moyen de la commande
  \docAuxCommand{usepackage}), sous peine de provoquer des clashs d'options
  (tel que signalé à la \vref{faq:option-clash}).
\end{dbwarning}

De ce fait, la personnalisation des packages automatiquement chargés par le
biais d'arguments optionnels passés à la commande \docAuxCommand{usepackage}
n'est pas possible. Pour pallier cela, \yat{} fournit des options de classe
permettant de passer à certains de ces packages une ou plusieurs options sous
la forme d'une liste de clés/valeurs. Les packages concernés sont précisément
ceux :
\begin{itemize}
\item (éventuellement) utiles à l'utilisateur final ;
\item dont la personnalisation se fait habituellement par le biais d'options
  à passer en argument optionnel de la commande \docAuxCommand{usepackage} (et
  seulement par ce biais-là\footnote{En particulier, ne sont pas concernés les
    packages dont les options peuvent être passées indifféremment en argument
    optionnel de \protect\docAuxCommand{usepackage} ou au moyen d'une commande
    de configuration propre ; il en est ainsi du \Package{bookmark} qui dispose
    de la commande \protect\docAuxCommand*{bookmarksetup}.}).
\end{itemize}
Ces options, qui ont pour nom le nom du package concerné, sont les suivantes (à
charge pour l'utilisateur de consulter la documentation des packages concernés
pour savoir s'ils peuvent lui être utiles et, le cas échéant, quelles valeurs
peuvent être passées à leurs options).

\begin{docKey}{graphicx}{=\marg{option(s)}}{pas valeur par défaut,
    initialement vide}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{graphicx}.
\end{docKey}
\begin{docKey}{adjustbox}{=\marg{option(s)}}{pas valeur par défaut,
    initialement \docValue*{export}}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{adjustbox}.
\end{docKey}
\begin{docKey}{setspace}{=\marg{option(s)}}{pas valeur par défaut,
    initialement vide}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{setspace}.

  Contrairement à l'option \refKey{space} qui ne prend effet qu'à la partie
  principale du document et se termine avec elle, l'option \refKey{setspace}
  a un effet (semi-)global et prend effet dès le début du document
  (cf. \vref{wa:space-setspace}).
\end{docKey}
\begin{docKey}{xcolor}{=\marg{option(s)}}{pas valeur par défaut,
    initialement vide}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{xcolor}.
\end{docKey}
\begin{docKey}{datatool}{=\marg{option(s)}}{pas valeur par défaut,
    initialement vide}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{datatool}.
\end{docKey}
\begin{docKey}{titleps}{=\marg{option(s)}}{pas valeur par défaut, initialement
    vide}
  % ^^A \changes{v0.99j}{2014/07/18}{Clé \protect\refAux{titleps} remplacée par
  % ^^A (et alias de) la clé \protect\refKey{titlesec}}% ^^A
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{titleps}.
\end{docKey}
\begin{docKey}{draftwatermark}{=\marg{option(s)}}{pas valeur par défaut,
    initialement vide}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{draftwatermark}.
\end{docKey}
\begin{docKey}{babel}{=\marg{option(s)}}{pas valeur par défaut,
    initialement vide}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{babel}.
\end{docKey}
\begin{docKey}{datetime}{=\marg{option(s)}}{pas valeur par défaut,
    initialement \docValue*{nodayofweek}}
  Cette option permet de passer une ou plusieurs \meta{option(s)} au
  \Package{datetime}.
\end{docKey}
% ^^A
\changes*{v0.99k}{2014/10/01}{%
  Option de classe \protect\docAuxKey*{bookmark} supprimée%^^A
}%^^A

\begin{dbexample}{Passage d'options à un package  automatiquement chargés par \yat}{}
  L'exemple suivant montre comment passer au \Package{xcolor} les options
  \docValue*{dvipsnames} et \docValue*{table}.
\begin{preamblecode}[listing options={showspaces}]
\documentclass[xcolor={dvipsnames,table}]{yathesis}
\end{preamblecode}
\end{dbexample}

\section{Options de préambule}
\label{sec:options-de-preambule}

Pour des raisons techniques, les options de la \yatcl listées à la
\vref{options-classe}, ne peuvent être passées qu'en argument optionnel de
\docAuxCommand{documentclass}. Les options de la présente section peuvent être
passées indifféremment :
\begin{itemize}
\item en argument optionnel de \docAuxCommand{documentclass} ;
\item en préambule, en argument de la commande \refCom{yadsetup}.
\end{itemize}

\begin{docCommand}{yadsetup}{\marg{options}}
  Cette commande permet de spécifier certaines \meta{options} de la \yatcl.
\end{docCommand}

\subsection{Profondeur de la numérotation}\label{sec:profondeur-de-la}

Par défaut, la numérotation des paragraphes a pour \enquote{niveau de
  profondeur} les sous-sections. Autrement dit, seuls les titres des parties
(éventuelles), chapitres, sections et sous-sections sont numérotés.  L'option
\refKey{secnumdepth} suivante permet de spécifier un autre niveau de
profondeur.
%
{%
  \tcbset{before lower=\vspace*{\baselineskip}\par}
  \begin{docKey}{secnumdepth}{=\docValue{part}\textbar\docValue{chapter}\textbar\docValue{section}\textbar\docValue{subsection}\textbar\docValue{subsubsection}\textbar\docValue{paragraph}\textbar\docValue{subparagraph}}{pas
      de valeur par défaut, initialement \docValue{subsection}}
    Cette clé permet de modifier le \enquote{niveau de profondeur} de la
    numérotation des paragraphes jusqu'aux, respectivement : parties,
    chapitres, sections, sous-sections, sous-sous-sections, paragraphes,
    sous-paragraphes.
  \end{docKey}
}

\subsection{Espace interligne}\label{sec:interligne}

L'interligne du document est par défaut \enquote{simple} mais, au moyen de
l'option \refKey{space} suivante, il est possible de spécifier un interligne
\enquote{un et demi} ou \enquote{double}.

\begin{docKey}{space}{=\docValue{single}\textbar\docValue{onehalf}\textbar\docValue{double}}{pas de valeur par défaut,
    initialement \docValue{single}}
  Cette clé permet de spécifier un interligne \docValue{single} (simple),
  \docValue{onehalf} (un et demi) ou \docValue{double} (double).
\end{docKey}

\begin{dbwarning}{Option d'interligne : seulement dans la partie
    principale}{space-setspace}
  Contrairement à l'option \refKey{setspace} qui a un effet (semi-)global et
  prend effet dès le début du document, l'option \refKey{space} ne prend effet
  qu'à la partie principale du document (cf. \vref{cha:corps}) et se termine
  avec elle, avant la partie annexe (cf. \vref{cha:annexes}).
\end{dbwarning}

Si on souhaite changer d'interligne ailleurs dans le mémoire, on recourra aux
commandes du \Package*{setspace} \phrase*{chargé par la \yatcl}.

\section{Commandes et options de commandes de la \yatcl}

\begin{dbremark}{Lieu des commandes de personnalisations}{configurationfile}
  Les commandes de personnalisation listées dans cette section (et donc propres
  à \yatcl{}) ou fournies par les packages chargés manuellement peuvent être
  saisies :
  \begin{itemize}
  \item soit directement dans le (préambule du) fichier (maître) de la thèse ;
  \item soit dans un fichier (prévu à cet effet) à nommer
    \file{\configurationfile} et à placer dans un sous-dossier (prévu à cet
    effet) à nommer \directory{\configurationdirectory}\footnote{Ces fichier et
      sous-dossier sont à créer au besoin mais le canevas de thèse \enquote{en
        relief} livré avec la \yatcl, décrit \vref{sec:canevas-relief}, les
      fournit.}.
  \end{itemize}
\end{dbremark}

\begin{dbwarning}{Fichier de configuration à ne pas importer manuellement}{}
  Le \File{\configurationfile} est \emph{automatiquement} importé par la
  \yatcl{} et il doit donc \emph{ne pas} être explicitement importé : on
  \emph{ne} recourra donc \emph{pas} à la commande
  ×\input{×\file{\configurationfile}×}× (ou autre commande d'importation
  similaire à \docAuxCommand{input}).
\end{dbwarning}

\subsection{(Re)Définition des expressions de la
  thèse}\label{sec:expressions-cles}

Un mémoire de thèse composé avec la \yatcl est émaillé d'expressions insérées
de façon automatique sur certaines pages (titre, mots clés, laboratoire,
résumés, etc.). Que ces expressions soient définies par la \yatcl ou bien
standard, il est possible de les redéfinir.

\subsubsection{Expressions définies par la classe}
\label{sec:expr-defin-par}

Les expressions \meta{en français} et \meta{en anglais} définies par la \yatcl
sont listées dans le \vref{tab:expressions-cles} et y sont identifiées par un
\meta{label} permettant de les redéfinir (voire de les définir, cf.
\vref{ex:doctor}) au moyen de la commande \refCom{expression} suivante.
%
\begin{docCommand}{expression}{\marg{label}\marg{en français}\marg{en anglais}}
  Cette commande permet de (re)définir les valeurs \meta{en français} et
  \meta{en anglais} de l'expression identifiée par \meta{label}.
\end{docCommand}

\begin{table}
  \centering
  \input{tableaux/expressions}
  \caption{Expressions de la \yatcl et labels correspondants (classés par ordre
    alphabétique des valeurs en français)}
  \label{tab:expressions-cles}
\end{table}

\begin{dbexample}{Modification d'expression définie par la classe}{}
  Pour remplacer l'expression en français \enquote{Unit\'e de recherche} (dont le label est
  ×universitydepartment×) par \enquote{Laboratoire}, il suffit de
  saisir :
  %
\begin{preamblecode}[title=Par exemple dans le \File{\configurationfile}]
\expression{universitydepartment}{Laboratoire}{University Department}
\end{preamblecode}
\end{dbexample}
%
\begin{dbexample}{Suppression d'expression définie par la classe}{}
  Si on souhaite supprimer des pages de titre les mentions \enquote{Titre de la
    thèse} et \foreignquote{english}{Thesis Title} (expressions dont le label
  est ×thesistitle×), il suffit de saisir :
\begin{preamblecode}[title=Par exemple dans le \File{\configurationfile}]
\expression{thesistitle}{}{}
\end{preamblecode}
\end{dbexample}

\begin{dbremark}{Modification d'expressions facilitée par la version
    \enquote{brouillon}}{}
  On a vu \vref{sec:versions} que l'option ×version=draft× permet de facilement
  retrouver les labels des expressions et atteindre le \File{\configurationfile}
  pour y modifier celles-ci.
\end{dbremark}

\subsubsection{Expressions standard}
\label{sec:expressions-standard}

Le \vref{tab:expressions-standard} liste les expressions \LaTeX{} standard
telles que traduites par la \yatcl{}. Il s'agit en fait des traductions en
français et en anglais fournies par les modules \package{frenchb} et
\package{english} du \Package{babel}, à l'exception de l'expression française
figurant en légende des tableaux flottants (\enquote{Table} est remplacée par
\enquote{Tableau}).% ^^A
\changes*{v0.99j}{2014/07/18}{Les légendes des tableaux flottants sont
  introduites par l'expression \enquote{\textsc{Tableau}} et non plus plus
  \enquote{\textsc{Table}}}% ^^A

Si on souhaite redéfinir ces expressions, il suffit de recourir aux commandes
×\addto×, ×\captionsfrench× et ×\captionsenglish× du \Package{babel} au moyen
de la syntaxe suivante.

\begin{preamblecode}[title=Par exemple dans le \File{\configurationfile}]
\addto\captionsfrench{\def\÷\meta{commande}÷{÷\meta{en français}÷}}
\addto\captionsenglish{\def\÷\meta{commande}÷{÷\meta{en anglais}÷}}
\end{preamblecode}
\begin{table}[hb]
  \centering
  \input{tableaux/expressions-standard}
  \caption{Valeurs et commandes d'expressions \LaTeX{} standard fournies par la \yatcl{}}
  \label{tab:expressions-standard}
\end{table}
\begin{dbexample}{Redéfinition d'expressions du \Package{babel}}{}
\begin{preamblecode}[title=Par exemple dans le \File{\configurationfile}]
\addto\captionsfrench{\def\abstractname{Aperçu de notre travail}}
\addto\captionsenglish{\def\abstractname{Overview of our work}}
\end{preamblecode}
\end{dbexample}

En cas d'usage des packages \package{glossaries} et \package{biblatex}, la
syntaxe précédente est inopérante avec les commandes ×\glossaryname× et
×\bibname× (ainsi que ×\refname×). Dans ce cas, pour donner un \meta{titre
  alternatif} :
\begin{itemize}
\item aux glossaire, liste d'acronymes et liste de symboles, on recourra
  à l'une ou l'autre des instructions suivantes :
\begin{bodycode}
\printglossary[title=÷\meta{titre alternatif}÷]
\printglossaries[title=÷\meta{titre alternatif}÷]
\printacronyms[title=÷\meta{titre alternatif}÷]
\printsymbols[title=÷\meta{titre alternatif}÷]
\end{bodycode}
\item à la bibliographie, on recourra à :
\begin{bodycode}
\printbibliography[title=÷\meta{titre alternatif}÷]
\end{bodycode}
\end{itemize}

En outre, en cas d'usage du \Package*{listings}, un \meta{titre alternatif}
pourra être donné à la liste des listings, au moyen de:
\begin{preamblecode}[title=Par exemple dans le \File{\configurationfile}]
\renewcommand\lstlistingname{÷\meta{titre alternatif}÷}
\end{preamblecode}

\subsection{Nouveaux corps}\label{sec:nouveaux-corps}

On a vu \vref{sec:jury} que des options des commandes définissant les
directeurs de thèse et membres du jury permettent de spécifier si ceux-ci
appartiennent aux corps \emph{prédéfinis} des professeurs ou des maîtres de
conférences (\gls{hdr} ou pas) des universités et des directeurs de recherche
ou des chargé(e)s de recherche (\gls{hdr} ou pas) du \gls{cnrs}. La clé
\refKey{corps} suivante permet de spécifier de \emph{nouveaux} corps
à \emph{définir} au moyen de la commande \refCom{expression}.

\begin{docKey}{corps}{=\meta{label}}{pas de
    valeur par défaut, initialement vide}
  \changes{v0.99e}{2014/06/15}{Clé \protect\refAux{corporation} remplacée par
    (et alias de) la clé \protect\refKey{corps}}%^^A
  % ^^A
  L'option ×corps=×\meta{label} permet de stipuler un \meta{corps en français}
  et un \meta{corps en anglais} où \meta{label} identifie une expression listée
  au \vref{tab:expressions-cles} ou à définir au moyen de la commande
  \refCom{expression}.
\end{docKey}

\begin{dbexample}{Nouveau corps}{doctor}
  Si on souhaite spécifier que certains membres du jury sont docteurs, il
  suffit de définir \phrase{une seule fois} l'expression suivante de label (par
  exemple) ×doctor× :
\begin{preamblecode}[title=Par exemple dans le \File{\configurationfile}]
\expression{doctor}{docteur}{Doctor}
\end{preamblecode}
  pour pouvoir ensuite l'utiliser \phrase{autant de fois que souhaité}, par
  exemple ainsi :
\begin{bodycode}
\examiner[corps=doctor]{Joseph}{Fourier}
\examiner[corps=doctor]{Paul}{Verlaine}
\end{bodycode}
\end{dbexample}

\subsection{Nouveaux rôles}\label{sec:nouveaux-roles}

On a pu noter \vref{sec:jury} que des rôles, figurant automatiquement sur les
pages de titre, sont attachés :
\begin{itemize}
\item aux directeurs de thèse définis au moyen des commandes
  \refCom{supervisor}, \refCom{cosupervisor} et \refCom{comonitor} :
  \enquote{directeur}, \enquote{co-directeur} et \enquote{co-encadrant} ;
\item au président du jury défini au moyen de la commande
  \refCom{committeepresident} : \enquote{président du jury}.
\end{itemize}
La clé \refKey{role} suivante permet de spécifier de \emph{nouveaux} rôles
à \emph{définir} au moyen de la commande \refCom{expression}.

% ^^A Il est même possible de \emph{définir} de \emph{nouveaux} rôles au moyen
% ^^A de la commande \refCom{expression}.

\begin{docKey}{role}{=\meta{label}}{pas de valeur par défaut, initialement
    vide}
  \changes{v0.99f}{2014/07/11}{Nouvelle clé \protect\refKey{role} permettant de
    spécifier ou définir de nouveaux rôles pour les personnes}%^^A
  % ^^A
  L'option ×role=×\meta{label} permet de stipuler un \meta{rôle en français} et
  un \meta{rôle en anglais} où \meta{label} identifie une expression listée au
  \vref{tab:expressions-cles} ou à définir au moyen de la commande
  \refCom{expression}.
\end{docKey}


\section{Packages chargés manuellement}
\label{sec:options-de-classes}
Si on souhaite recourir à des packages qui ne sont pas appelés par la \yatcl{},
on les chargera manuellement, par exemple en préambule du fichier (maître) de
la thèse.
%
\iffalse
%%% Local Variables:
%%% mode: latex
%%% eval: (latex-mode)
%%% ispell-local-dictionary: "fr_FR"
%%% TeX-engine: xetex
%%% TeX-master: "../yathesis.dtx"
%%% End:
\fi
