\chapter{Packages chargés (ou pas) par la classe}\label{cha-packages-charges}
\index{package}

\section{Packages chargés par la classe}\label{sec-packages-charges-par}
\index{package!chargé par \yatcl{}}

On a vu \vref{sec-options-passer-aux} que, pour plusieurs de ses
fonctionnalités\index{fonctionnalité}, la \yatCl{} s'appuie sur des packages
qu'elle charge automatiquement. Ceux-ci sont répertoriés, selon leur ordre de
chargement, dans la liste suivante qui indique leur fonction et le cas échéant :
\begin{itemize}
\item la ou les options avec lesquelles ils sont chargés ;
\item les options de la \yatCl{} ou leurs commandes propres permettant de les
  personnaliser ;
\item ceux qui, dans le cadre d'un usage standard de la \yatCl{}, peuvent être
  utiles à l'utilisateur final : leur nom est alors un hyperlien vers la page
  qui leur est dédiée sur le \glsxtrshort{ctan}.
\end{itemize}

\begin{description}
\item[\package*+{pgfopts} :] gestion d'options sous la forme
  \meta{clé}|=|\meta{valeur} ;
\item[\package*+{etoolbox} :] outils de programmation ;
\item[\package*+{xpatch} :] extension du package précédent ;
\item[\package*+{morewrites} :] accès à autant de \enquote{flots} d'écriture
  (dans des fichiers annexes) que nécessaire ;
\item[\package*+{filehook} :] \enquote{hameçons} (\foreignquote{english}{hooks})
  pour fichiers importés ;
\item[\package*+{hopatch} :] emballage de \enquote{hameçons} pour packages et
  classes ;
\item[\package*+{xifthen} :] tests conditionnels ;
\item[\package*+{xkeyval} :] robustification du \Package+{keyval} chargé par le
  \Package{geometry} ;
\item[\package{geometry} :] gestion de la géométrie de la page ;
  \begin{description}
  \item[option par défaut :] \docAuxKey{a4paper} ;
  \item[personnalisation :] commande propre \docAuxCommand*{geometry} ;
  \end{description}
\item[\package{graphicx} :]\index{image} inclusion d'images, notamment des logos ;
  \begin{description}
  \item[personnalisation :] option \refKey{graphicx} de la \yatCl{} ;
  \end{description}
\item[\package*+{environ} :] stockage du contenu d'un environnement dans une
  macro ;
\item[\package+{adjustbox} :] ajustement de la position des matériels
  \LaTeX{} ;
  \begin{description}
  \item[option par défaut :] \docAuxKey{export} ;
  \item[personnalisation :] option \refKey{adjustbox} de la \yatCl{} ;
  \end{description}
\item[\package{array} :]\index{tableau} mise en forme automatique de colonnes de tableaux
  (notamment) ;
\item[\package*+{xstring} :] manipulation de chaînes de caractères ;
\item[\package+{iftex} :] détection du moteur (\hologo{pdfTeX}, \hologo{XeTeX}
  ou \hologo{LuaTeX}) utilisé pour la compilation ;
\item[\package{epigraph} :]\index{épigraphe} gestion des épigraphes ;
\item[\package{tcolorbox} :]\index{boîte de couleur} boîtes élaborées en couleurs et encadrées ;
  \begin{description}
  \item[librairie chargée par défaut :] \docValue{skins} ;
  \item[personnalisation :]\leavevmode{}
    \begin{itemize}
    \item commandes propres \docAuxCommand*{tcbuselibrary} et
      \docAuxCommand*{tcbset} ;
    \item \lstinline+\tcbsetforeverylayer{autoparskip}+ afin de préserver la
      compatibilité ascendante en conservant les espaces verticaux précédant et
      suivant les boîtes de couleur qui étaient ceux des versions de ce package
      antérieures à la version~4.40\footnote{On pourra recourir à
        %
\lstinline[{morekeywords=[3]{plus}}]+\\tcbsetforeverylayer\{beforeafter skip balanced=0.5\\baselineskip plus 2pt\}+
        %
        pour obtenir les espaces verticaux désormais par défaut de ce package.} ;
    \end{itemize}
  \end{description}
\item[\package+{marvosym} :] accès à des symboles spéciaux ;
\item[\package+{colophon} :] insertion d'un colophon ;
  \begin{description}
  \item[options et commandes par défaut :]\leavevmode{}
    \begin{itemize}
    \item \docAuxKey{noclrdblpg} ;
    \item \docAuxKey{nofullpage} ;
    \item \docAuxKey{aftertitle=1em} ;
    \item |\colophonpreparhook{\normalsize}| ;
    \item |\colophonpretitlehook{\Large}| ;
    \end{itemize}
  \end{description}
\item[\package{setspace} :]\index{espace!interligne} gestion de l'espace
  interligne ;
  \begin{description}
  \item[personnalisation :] option \refKey{setspace} de la \yatCl{} ;
  \end{description}
\item[\package*+{tocbibind} :] table des matières et index dans la table des
  matières ;
\item[\package*+{nonumonpart} :] suppression des numéros de pages sur les pages
  de garde des parties ;
\item[\package{fncychap} :] \index{chapitre!style de tête}%
  têtes de chapitres améliorées ;
  \begin{description}
  \item[option par défaut :] \docAuxKey{PetersLenny} ;
  \item[personnalisation :] option \refKey{fncychap} de la \yatCl{} ;
  \end{description}
\item[\package{titlesec} :] %
  \changes*{v1.0.3}{2020-06-16}{Gestion des titres courants désormais assurée
    par le \Package{titlesec} (et plus par \package{titleps}, ce qui peut
    conduire à des mises en page légèrement différentes)}%
  gestion des styles de pages ;
  \begin{description}
    % \item[option par défaut :] \docAuxKey{pagestyles} ;
  \item[personnalisation :] option \refKey{titlesec} de la \yatCl{} ;
  \end{description}
  % \begin{dbwarning}{Package \package{titlesec} : à utiliser avec
  %   discernement}{}
  %   Le \Package{titlesec} est à utiliser avec discernement car :
  %   \begin{itemize}
  %     \item sa personnalisation au moyen de l'option \refKey{titlesec}
  %     désactive l'effet du \Package{fncychap}
  %     (cf. \vref{sec-chapitres-numerotes}) et
  %     de l'option \refKey{fncychap} ;
  %     \item l'emploi de certaines de ses commandes peut éventuellement
  %     conduire à des incompatibilités avec la \yatCl{} ;
  %     \end{itemize}
  %  \end{dbwarning}
\item[\package{xcolor} :] \index{couleur}%
  gestion des couleurs ;
  \begin{description}
  \item[personnalisation :] option \refKey{xcolor} de la \yatCl{} ;
  \end{description}
\item[\package*+{datatool} :] gestion de bases de données (membres du jury,
  etc.) ;
  \begin{description}
  \item[personnalisation :] option \refKey{datatool} de la \yatCl{} ;
  \end{description}
\item[\package*+{ifdraft} :] test conditionnel du mode brouillon ;
\item[\package+{draftwatermark} :] texte en
  filigrane\index{filigrane}\footnote{Chargé seulement si l'une ou l'autre des
    valeurs \docValue{draft} ou \docValue{inprogress*} est passée à la clé
    \refKey{version}.} ;
  \begin{description}
  \item[personnalisation :] option \refKey{draftwatermark} de la \yatCl{} ;
  \end{description}
\item[\package{babel} :]\index{langue} gestion des langues ;
  \begin{description}
  \item[personnalisation :] option \refKey{babel} de la \yatCl{} ;
  \end{description}
\item[\package{etoc} :] tables des matières complètement personnalisables ;
\item[\package*+{iflang} :] test de la langue en cours ;
\item[\package*+{translator} :] traduction d'expressions ;
\item[\package+{datetime2} :] \changes*{v1.0.4}{2020-10-14}{Gestion des dates
    désormais assurée par le \Package{datetime2} (et plus par
    \package{datetime})\protect\footnote{En cas d'usage des fonctionnalités du
      \Package{datetime} dans son mémoire de thèse, consulter la documentation
      de \package{datetime2}, section~10 (\enquote{Migrating from datetime})
      pour migrer du 1\ier{} au 2\ieme{}.}.}%
  gestion des dates ;
  \begin{description}
  \item[personnalisation :] option \refKey{datetime2} de la \yatCl{} ;
  \end{description}
\item[\package{hypcap} :] liens hypertextes pointant au début des
  flottants%\ifscreenoutput ;
  \begin{description}
  \item[option par défaut :] \docValue*{all} ;
  \end{description}
\item[\package+{bookmark} :] gestion des signets%\ifscreenoutput ;
  \begin{description}
  \item[personnalisation :] commande propre \docAuxCommand*{bookmarksetup} ;
  \end{description}
\item[\package*+{glossaries-babel} :] traduction d'expressions propres aux
  glossaires\footnote{Chargé seulement si le \Package{glossaries} l'est.}.
\end{description}

\begin{dbremark}{Disposer d'une distribution \TeX{} à jour est fortement
    recommandé}{packages-anciens}
  \index{distribution \TeX}%
  Si on ne dispose pas de versions suffisamment récentes des packages
  automatiquement chargés, des avertissements sont émis car le bon
  fonctionnement de la \yatCl{} peut alors être sérieusement altéré, voire être
  bloqué par une erreur de compilation \aside*{éventuellement absconse}. Il
  est très fortement recommandé de mettre sa distribution \TeX{} à jour et, si
  le problème persiste dans le cas de la distribution \miktex{},
  d'installer plutôt la distribution \texlive{} dont les versions (à
  jour) à partir de la \enquote{2016} fournissent des packages suffisamment
  récents pour la \yatCl{}.
\end{dbremark}

\section{Packages non chargés par la classe}\label{sec-packages-non-charges}
\index{package!non chargé par \yatcl{}}

La liste suivante répertorie des packages non chargés par la \yatCl{} mais
pouvant se révéler très utiles, notamment aux doctorants.  Elle est loin d'être
exhaustive et ne mentionne notamment pas les packages nécessaires :
\begin{itemize}
\item \package{inputenc} et \package{fontenc}, si on utilise
  \hologo{LaTeX}\index{LaTeX@\hologo{LaTeX}} ou
  \hologo{pdfLaTeX}\index{pdfLaTeX@\hologo{pdfLaTeX}} ;
\item \package{fontspec}, si on utilise
  \hologo{XeLaTeX}\index{XeLaTeX@\hologo{XeLaTeX}} ou
  \hologo{LuaLaTeX}\index{LuaLaTeX@\hologo{LuaLaTeX}}.
\end{itemize}
Elle ne mentionne pas non plus les packages de
fontes\index{fonte}\indexsee{police}{fonte} PostScript tels que
\package*{lmodern}, \package*{kpfonts}, \package*{fourier}, \package*{libertine},
etc. \aside*{presque indispensables si on utilise \hologo{LaTeX} ou
  \hologo{pdfLaTeX}}. Des exemples de préambules complets figurent
\vref{cha-specimen-canevas}.

En outre, lorsqu'ils sont chargés manuellement par l'utilisateur, certains des
packages suivants se voient fixés par la \yatCl{} des options ou réglages dont
les plus notables sont précisés.

\begin{description}
\item[\package{booktabs} :]\index{tableau} tableaux plus professionnels ;
\item[\package{siunitx} :]\index{nombre}\index{angle}\index{unité!de mesure}
  gestion des nombres, angles et unités ;
  \begin{description}
  \item[options par défaut :]\leavevmode{}
    \begin{itemize}
    \item \docAuxKey{detect-all} ;
    \item \docAuxKey{locale}|=|\docValue{FR} ou
      \docAuxKey{locale}|=|\docValue{UK} ;
    \end{itemize}
  \end{description}
\item[\package{pgfplots} :]\index{graphique de haute qualité} graphiques plus professionnels,
  notamment de données expérimentales ;
\item[\package{listings} :]\index{listing informatique} insertion de listings
  informatiques ;
\item[\package{microtype} :] raffinements typographiques
  automatiques (et subliminaux) ;
  % \footnote{Ce package peut poser problème s'il est déjà présent alors qu'une
  % fonte est utilisée pour la première fois. Il est donc à charger plutôt en
  % fin de rédaction, lors de la finition de la mise en page.}
\item[\package+{floatrow} :] gestion puissante (mais complexe) des
  flottants ;
\item[\package{caption} :]\index{légende} personnalisation des légendes ;
\item[\package{todonotes} :]\index{rappel} insertion de
  \foreignquote{english}{TODOs}\footnote{Rappels de points qu'il ne
    faut pas oublier d'ajouter, de compléter, de réviser, etc.} ;
\item[\package{varioref} :]\index{référence croisée!améliorée} références croisées améliorées ;
\item[\package{imakeidx} ou \package*+{index} :]\index{index} gestion du ou des
  index\footnote{Pour la gestion d'index, le \Package{makeidx} est plus courant
    mais les packages \package*{imakeidx} et \package*+{index}, aux syntaxes très
    voisines, l'améliorent et offrent des fonctionnalités supplémentaires,
    notamment pour produire des index multiples.} ;
\item[\package{csquotes} :]\index{citation d'extrait} pour les citations
  d'extraits informelles et formelles (avec citation des sources) ;
    \begin{description}
    \item[réglage par défaut] (si le \Package*{biblatex} est chargé) :
      |\SetCiteCommand{\autocite}| ;
  \end{description}
\item[\package{biblatex} :]\index{bibliographie} gestion puissante de la bibliographie ;
\item[\package{hyperref} :]\index{lien hypertexte} \changes*{v0.99h}{2014-07-14}{Packages
    \package{hyperref}, \package{varioref}, \package+{index} et
    \package+{idxlayout}, plus automatiquement chargés par la
    \yatCl{}\protect\footnote{Les utilisateurs qui ont l'usage de ces packages
      doivent donc désormais les charger manuellement (au moyen de la commande
      \protect\docAuxCommand{usepackage}).}.}%
  %
  liens hypertextes ;
  \begin{description}
  \item[options par défaut :]\leavevmode{}
    \begin{itemize}
    \item \docAuxKey{final} ;
    \item \docAuxKey{unicode} ;
    \item \docAuxKey{breaklinks} ;
    \item |hyperfootnotes=false| ;
    \item |hyperindex=false|\footnote{Sans quoi certaines fonctionnalités sont
        ignorées, par exemple \protect\lstinline+see+ pour les index.} ;
    \item |plainpages=false| ;
    \item |pdfpagemode=UseOutlines| ;
    \item |pdfpagelayout=TwoPageRight| ;
    \end{itemize}
  \end{description}
\item[\package{glossaries} :]\index{glossaire}\index{acronyme}\index{symbole!liste
    de ---s} gestion puissante des glossaires, acronymes et liste de symboles ;
\item[\package{cleveref} :]\index{référence croisée!intelligente} gestion
  intelligente des références croisées.
\end{description}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../yathesis-fr"
%%% End:
