texlive[68141] Master/texmf-dist: udes-genie-these (1sep23)
commits+karl at tug.org
commits+karl at tug.org
Fri Sep 1 23:19:35 CEST 2023
Revision: 68141
http://tug.org/svn/texlive?view=revision&revision=68141
Author: karl
Date: 2023-09-01 23:19:34 +0200 (Fri, 01 Sep 2023)
Log Message:
-----------
udes-genie-these (1sep23)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex
trunk/Master/texmf-dist/doc/latex/udes-genie-these/README.md
trunk/Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf
trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx
trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins
trunk/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls
Modified: trunk/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex 2023-09-01 21:19:22 UTC (rev 68140)
+++ trunk/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex 2023-09-01 21:19:34 UTC (rev 68141)
@@ -18,7 +18,9 @@
fichier-symboles = {symboles},
fichier-acronymes = {acronymes},
fichiers-references = {references},
+ %auto-bib,
%style-references = plain,
+ %legendes-min,
}
\TitreFrancais{CECI EST LE TITRE FRANÇAIS\\DU DOCUMENT}
@@ -36,7 +38,7 @@
\Evaluateur{Prénom5}{NOM5}
% Le contenu du document doit respecter le protocole de rédaction.
-% Le contenu fourni ici n'est qu'un exemple afin d'illustre l'utilisation de la classe.
+% Le contenu fourni ici n'est qu'un exemple afin d'illustrer l'utilisation de la classe.
\begin{document}
Modified: trunk/Master/texmf-dist/doc/latex/udes-genie-these/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/udes-genie-these/README.md 2023-09-01 21:19:22 UTC (rev 68140)
+++ trunk/Master/texmf-dist/doc/latex/udes-genie-these/README.md 2023-09-01 21:19:34 UTC (rev 68141)
@@ -5,7 +5,7 @@
The class file documentation is in French, the language of the typical user at the Université de Sherbrooke. An example of use is also distributed with the documentation.
-Copyright (C) 2017-2022 Charles-Antoine Brunet
+Copyright (C) 2017-2023 Charles-Antoine Brunet
## Class file (udes-genie-these.cls)
The class file (udes-genie-these.cls) is generated with the installation file (udes-genie-these.ins) with the following command:
Modified: trunk/Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx 2023-09-01 21:19:22 UTC (rev 68140)
+++ trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx 2023-09-01 21:19:34 UTC (rev 68141)
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%% udes-genie-these.dtx
-%% Copyright 2022 Charles-Antoine Brunet
+%% Copyright 2023 Charles-Antoine Brunet
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,9 +26,9 @@
%<these|protocole>%%--- IDENTIFICATION ------------------------------------------------------
%<these|protocole>%%-----------------------------------------------------------------------------
%<these|protocole>
-%<these>\ProvidesExplClass{udes-genie-these}{2022/11/17}{3.0.1}
+%<these>\ProvidesExplClass{udes-genie-these}{2023/09/01}{3.1.0}
%<these> {Université de Sherbrooke, Faculté de génie: classe de document pour thèses, mémoires, DPR et essais}
-%<protocole>\ProvidesExplClass{udes-genie-protocole}{2022/11/17}{3.0.1}
+%<protocole>\ProvidesExplClass{udes-genie-protocole}{2023/09/01}{3.1.0}
%<protocole> {Université de Sherbrooke, Faculté de génie: classe de document pour le protocole de rédaction}
%<these|protocole>
%<*driver>
@@ -132,10 +132,11 @@
% \changes{v2.0.2}{2022-09-15}{Maintenance (LaTeX2e 2020-02-02 à 2022-06-01). Distribution sur CTAN. Adaptations à la documentation.}
% \changes{v3.0}{2022-09-19}{Support pour \pkg{biblatex}. Ajustements à la documentation.}
% \changes{v3.0.1}{2022-11-17}{Ajustements à la documentation et à l'exemple. Changements internes pour les formats LaTeX antérieurs à 2022-06-01.}
+% \changes{v3.1.0}{2023-09-01}{Ajout des champs auto-bib et legendes-min. Ajustements à la documentation. Correction de bugs. Format 2022-06-01 ou plus récent requis. Maintenance interne.}
%
% \GetFileInfo{udes-genie-these.dtx}
%
-% \title{CLASSE DE DOCUMENT \latex POUR LA RÉDACTION AUX ÉTUDES SUPÉRIEURES À LA FACULTÉ DE GÉNIE DE L'UNIVERSITÉ DE SHERBROOKE\\{\large \laclassetitre, version 3.0.1}}
+% \title{CLASSE DE DOCUMENT \latex POUR LA RÉDACTION AUX ÉTUDES SUPÉRIEURES À LA FACULTÉ DE GÉNIE DE L'UNIVERSITÉ DE SHERBROOKE\\{\large \laclassetitre, version 3.1.0}}
% \author{Charles-Antoine Brunet}
% \date{\today}
% \maketitle
@@ -158,7 +159,7 @@
% Le style de références est maintenant spécifié par le nouveau champ de configuration |style-references| et non plus dans le préambule avec la macro |\bibliographystyle|. Il faut donc retirer une macro du style |\bibliographystyle{AAA}| et la remplacer par un champ de configuration du genre |style-references = AAA|. C'est tout!
%
%\section{Installation et vérification}\label{sec:inst}
-% La classe \laclasse utilise des fonctionnalités récentes de \latex. Il faut donc vous assurer d'avoir une version à jour de votre distribution \latex (\texlive ou \miktex). Si vous utilisez \overleaf, il faut vous assurer que votre projet compile avec la version la plus récente de \texlive.
+% La classe \laclasse utilise des fonctionnalités récentes de \latex. Il faut donc vous assurer d'avoir une version à jour de votre distribution \latex (\texlive ou \miktex). Si vous utilisez \overleaf, il faut vous assurer que votre projet compile avec la version la plus récente de \texlive offerte.
%
% Selon votre distribution \latex, choisissez l'option qui vous convient.
% la classe
@@ -176,11 +177,11 @@
% \textbf{Court terme:}\\ Si vous pensez utiliser \laclasse à court terme, alors procédez comme avec \overleaf, comme ce qui suit.
%
% \subsection*{\overleaf}
-% Pour utiliser \laclasse, vous pouvez récupérer une archive sur l'intranet de la Faculté de génie qui contient tout ce qu'il faut pour compiler un document. L'archive contient aussi la documentation et un exemple d'utilisation. Il suffit d'extraire les fichiers de l'archive dans un répertoire et de compiler avec votre variante favorite de \latex. Cette méthode fonctionne pour \overleaf et aussi toutes les autres distributions \latex.
+% Cette méthode fonctionne pour \overleaf et aussi toutes les autres distributions \latex. Pour utiliser \laclasse, vous pouvez récupérer une archive sur l'intranet de la Faculté de génie qui contient tout ce qu'il faut pour compiler un document. Consultez le fichier |README| distribué pour la suite.
%
% Cette manière de fonctionner fait en sorte que vous êtes responsables de faire les mises à jour, car elles ne se feront pas automatiquement. Cela veut aussi dire qu'au cours du temps, si vous n'êtes pas vigilants, vous pourriez avoir plusieurs projets qui utilisent \laclasse, mais qui utilisent des versions différentes.
%
-% Dans \overleaf, la classe \laclasse ne fait pas partie des \packages préinstallés et il n'est pas possible non plus de l'installer de manière standard, comme avec les autres distributions \latex (\miktex et \texlive). Il reste deux options: avoir une copie de \laclasse présente dans chaque projet ou utiliser le mécanisme de partage de fichiers entre vos différents projets afin d'éviter d'en avoir plusieurs copies.
+% Dans \overleaf, pour l'instant, la classe \laclasse ne fait pas partie des \packages préinstallés et il n'est pas possible non plus de l'installer de manière standard, comme avec les autres distributions \latex (\miktex et \texlive). Selon les informations sur le site web d'\overleaf au moment de l'écriture de ces lignes, leur distribution \texlive est mise à jour une fois par année lorsque la nouvelle version de \texlive est disponible. Avec un peu de chance, \laclasse fera partie d'\overleaf lors de leur prochaine mise à jour. Même dans ce cas, cela veut dire que la classe \laclasse serait mise à jour qu'une seule fois par année.
%
% \subsection*{Vérification}
% Afin de vérifier que l'installation s'est bien passée, il vous est suggéré de compiler l'exemple distribué avec \laclasse. C'est le meilleur moyen de savoir si vous avez tout ce qu'il faut.
@@ -227,9 +228,11 @@
%%-----------------------------------------------------------------------------
%%--- DECLARATION DES VARIABLES -------------------------------------------
%%-----------------------------------------------------------------------------
+\bool_new:N \g_@@_autobib_bool
+\bool_new:N \g_@@_legendes_min_bool
\bool_new:N \g_@@_lignes_bool
-\bool_new:N \g_@@_listeDesFigures_bool
-\bool_new:N \g_@@_listeDesTableaux_bool
+\bool_new:N \g_@@_liste_figures_bool
+\bool_new:N \g_@@_liste_tableaux_bool
\clist_new:N \g_@@_dedicace_cl
\clist_new:N \g_@@_fichiers_references_cl
@@ -297,7 +300,7 @@
%%--- DECLARATION DES CONSTANTES ------------------------------------------
%%-----------------------------------------------------------------------------
\int_const:Nn \c_@@_max_pages_dprdoctorat_int {40}
-\int_const:Nn \c_@@_max_pages_dprmaitrise_int {30}
+\int_const:Nn \c_@@_max_pages_dprmaitrise_int {25}
\int_const:Nn \c_@@_max_pages_essai_int {70}
\int_const:Nn \c_@@_max_pages_memoire_int {120}
%<protocole>\int_const:Nn \c_@@_max_pages_protocole_int {10000}
@@ -344,6 +347,61 @@
\clist_gput_right:Nx \g_@@_specialite_cl
{\c_@@_type_memoire_tl, \c_@@_type_these_tl}
+%%-----------------------------------------------------------------------------
+%%--- MESSAGES D'ERREURS --------------------------------------------------
+%%-----------------------------------------------------------------------------
+\msg_new:nnnn {udesgeniethese}{erreur_format}{Un~LaTeX~plus~récent~est~nécessaire.~Veuillez~mettre~à~jour~votre~distribution~LaTeX.}{Le~format~2022-06-01~ou~un~plus~récent~est~nécessaire.}
+
+\msg_new:nnnn {udesgeniethese}{biblatex_en_trop}{Avec~l'option~bibtex,~il~ne~faut~pas~charger~le~package~biblatex.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{biblatex_manquant}{L'option~biblatex~requiert~de~charger~le~package~biblatex~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{auteur_nom_vide}{Le~nom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{auteur_prenom_vide}{Le~prenom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_fichier_vide}{Le~fichier~pour~#1~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_fichiers_vides}{Les~fichiers~pour~#1~ne~sont~pas~specifies.~Specifiez-les~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_langue_vide}{La~langue~principale~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~cle~'langue'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_programme_vide}{Le~programme~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'programme'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_type_vide}{Le~type~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'type'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{date_annee_vide}{L'annee~de~la~date~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{date_mois_vide}{Le~mois~de~la~date~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{dprdoctorat_max_pages}{La~DPR~de~doctorat~semble~longue.~Le~protocole~exige~un~maximum~de~40~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{dprmaitrise_max_pages}{La~DPR~de~maitrise~semble~longue.~Le~protocole~exige~un~maximum~de~25~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{essai_max_pages}{L'essai~semble~long.~Le~protocole~exige~un~maximum~de~70~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{memoire_max_pages}{Le~memoire~semble~long.~Le~protocole~exige~un~maximum~de~120~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{mots_cles_anglais_vide}{Les~mots-cles~anglais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{mots_cles_francais_vide}{Les~mots-cles~francais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{remerciements_longs}{Les~remerciements~doivent~etre~d'une~page~maximum.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{resume_anglais_long}{Le~resume~anglais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{titre_resume_mots_cles_anglais}{Le~titre,~le~resume~et~les~mots-cles~anglais~doivent~etre~donnes.~On~ne~peut~donner~l'un~sans~les~autres.}{Consultez~la~documentation.}
+
+\msg_new:nnnn {udesgeniethese}{resume_francais_long}{Le~resume~francais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{these_max_pages}{La~these~semble~longue.~Le~protocole~exige~un~maximum~de~250~pages}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{titre_anglais_vide}{Le~titre~anglais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{titre_francais_vide}{Le~titre~francais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{aerospatial}{Le~type~du~document~doit~etre~essai~si~le~programme~est~aerospatial.~Specifiez-le~~bon~type~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
%\end{implementation}
%
% \subsection{Options} \label{class-options}
@@ -365,7 +423,7 @@
%
% Si le choix est |bibtex|, le style bibliographique est spécifié avec le champ de configuration |style-references| et les fichiers de références utilisés par |bibtex| sont ceux spécifiés avec le champ |references| (voir la section~\ref{sec:config}). La liste des références est générée automatiquement par \laclasse avec la macro |\bibliography|.
%
-% Si le choix est de |biblatex|, la personne qui rédige le document est responsable de charger le \package |biblatex| avec la macro |\usepackage| dans le préambule, car trop de cas de figures peuvent survenir afin d'assurer un chargement correct. La liste des références est gérérée automatiquement par \laclasse avec la macro |\printbibliography| et les fichiers de références sont spécifiés avec le champs de configuration |references| (voir la section~\ref{sec:config}). Les fichiers de références sont fournis automatiquement par \laclasse avec la macro |\addbibresource|. Le champ de configuration |references-style| est ignoré, car le style est géré par la personne qui rédige avec avec l'aide de |biblatex|.
+% Si le choix est de |biblatex|, la personne qui rédige le document est responsable de charger le \package |biblatex| avec la macro |\usepackage| dans le préambule, car trop de cas de figures peuvent survenir afin d'assurer un chargement correct. La liste des références est gérérée automatiquement par \laclasse avec la macro |\printbibliography| et les fichiers de références sont spécifiés avec le champs de configuration |references| (voir la section~\ref{sec:config}). Les fichiers de références sont fournis automatiquement par \laclasse avec la macro |\addbibresource|. Le champ de configuration |style-references| est ignoré, car le style est géré par la personne qui rédige avec avec l'aide de |biblatex|.
%
%\end{variable}
%\begin{implementation}
@@ -372,34 +430,35 @@
%%-----------------------------------------------------------------------------
%%--- OPTIONS DE CLASSE ---------------------------------------------------
%%-----------------------------------------------------------------------------
-\keys_define:nn { udes-genie-these }
+\IfFormatAtLeastTF {2022-06-01}
+ {}{\msg_fatal:nn{udesgeniethese}{erreur_format}}
+
+\DeclareKeys
{
biblatex .code:n = {\tl_gset_eq:NN \g_@@_references_engin_tl \c_@@_references_biblatex_tl},
+ biblatex .usage:n = load,
bibtex .code:n = {\tl_gset_eq:NN \g_@@_references_engin_tl \c_@@_references_bibtex_tl},
+ bibtex .usage:n = load,
livre .code:n = {
\PassOptionsToClass{twoside,openright}{book}
\PassOptionsToPackage{twoside=true}{geometry}
\tl_gset_eq:NN \g_@@_format_tl \c_@@_format_livre_tl
},
+ livre .usage:n = load,
simple .code:n = {
\PassOptionsToClass{oneside,openany}{book}
\PassOptionsToPackage{twoside=false}{geometry}
\tl_gset_eq:NN \g_@@_format_tl \c_@@_format_simple_tl
},
+ simple .usage:n = load,
unknown .code:n = {\PassOptionsToClass{\CurrentOption}{book}},
}
-\keys_set:nn { udes-genie-these } {livre}
+\SetKeys{livre}
-\IfFormatAtLeastTF {2022-06-01}
-{
- \ProcessKeyOptions[udes-genie-these]
-}
-{
- \RequirePackage {l3keys2e}
- \ProcessKeysOptions{udes-genie-these}
-}
+\ProcessKeyOptions
+
%%-----------------------------------------------------------------------------
%%--- DEPENDANCES DE CLASSE -----------------------------------------------
%%-----------------------------------------------------------------------------
@@ -414,7 +473,7 @@
%\end{implementation}
%
% \subsection{Configuration du document}\label{sec:config}
-% Le \protocole a des exigences au niveau de l'ordonnancement de certaines parties ou de certains éléments de présentation. Certaines de ces exigences sont gérées automatiquement en utilisant la macro de configuration du document, la macro |\ConfigurationDocument|. Cette macro est utilisée dans le préambule du document. Un exemple de configuration avec la description de chacun des champs suit. Vous devez évidemment adapter le contenu des champs de la configuration du document pour refléter vos besoins et les noms de vos fichiers. Il est à remarquer que chaque ligne qui spécifie un champ se termine par une virgule.
+% Le \protocole a des exigences au niveau de l'ordonnancement de certaines parties ou de certains éléments de présentation. Certaines de ces exigences sont gérées automatiquement en utilisant la macro de configuration du document, la macro |\ConfigurationDocument|. Cette macro est utilisée dans le préambule du document. L’exemple distribué avec \laclasse montre un exemple de configuration. Vous devez évidemment adapter le contenu des champs de la configuration du document pour refléter vos besoins et les noms de vos fichiers. Il est à remarquer que chaque ligne qui spécifie un champ se termine par une virgule.
%
%\begin{function}{\ConfigurationDocument}
%\begin{syntax}
@@ -421,20 +480,7 @@
%\begin{verbatim}
% \ConfigurationDocument
% {
-% langue = francais,
-% type = memoire,
-% programme = electrique,
-% lignes,
-% liste-figures,
-% liste-tableaux,
-% fichier-resume-francais = {resumef},
-% fichier-resume-anglais = {resumea},
-% fichier-remerciements = {merci},
-% fichier-lexique = {lexique},
-% fichier-symboles = {symboles},
-% fichier-acronymes = {acronymes},
-% fichiers-references = {journaux,conferences},
-% style-references = plain,
+% ...
% }
%\end{verbatim}
%\end{syntax}
@@ -508,6 +554,20 @@
% Ce champ spécifie le style bibliographique à utiliser pour la construction de la liste des références, tel que requis par \bibtex ou un autres engins bibliographiques équivalents. Comme ce champ spécifie le style à utiliser, il n'est pas nécessaire de mettre la macro |\bibliographystyle| dans le préambule, car la classe \laclasse automatise cette étape. Ce champ est ignoré, si l'option de classe |biblatex| a été spécifié (voir la section~\ref{class-options}). Consultez le protocole au sujet des styles bibliographiques. D'autres détails au sujet des références bibliographiques sont donnés dans la section~\ref{sec:refbib}.
%\end{variable}
%
+%\begin{variable}[added=2023-08-29]{auto-bib}
+%\begin{syntax}
+% |auto-bib =| \meta{valeur}
+%\end{syntax}
+% Ce champ est utilitaire et il est ignoré, sauf si l'option |biblatex| de classe a été spécifié (voir section~\ref{class-options}). Les choix pour \meta{valeur} sont |true| et |false|. Si ce champ est |true|, l'extension |bib| est ajoutée automatiquement à tous les fichiers spécifiés avec le champ |fichiers-references|. Ceci peut être pratique pour uniformiser les noms dans la liste des fichiers que \bibtex ou |biblatex| soit utilisé. Si la valeur de ce champ est |false|, rien n'est fait. Si ce champ est omis, la valeur par défaut est |false|. Il est possible aussi de spécifier uniquement |auto-bib| pour spécifier |true|.
+%\end{variable}
+%
+%
+%\begin{variable}[added=2023-08-30]{legendes-min}
+%\begin{syntax}
+% |legendes-min =| \meta{valeur}
+%\end{syntax}
+% Ce champ permet de spécifier si les mots \textit{figure} et \textit{tableau} des légendes sont écrits en style \textit{minuscule} ou non. Si ce champ est |true|, alors seule la première lettre du mot est en majuscule et ils sont écrits comme suit: Figure et Tableau. Si ce champ est |false|, alors le style est \textit{petites majuscules} et ils sont écrits comme suit: \textsc{Figure} et \textsc{Tableau}. La valeur par défaut de ce champ est |false|.
+%\end{variable}
%\begin{implementation}
\DeclareDocumentCommand \ConfigurationDocument { m }
{ \keys_set:nn { udes-genie-these } { #1 } }
@@ -524,9 +584,9 @@
programme .choices:nn = {electrique,mecanique,aerospatial,chimique,civil}
{\tl_gset_eq:NN \g_@@_programme_tl \l_keys_choice_tl},
programme .value_required:n = true,
- liste-figures .bool_gset:N = \g_@@_listeDesFigures_bool,
+ liste-figures .bool_gset:N = \g_@@_liste_figures_bool,
liste-figures .default:n = true,
- liste-tableaux .bool_gset:N = \g_@@_listeDesTableaux_bool,
+ liste-tableaux .bool_gset:N = \g_@@_liste_tableaux_bool,
liste-tableaux .default:n = true,
lignes .bool_gset:N = \g_@@_lignes_bool,
lignes .default:n = true,
@@ -546,6 +606,10 @@
fichiers-references .value_required:n = true,
style-references .tl_gset:N = \g_@@_style_references_tl,
style-references .value_required:n = true,
+ auto-bib .bool_gset:N = \g_@@_autobib_bool,
+ auto-bib .default:n = true,
+ legendes-min .bool_gset:N = \g_@@_legendes_min_bool,
+ legendes-min .default:n = true,
}
%\end{implementation}
@@ -732,7 +796,7 @@
foot=1.25cm,head=0.9cm,headsep=0.35cm,bindingoffset=0.5cm}
\captionsetup[table]{labelsep=quad,textformat=simple,font=normal,margin=5ex,position=top,skip=0.5ex}
\captionsetup[figure]{labelsep=quad,textformat=simple,font=normal,margin=5ex,position=bottom,skip=1ex}
-\frenchbsetup{ItemLabels=\textendash}
+\frenchsetup{ItemLabels=\textendash}
%%-----------------------------------------------------------------------------
%%--- REDEFINITION MACROS STANDARDS ------------------------------------
@@ -765,124 +829,7 @@
\secdef\@@_chapter\@@_schapter
}
-\addto\captionsfrench
-{
- \tl_gset:Nn \contentsname {TABLE~DES~MATIÈRES}
- \tl_gset:Nn \listfigurename {LISTE~DES~FIGURES}
- \tl_gset:Nn \listtablename {LISTE~DES~TABLEAUX}
- \tl_gset:Nn \chaptername {CHAPITRE}
- \tl_gset:Nn \bibname {LISTE~DES~RÉFÉRENCES}
- \tl_gset:Nn \appendixname {ANNEXE}
- \tl_gset:Nn \partname {PARTIE}
- \tl_gset:Nn \figurename {Figure}
- \tl_gset:Nn \tablename {Tableau}
- \tl_gset:Nn \glossaryname {LEXIQUE}
- \tl_gset:Nn \indexname {INDEX}
- \tl_gset:Nn \abstractname {RÉSUMÉ}
- \tl_gset:Nn \refname {LISTE~DES~RÉFÉRENCES}
- \tl_gset:Nn \prefacename {PRÉFACE}
- \tl_gset:Nn \CaptionSeparator {~~}
- \tl_gset:Nn \g_@@_listsymbolsname_tl {LISTE~DES~SYMBOLES}
- \tl_gset:Nn \g_@@_listacronymsname_tl {LISTE~DES~ACRONYMES}
- \tl_gset:Nn \g_@@_acknowledgementsname_tl {REMERCIEMENTS}
- \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
- \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie}
- \tl_gset:Nn \g_@@_specialityname_tl {Spécialité~:~}
- \tl_gset:Nn \g_@@_juryname_tl {MEMBRES~DU~JURY}
- \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada}
- \tl_gset:Nn \g_@@_motsclesname_tl {Mots-clés~:}
- \tl_gset:Nn \g_@@_jury_codirname_tl {Codirecteur}
- \tl_gset:Nn \g_@@_jury_codirnamef_tl {Codirectrice}
- \tl_gset:Nn \g_@@_jury_dirname_tl {Directeur}
- \tl_gset:Nn \g_@@_jury_dirnamef_tl {Directrice}
- \tl_gset:Nn \g_@@_jury_evalname_tl {Évaluateur}
- \tl_gset:Nn \g_@@_jury_evalnamef_tl {Évaluatrice}
-}
-
-\addto\captionsenglish
-{
- \tl_gset:Nn \contentsname {TABLE~OF~CONTENTS}
- \tl_gset:Nn \listfigurename {LIST~OF~FIGURES}
- \tl_gset:Nn \listtablename {LIST~OF~TABLES}
- \tl_gset:Nn \chaptername {CHAPTER}
- \tl_gset:Nn \bibname {LIST~OF~REFERENCES}
- \tl_gset:Nn \appendixname {APPENDIX}
- \tl_gset:Nn \partname {PART}
- \tl_gset:Nn \figurename {Figure}
- \tl_gset:Nn \tablename {Table}
- \tl_gset:Nn \glossaryname {GLOSSARY}
- \tl_gset:Nn \indexname {INDEX}
- \tl_gset:Nn \abstractname {ABSTRACT}~
- \tl_gset:Nn \refname {REFERENCES}
- \tl_gset:Nn \prefacename {PREFACE}
- \tl_gset:Nn \CaptionSeparator {~~}
- \tl_gset:Nn \g_@@_listsymbolsname_tl {LIST~OF~SYMBOLS}
- \tl_gset:Nn \g_@@_listacronymsname_tl {LIST~OF~ACRONYMS}
- \tl_gset:Nn \g_@@_acknowledgementsname_tl {ACKNOWLEDGEMENTS}
- \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
- \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie}
- \tl_gset:Nn \g_@@_specialityname_tl {Specialité:~}
- \tl_gset:Nn \g_@@_juryname_tl {JURY~MEMBERS}
- \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada}
- \tl_gset:Nn \g_@@_motsclesname_tl {Keywords:}
- \tl_gset:Nn \g_@@_jury_codirname_tl {Co-supervisor}
- \tl_gset:Nn \g_@@_jury_codirnamef_tl {Co-supervisor}
- \tl_gset:Nn \g_@@_jury_dirname_tl {Supervisor}
- \tl_gset:Nn \g_@@_jury_dirnamef_tl {Supervisor} %Directress
- \tl_gset:Nn \g_@@_jury_evalname_tl {Examiner} %Internal et external
- \tl_gset:Nn \g_@@_jury_evalnamef_tl {Examiner} %Internal et external
-}
-
%%-----------------------------------------------------------------------------
-%%--- MESSAGES D'ERREURS --------------------------------------------------
-%%-----------------------------------------------------------------------------
-\msg_new:nnnn {udesgeniethese}{auteur_nom_vide}{Le~nom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{auteur_prenom_vide}{Le~prenom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_fichier_vide}{Le~fichier~pour~#1~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_fichiers_vides}{Les~fichiers~pour~#1~ne~sont~pas~specifies.~Specifiez-les~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_langue_vide}{La~langue~principale~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~cle~'langue'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_programme_vide}{Le~programme~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'programme'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_type_vide}{Le~type~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'type'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{date_annee_vide}{L'annee~de~la~date~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{date_mois_vide}{Le~mois~de~la~date~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{dprdoctorat_max_pages}{La~DPR~de~doctorat~semble~longue.~Le~protocole~suggere~de~25~a~40~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{dprmaitrise_max_pages}{La~DPR~de~maitrise~semble~longue.~Le~protocole~suggere~de~20~a~30~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{essai_max_pages}{L'essai~semble~long.~Le~protocole~exige~un~maximum~de~70~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{memoire_max_pages}{Le~memoire~semble~long.~Le~protocole~exige~un~maximum~de~120~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{mots_cles_anglais_vide}{Les~mots-cles~anglais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{mots_cles_francais_vide}{Les~mots-cles~francais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{remerciements_longs}{Les~remerciements~doivent~etre~d'une~page~maximum.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{resume_anglais_long}{Le~resume~anglais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{titre_resume_mots_cles_anglais}{Le~titre,~le~resume~et~les~mots-cles~anglais~doivent~etre~donnes.~On~ne~peut~donner~l'un~sans~les~autres.}{Consultez~la~documentation.}
-
-\msg_new:nnnn {udesgeniethese}{resume_francais_long}{Le~resume~francais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{these_max_pages}{La~these~semble~longue.~Le~protocole~exige~un~maximum~de~250~pages}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{titre_anglais_vide}{Le~titre~anglais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{titre_francais_vide}{Le~titre~francais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{aerospatial}{Le~type~du~document~doit~etre~essai~si~le~programme~est~aerospatial.~Specifiez-le~~bon~type~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-%%-----------------------------------------------------------------------------
%%--- MACROS INTERNES --------------------------------------------------
%%-----------------------------------------------------------------------------
\fancypagestyle{chapitre}
@@ -914,19 +861,19 @@
\newcommand*{\@@_makechapterhead}[1]
{
- {
- \parindent \z@ \normalfont % \raggedright
- \ifnum \c at secnumdepth >\m at ne
- \if at mainmatter
- \LARGE\sffamily\bfseries \chaptername\space \thechapter
- \par\nobreak
- \vskip 0\p@
- \fi
- \fi
- \interlinepenalty\@M
- \LARGE\sffamily\bfseries #1 \par\nobreak
- \vskip 30\p@
- }
+ \group_begin:
+ \parindent \z@ \normalfont % \raggedright
+ \ifnum \c at secnumdepth >\m at ne
+ \if at mainmatter
+ \LARGE\sffamily\bfseries \chaptername\space \thechapter
+ \par\nobreak
+ \vskip 0\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \LARGE\sffamily\bfseries #1 \par\nobreak
+ \vskip 30\p@
+ \group_end:
}
\newcommand*{\@@_schapter}[1]
@@ -941,13 +888,86 @@
\newcommand*{\@@_makeschapterhead}[1]
{
+ \group_begin:
+ \parindent \z@ \normalfont %\raggedright
+ \vskip 0\p@
+ \interlinepenalty\@M
+ \LARGE\sffamily\bfseries #1 \par\nobreak
+ \vskip 30\p@
+ \group_end:
+}
+
+\cs_new:Npn \@@_caption_fmt #1 { #1 }
+
+\cs_new:Npn \@@_setup_captions
+{
+ \addto\captionsfrench
{
- \parindent \z@ \normalfont %\raggedright
- \vskip 0\p@
- \interlinepenalty\@M
- \LARGE\sffamily\bfseries #1 \par\nobreak
- \vskip 30\p@
+ \tl_gset:Nn \contentsname {TABLE~DES~MATIÈRES}
+ \tl_gset:Nn \listfigurename {LISTE~DES~FIGURES}
+ \tl_gset:Nn \listtablename {LISTE~DES~TABLEAUX}
+ \tl_gset:Nn \chaptername {CHAPITRE}
+ \tl_gset:Nn \bibname {LISTE~DES~RÉFÉRENCES}
+ \tl_gset:Nn \appendixname {ANNEXE}
+ \tl_gset:Nn \partname {PARTIE}
+ \tl_gset:Nn \figurename {Figure}
+ \tl_gset:Nn \tablename {Tableau}
+ \tl_gset:Nn \glossaryname {LEXIQUE}
+ \tl_gset:Nn \indexname {INDEX}
+ \tl_gset:Nn \abstractname {RÉSUMÉ}
+ \tl_gset:Nn \refname {LISTE~DES~RÉFÉRENCES}
+ \tl_gset:Nn \prefacename {PRÉFACE}
+ \tl_gset:Nn \CaptionSeparator {~~}
+ \tl_gset:Nn \g_@@_listsymbolsname_tl {LISTE~DES~SYMBOLES}
+ \tl_gset:Nn \g_@@_listacronymsname_tl {LISTE~DES~ACRONYMES}
+ \tl_gset:Nn \g_@@_acknowledgementsname_tl {REMERCIEMENTS}
+ \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
+ \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie}
+ \tl_gset:Nn \g_@@_specialityname_tl {Spécialité~:~}
+ \tl_gset:Nn \g_@@_juryname_tl {MEMBRES~DU~JURY}
+ \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada}
+ \tl_gset:Nn \g_@@_motsclesname_tl {Mots-clés~:}
+ \tl_gset:Nn \g_@@_jury_codirname_tl {Codirecteur}
+ \tl_gset:Nn \g_@@_jury_codirnamef_tl {Codirectrice}
+ \tl_gset:Nn \g_@@_jury_dirname_tl {Directeur}
+ \tl_gset:Nn \g_@@_jury_dirnamef_tl {Directrice}
+ \tl_gset:Nn \g_@@_jury_evalname_tl {Évaluateur}
+ \tl_gset:Nn \g_@@_jury_evalnamef_tl {Évaluatrice}
}
+
+ \addto\captionsenglish
+ {
+ \tl_gset:Nn \contentsname {TABLE~OF~CONTENTS}
+ \tl_gset:Nn \listfigurename {LIST~OF~FIGURES}
+ \tl_gset:Nn \listtablename {LIST~OF~TABLES}
+ \tl_gset:Nn \chaptername {CHAPTER}
+ \tl_gset:Nn \bibname {LIST~OF~REFERENCES}
+ \tl_gset:Nn \appendixname {APPENDIX}
+ \tl_gset:Nn \partname {PART}
+ \tl_gset:Nn \figurename {\_@@_caption_fmt{Figure}}
+ \tl_gset:Nn \tablename {\_@@_caption_fmt{Table}}
+ \tl_gset:Nn \glossaryname {GLOSSARY}
+ \tl_gset:Nn \indexname {INDEX}
+ \tl_gset:Nn \abstractname {ABSTRACT}~
+ \tl_gset:Nn \refname {LIST~OF~REFERENCES}
+ \tl_gset:Nn \prefacename {PREFACE}
+ \tl_gset:Nn \CaptionSeparator {~~}
+ \tl_gset:Nn \g_@@_listsymbolsname_tl {LIST~OF~SYMBOLS}
+ \tl_gset:Nn \g_@@_listacronymsname_tl {LIST~OF~ACRONYMS}
+ \tl_gset:Nn \g_@@_acknowledgementsname_tl {ACKNOWLEDGEMENTS}
+ \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
+ \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie}
+ \tl_gset:Nn \g_@@_specialityname_tl {Specialité:~}
+ \tl_gset:Nn \g_@@_juryname_tl {JURY~MEMBERS}
+ \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada}
+ \tl_gset:Nn \g_@@_motsclesname_tl {Keywords:}
+ \tl_gset:Nn \g_@@_jury_codirname_tl {Co-supervisor}
+ \tl_gset:Nn \g_@@_jury_codirnamef_tl {Co-supervisor}
+ \tl_gset:Nn \g_@@_jury_dirname_tl {Supervisor}
+ \tl_gset:Nn \g_@@_jury_dirnamef_tl {Supervisor} %Directress
+ \tl_gset:Nn \g_@@_jury_evalname_tl {Examiner} %Internal et external
+ \tl_gset:Nn \g_@@_jury_evalnamef_tl {Examiner} %Internal et external
+ }
}
\cs_new:Npn \@@_validation
@@ -1024,47 +1044,47 @@
\tl_if_empty:NT \g_@@_date_mois_tl
{ \msg_error:nn {udesgeniethese}{date_mois_vide} }
- \tl_case:Nn \g_@@_langue_tl
+ \token_case_meaning:Nn \g_@@_langue_tl
{
\c_@@_langue_francais_tl
{
\tl_if_empty:NT \g_@@_titre_francais_tl
- { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
+ { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
%<*these>
- \tl_if_empty:NT \g_@@_mots_cles_francais_tl
+ \tl_if_empty:NT \g_@@_mots_cles_francais_tl
{ \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} }
- \tl_if_empty:NT \g_@@_fichier_resume_francais_tl
+ \tl_if_empty:NT \g_@@_fichier_resume_francais_tl
{ \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} }
- \int_zero:N \l_tmpa_int
- \tl_if_empty:NF \g_@@_titre_anglais_tl
+ \int_zero:N \l_tmpa_int
+ \tl_if_empty:NF \g_@@_titre_anglais_tl
{ \int_incr:N \l_tmpa_int }
- \tl_if_empty:NF \g_@@_fichier_resume_anglais_tl
+ \tl_if_empty:NF \g_@@_fichier_resume_anglais_tl
{ \int_incr:N \l_tmpa_int }
- \tl_if_empty:NF \g_@@_mots_cles_anglais_tl
+ \tl_if_empty:NF \g_@@_mots_cles_anglais_tl
{ \int_incr:N \l_tmpa_int }
- \int_case:nnF { \l_tmpa_int }
- { {0}{}{3}{} }
- {
- \msg_error:nn {udesgeniethese}{titre_resume_mots_cles_anglais}
- \tl_gclear:N \g_@@_fichier_resume_anglais_tl % resume pas genere
- }
+ \int_case:nnF { \l_tmpa_int }
+ { {0}{}{3}{} }
+ {
+ \msg_error:nn {udesgeniethese}{titre_resume_mots_cles_anglais}
+ \tl_gclear:N \g_@@_fichier_resume_anglais_tl % resume pas genere
+ }
}
\c_@@_langue_english_tl
{
- \tl_if_empty:NT \g_@@_titre_francais_tl
- { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
- \tl_if_empty:NT \g_@@_mots_cles_francais_tl
- { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} }
- \tl_if_empty:NT \g_@@_fichier_resume_francais_tl
- { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} }
- \tl_if_empty:NT \g_@@_titre_anglais_tl
- { \msg_error:nn {udesgeniethese}{titre_anglais_vide} }
- \tl_if_empty:NT \g_@@_mots_cles_anglais_tl
- { \msg_error:nn {udesgeniethese}{mots_cles_anglais_vide} }
- \tl_if_empty:NT \g_@@_fichier_resume_anglais_tl
- { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~anglais}{fichierResumeAnglais} }
+ \tl_if_empty:NT \g_@@_titre_francais_tl
+ { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
+ \tl_if_empty:NT \g_@@_mots_cles_francais_tl
+ { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} }
+ \tl_if_empty:NT \g_@@_fichier_resume_francais_tl
+ { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} }
+ \tl_if_empty:NT \g_@@_titre_anglais_tl
+ { \msg_error:nn {udesgeniethese}{titre_anglais_vide} }
+ \tl_if_empty:NT \g_@@_mots_cles_anglais_tl
+ { \msg_error:nn {udesgeniethese}{mots_cles_anglais_vide} }
+ \tl_if_empty:NT \g_@@_fichier_resume_anglais_tl
+ { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~anglais}{fichierResumeAnglais} }
%</these>
}
}
@@ -1111,7 +1131,6 @@
\@@_setup_mecanique
\tl_gset:Nn \g_@@_essai_tl
{GMC~809~Projet~en~génie~aérospatial}
-
\tl_if_eq:NNF \g_@@_type_tl \c_@@_type_essai_tl
{\msg_error:nn {udesgeniethese}{aerospatial}}
}
@@ -1154,7 +1173,7 @@
\cs_new:Npn \@@_setup
{
- \tl_case:Nn \g_@@_langue_tl
+ \token_case_meaning:Nn \g_@@_langue_tl
{
\c_@@_langue_francais_tl {
\selectlanguage{french}
@@ -1174,7 +1193,7 @@
\renewcommand{\footrulewidth}{0pt}
}
- \tl_case:Nn \g_@@_format_tl
+ \token_case_meaning:Nn \g_@@_format_tl
{
\c_@@_format_livre_tl
{
@@ -1191,7 +1210,6 @@
\cfoot{\thepage}
}
}
-
%<these>
%<these> \use:c {_@@_setup_ \g_@@_programme_tl}
}
@@ -1198,113 +1216,112 @@
\cs_new:Npn \@@_generer_page_titre
{
- {
- \begin{titlepage}
- \renewcommand*{\thepage}{T1}
- \vspace*{-0.5 in}
- \begin{center}
- \begin{tabular}{c}
- \Large \g_@@_udesname_tl \\
-%<protocole> \Large\g_@@_facultyname_tl
-%<these> \Large\g_@@_facultyname_tl\\
-%<these> \Large\g_@@_departement_tl\\[0.5ex]
- \end{tabular}
- \vfill
- \tl_case:Nn \g_@@_langue_tl
- {
- \c_@@_langue_francais_tl {
- {\huge\g_@@_titre_francais_tl\par}
- }
- \c_@@_langue_english_tl {
- \begin{otherlanguage}{french}
- {\huge\g_@@_titre_francais_tl}
- \end{otherlanguage}\par
- {\Large\g_@@_titre_anglais_tl\par}
- }
+ \group_begin:
+ \begin{titlepage}
+ \renewcommand*{\thepage}{T1}
+ \vspace*{-0.5 in}
+ \begin{center}
+ \begin{tabular}{c}
+ \Large \g_@@_udesname_tl \\
+%<protocole> \Large\g_@@_facultyname_tl
+%<these> \Large\g_@@_facultyname_tl\\
+%<these> \Large\g_@@_departement_tl\\[0.5ex]
+ \end{tabular}
+ \vfill
+ \token_case_meaning:Nn \g_@@_langue_tl
+ {
+ \c_@@_langue_francais_tl {
+ {\huge\g_@@_titre_francais_tl\par}
}
- \vfill
-%<these> \begin{tabular}{c}
-%<these> \Large \use:c {g_@@_ \g_@@_type_tl _tl}
-%<these> \clist_if_in:NVT \g_@@_specialite_cl \g_@@_type_tl
-%<these> {
-%<these> \\[0.5ex]\Large\g_@@_specialityname_tl\g_@@_specialite_tl
-%<these> }
-%<these> \end{tabular}
-%<these> \vfill
- \begin{tabular}{c}
- {\Large\g_@@_auteur_prenom_tl\ \g_@@_auteur_nom_tl}
- \end{tabular}
- \vfill
- {\Large \g_@@_adressname_tl \par \vspace{2ex}\g_@@_date_mois_tl\ \g_@@_date_annee_tl}
- \end{center}
- \end{titlepage}
- \clearpage
-%<protocole> \thispagestyle{empty}
-%<protocole> \renewcommand*{\thepage}{T2}
-%<protocole> \null\vfill
-%<protocole> \c_@@_protocole_notice_tl\par
-%<protocole> \textcopyright\g_@@_date_annee_tl\ \c_@@_protocole_droits_tl
-%<protocole> \cleardoublepage
-%<these> \clearpage
-%<these> \if at openright\null\thispagestyle{empty}\renewcommand*{\thepage}{T2}\cleardoublepage\fi
- }
+ \c_@@_langue_english_tl {
+ \begin{otherlanguage}{french}
+ {\huge\g_@@_titre_francais_tl}
+ \end{otherlanguage}\par
+ {\Large\g_@@_titre_anglais_tl\par}
+ }
+ }
+ \vfill
+%<these> \begin{tabular}{c}
+%<these> \Large \use:c {g_@@_ \g_@@_type_tl _tl}
+%<these> \clist_if_in:NVT \g_@@_specialite_cl \g_@@_type_tl
+%<these> {
+%<these> \\[0.5ex]\Large\g_@@_specialityname_tl\g_@@_specialite_tl
+%<these> }
+%<these> \end{tabular}
+%<these> \vfill
+ \begin{tabular}{c}
+ {\Large\g_@@_auteur_prenom_tl\ \g_@@_auteur_nom_tl}
+ \end{tabular}
+ \vfill
+ {\Large \g_@@_adressname_tl \par \vspace{2ex}\g_@@_date_mois_tl\ \g_@@_date_annee_tl}
+ \end{center}
+ \end{titlepage}
+%<protocole> \thispagestyle{empty}
+%<protocole> \renewcommand*{\thepage}{T2}
+%<protocole> \null\vfill
+%<protocole> \c_@@_protocole_notice_tl\par
+%<protocole> \textcopyright\g_@@_date_annee_tl\ \c_@@_protocole_droits_tl
+%<protocole> \cleardoublepage
+%<these> \clearpage
+%<these> \if at openright\null\thispagestyle{empty}\renewcommand*{\thepage}{T2}\cleardoublepage\fi
+ \group_end:
}
\cs_new:Npn \@@_generer_jury
{
- {
- {\centering\chapter*{\g_@@_juryname_tl}}
+ \group_begin:
+ {\centering\chapter*{\g_@@_juryname_tl}}
- \begin{center}
- \vspace{4ex}
+ \begin{center}
+ \vspace{4ex}
+ \begin{tabular}{p{3in}}
+ \hfill\large\g_@@_jury_directeur_tl\hfill\null \\ \hline
+ \centering\small
+ \token_case_meaning:Nn \g_@@_jury_directeur_mf_tl
+ {
+ \c_@@_male_tl {\g_@@_jury_dirname_tl}
+ \c_@@_female_tl {\g_@@_jury_dirnamef_tl}
+ }
+ \end{tabular}\par
+
+ \tl_if_empty:NF \g_@@_jury_codirecteurs_cl
+ { \vspace{6ex} }
+
+ \clist_map_inline:Nn \g_@@_jury_codirecteurs_cl
+ {
\begin{tabular}{p{3in}}
- \hfill\large\g_@@_jury_directeur_tl\hfill\null \\ \hline
+ \hfill\large ##1 \hfill\null \\ \hline
+ \seq_gpop_left:NN \g_@@_jury_codirecteurs_mf_seq \l_tmpa_tl
\centering\small
- \tl_case:Nn \g_@@_jury_directeur_mf_tl
+ \token_case_meaning:Nn \l_tmpa_tl
{
- \c_@@_male_tl {\g_@@_jury_dirname_tl}
- \c_@@_female_tl {\g_@@_jury_dirnamef_tl}
+ \c_@@_male_tl {\g_@@_jury_codirname_tl}
+ \c_@@_female_tl {\g_@@_jury_codirnamef_tl}
}
\end{tabular}\par
+ }
- \tl_if_empty:NF \g_@@_jury_codirecteurs_cl
- { \vspace{6ex} }
+ \tl_if_empty:NF \g_@@_jury_evaluateurs_cl
+ { \vspace{6ex} }
- \clist_map_inline:Nn \g_@@_jury_codirecteurs_cl
- {
- \begin{tabular}{p{3in}}
- \hfill\large ##1 \hfill\null \\ \hline
- \seq_gpop_left:NN \g_@@_jury_codirecteurs_mf_seq \l_tmpa_tl
- \centering\small
- \tl_case:Nn \l_tmpa_tl
- {
- \c_@@_male_tl {\g_@@_jury_codirname_tl}
- \c_@@_female_tl {\g_@@_jury_codirnamef_tl}
- }
- \end{tabular}\par
- }
+ \clist_map_inline:Nn \g_@@_jury_evaluateurs_cl
+ {
+ \begin{tabular}{p{3in}}
+ \hfill\large ##1 \hfill\null \\ \hline
+ \seq_gpop_left:NN \g_@@_jury_evaluateurs_mf_seq \l_tmpa_tl
+ \centering\small
+ \token_case_meaning:Nn \l_tmpa_tl
+ {
+ \c_@@_male_tl {\g_@@_jury_evalname_tl}
+ \c_@@_female_tl {\g_@@_jury_evalnamef_tl}
+ }
+ \end{tabular}\par
+ }
+ \end{center}
- \tl_if_empty:NF \g_@@_jury_evaluateurs_cl
- { \vspace{6ex} }
-
- \clist_map_inline:Nn \g_@@_jury_evaluateurs_cl
- {
- \begin{tabular}{p{3in}}
- \hfill\large ##1 \hfill\null \\ \hline
- \seq_gpop_left:NN \g_@@_jury_evaluateurs_mf_seq \l_tmpa_tl
- \centering\small
- \tl_case:Nn \l_tmpa_tl
- {
- \c_@@_male_tl {\g_@@_jury_evalname_tl}
- \c_@@_female_tl {\g_@@_jury_evalnamef_tl}
- }
- \end{tabular}\par
- }
- \end{center}
-
- \thispagestyle{empty}\clearpage
- \if at openright\null\thispagestyle{empty}\cleardoublepage\fi
- }
+ \thispagestyle{empty}\clearpage
+ \if at openright\null\thispagestyle{empty}\cleardoublepage\fi
+ \group_end:
}
\cs_new:Npn \@@_generer_dedicace
@@ -1311,14 +1328,16 @@
{
\tl_if_empty:NF \g_@@_dedicace_tl
{
- {\null\vfill\flushright
- \begin{minipage}{0.5\linewidth}
- \setlength{\parskip}{1.5ex}\setlength{\parindent}{0em}
- \g_@@_dedicace_tl
- \end{minipage}
- \vfill\vfill
- \thispagestyle{empty}\clearpage
- \if at openright\null\thispagestyle{empty}\cleardoublepage\fi}
+ \group_begin:
+ \null\vfill\flushright
+ \begin{minipage}{0.5\linewidth}
+ \setlength{\parskip}{1.5ex}\setlength{\parindent}{0em}
+ \g_@@_dedicace_tl
+ \end{minipage}
+ \vfill\vfill
+ \thispagestyle{empty}\clearpage
+ \if at openright\null\thispagestyle{empty}\cleardoublepage\fi
+ \group_end:
}
}
@@ -1383,7 +1402,7 @@
{ \@@_generer_jury }
\@@_generer_resume_francais
- \tl_case:Nn \g_@@_langue_tl
+ \token_case_meaning:Nn \g_@@_langue_tl
{
\c_@@_langue_francais_tl {
\tl_if_blank:VF \g_@@_fichier_resume_anglais_tl
@@ -1404,13 +1423,13 @@
\tableofcontents
\if at openright\cleardoublepage\else\clearpage\fi
- \bool_if:NT \g_@@_listeDesFigures_bool
+ \bool_if:NT \g_@@_liste_figures_bool
{
\listoffigures
\if at openright\cleardoublepage\else\clearpage\fi
}
- \bool_if:NT \g_@@_listeDesTableaux_bool
+ \bool_if:NT \g_@@_liste_tableaux_bool
{
\listoftables
\if at openright\cleardoublepage\else\clearpage\fi
@@ -1448,7 +1467,7 @@
\refstepcounter{chapter}
\addcontentsline{toc}{chapter}{\bibname}
- \tl_case:Nn \g_@@_references_engin_tl
+ \token_case_meaning:Nn \g_@@_references_engin_tl
{
\c_@@_references_bibtex_tl
{ \bibliography{\g_@@_fichiers_references_cl} }
@@ -1462,21 +1481,38 @@
%%-----------------------------------------------------------------------------
%%--- GESTION AUTOMATISEE -------------------------------------------------
%%-----------------------------------------------------------------------------
-\AtEndPreamble
+\AddToHook{begindocument/before}
{
- \tl_case:Nn \g_@@_references_engin_tl
+ \bool_if:NTF \g_@@_legendes_min_bool
+ {\frenchsetup{SmallCapsFigTabCaptions=false}}
+ {\cs_gset:Npn \@@_caption_fmt #1 { \textsc{#1} }}
+
+ \token_case_meaning:Nn \g_@@_references_engin_tl
{
\c_@@_references_bibtex_tl
- { \bibliographystyle{\g_@@_style_references_tl} }
+ {
+ \IfPackageLoadedTF{biblatex}
+ {\msg_error:nn {udesgeniethese}{biblatex_en_trop}}{}
+ \bibliographystyle{\g_@@_style_references_tl}
+ }
\c_@@_references_biblatex_tl
{
+ \IfPackageLoadedTF{biblatex}
+ {}{\msg_error:nn {udesgeniethese}{biblatex_manquant}}
+
\clist_map_inline:Nn \g_@@_fichiers_references_cl
- {\addbibresource{#1}}
+ {
+ \bool_if:nTF \g_@@_autobib_bool
+ { \addbibresource{#1.bib} }
+ { \addbibresource{#1} }
+ }
}
}
+ \@@_setup_captions
}
-\AfterEndPreamble{
+\AddToHook{begindocument/end}
+{
\@@_validation
\@@_setup
\frontmatter
@@ -1487,7 +1523,8 @@
\onehalfspacing
}
-\AtEndDocument{
+\AddToHook{enddocument}
+{
% Si pas eu d'annexes avec \appendix
\int_compare:nNnT {\g_@@_pages_int} = {0}
{ \int_gset:Nn \g_@@_pages_int {\value{page}} }
@@ -1500,5 +1537,5 @@
\@@_generer_liste_references
}
%\end{implementation}
-% \Finale
+%\Finale
\endinput
Modified: trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins 2023-09-01 21:19:22 UTC (rev 68140)
+++ trunk/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins 2023-09-01 21:19:34 UTC (rev 68141)
@@ -1,5 +1,5 @@
%% udes-genie-these.dtx
-%% Copyright 2022 Charles-Antoine Brunet
+%% Copyright 2023 Charles-Antoine Brunet
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -10,7 +10,7 @@
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is Charles-Antoine Brunet.
%%
%% This work consists of the files udes-genie-these.dtx and udes-genie-these.ins
@@ -22,7 +22,7 @@
\preamble
-Copyright 2022 Charles-Antoine Brunet
+Copyright 2023 Charles-Antoine Brunet
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
Modified: trunk/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls 2023-09-01 21:19:22 UTC (rev 68140)
+++ trunk/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls 2023-09-01 21:19:34 UTC (rev 68141)
@@ -6,7 +6,7 @@
%%
%% udes-genie-these.dtx (with options: `these')
%%
-%% Copyright 2022 Charles-Antoine Brunet
+%% Copyright 2023 Charles-Antoine Brunet
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -25,21 +25,23 @@
%% and the derived files udes-genie-these.cls.
%%
%% udes-genie-these.dtx
-%% Copyright 2022 Charles-Antoine Brunet
+%% Copyright 2023 Charles-Antoine Brunet
%%
%%-----------------------------------------------------------------------------
%%--- IDENTIFICATION ------------------------------------------------------
%%-----------------------------------------------------------------------------
-\ProvidesExplClass{udes-genie-these}{2022/11/17}{3.0.1}
+\ProvidesExplClass{udes-genie-these}{2023/09/01}{3.1.0}
{Université de Sherbrooke, Faculté de génie: classe de document pour thèses, mémoires, DPR et essais}
%%-----------------------------------------------------------------------------
%%--- DECLARATION DES VARIABLES -------------------------------------------
%%-----------------------------------------------------------------------------
+\bool_new:N \g__udesgeniethese_autobib_bool
+\bool_new:N \g__udesgeniethese_legendes_min_bool
\bool_new:N \g__udesgeniethese_lignes_bool
-\bool_new:N \g__udesgeniethese_listeDesFigures_bool
-\bool_new:N \g__udesgeniethese_listeDesTableaux_bool
+\bool_new:N \g__udesgeniethese_liste_figures_bool
+\bool_new:N \g__udesgeniethese_liste_tableaux_bool
\clist_new:N \g__udesgeniethese_dedicace_cl
\clist_new:N \g__udesgeniethese_fichiers_references_cl
@@ -105,7 +107,7 @@
%%--- DECLARATION DES CONSTANTES ------------------------------------------
%%-----------------------------------------------------------------------------
\int_const:Nn \c__udesgeniethese_max_pages_dprdoctorat_int {40}
-\int_const:Nn \c__udesgeniethese_max_pages_dprmaitrise_int {30}
+\int_const:Nn \c__udesgeniethese_max_pages_dprmaitrise_int {25}
\int_const:Nn \c__udesgeniethese_max_pages_essai_int {70}
\int_const:Nn \c__udesgeniethese_max_pages_memoire_int {120}
\int_const:Nn \c__udesgeniethese_max_pages_these_int {250}
@@ -149,35 +151,90 @@
{\c__udesgeniethese_type_memoire_tl, \c__udesgeniethese_type_these_tl}
%%-----------------------------------------------------------------------------
+%%--- MESSAGES D'ERREURS --------------------------------------------------
+%%-----------------------------------------------------------------------------
+\msg_new:nnnn {udesgeniethese}{erreur_format}{Un~LaTeX~plus~récent~est~nécessaire.~Veuillez~mettre~à~jour~votre~distribution~LaTeX.}{Le~format~2022-06-01~ou~un~plus~récent~est~nécessaire.}
+
+\msg_new:nnnn {udesgeniethese}{biblatex_en_trop}{Avec~l'option~bibtex,~il~ne~faut~pas~charger~le~package~biblatex.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{biblatex_manquant}{L'option~biblatex~requiert~de~charger~le~package~biblatex~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{auteur_nom_vide}{Le~nom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{auteur_prenom_vide}{Le~prenom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_fichier_vide}{Le~fichier~pour~#1~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_fichiers_vides}{Les~fichiers~pour~#1~ne~sont~pas~specifies.~Specifiez-les~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_langue_vide}{La~langue~principale~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~cle~'langue'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_programme_vide}{Le~programme~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'programme'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{config_type_vide}{Le~type~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'type'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{date_annee_vide}{L'annee~de~la~date~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{date_mois_vide}{Le~mois~de~la~date~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{dprdoctorat_max_pages}{La~DPR~de~doctorat~semble~longue.~Le~protocole~exige~un~maximum~de~40~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{dprmaitrise_max_pages}{La~DPR~de~maitrise~semble~longue.~Le~protocole~exige~un~maximum~de~25~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{essai_max_pages}{L'essai~semble~long.~Le~protocole~exige~un~maximum~de~70~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{memoire_max_pages}{Le~memoire~semble~long.~Le~protocole~exige~un~maximum~de~120~pages.}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{mots_cles_anglais_vide}{Les~mots-cles~anglais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{mots_cles_francais_vide}{Les~mots-cles~francais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{remerciements_longs}{Les~remerciements~doivent~etre~d'une~page~maximum.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{resume_anglais_long}{Le~resume~anglais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{titre_resume_mots_cles_anglais}{Le~titre,~le~resume~et~les~mots-cles~anglais~doivent~etre~donnes.~On~ne~peut~donner~l'un~sans~les~autres.}{Consultez~la~documentation.}
+
+\msg_new:nnnn {udesgeniethese}{resume_francais_long}{Le~resume~francais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{these_max_pages}{La~these~semble~longue.~Le~protocole~exige~un~maximum~de~250~pages}{Consultez~le~protocole~de~redaction.}
+
+\msg_new:nnnn {udesgeniethese}{titre_anglais_vide}{Le~titre~anglais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{titre_francais_vide}{Le~titre~francais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
+
+\msg_new:nnnn {udesgeniethese}{aerospatial}{Le~type~du~document~doit~etre~essai~si~le~programme~est~aerospatial.~Specifiez-le~~bon~type~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
+
+%%-----------------------------------------------------------------------------
%%--- OPTIONS DE CLASSE ---------------------------------------------------
%%-----------------------------------------------------------------------------
-\keys_define:nn { udes-genie-these }
+\IfFormatAtLeastTF {2022-06-01}
+ {}{\msg_fatal:nn{udesgeniethese}{erreur_format}}
+
+\DeclareKeys
{
biblatex .code:n = {\tl_gset_eq:NN \g__udesgeniethese_references_engin_tl \c__udesgeniethese_references_biblatex_tl},
+ biblatex .usage:n = load,
bibtex .code:n = {\tl_gset_eq:NN \g__udesgeniethese_references_engin_tl \c__udesgeniethese_references_bibtex_tl},
+ bibtex .usage:n = load,
livre .code:n = {
\PassOptionsToClass{twoside,openright}{book}
\PassOptionsToPackage{twoside=true}{geometry}
\tl_gset_eq:NN \g__udesgeniethese_format_tl \c__udesgeniethese_format_livre_tl
},
+ livre .usage:n = load,
simple .code:n = {
\PassOptionsToClass{oneside,openany}{book}
\PassOptionsToPackage{twoside=false}{geometry}
\tl_gset_eq:NN \g__udesgeniethese_format_tl \c__udesgeniethese_format_simple_tl
},
+ simple .usage:n = load,
unknown .code:n = {\PassOptionsToClass{\CurrentOption}{book}},
}
-\keys_set:nn { udes-genie-these } {livre}
+\SetKeys{livre}
-\IfFormatAtLeastTF {2022-06-01}
-{
- \ProcessKeyOptions[udes-genie-these]
-}
-{
- \RequirePackage {l3keys2e}
- \ProcessKeysOptions{udes-genie-these}
-}
+\ProcessKeyOptions
%%-----------------------------------------------------------------------------
%%--- DEPENDANCES DE CLASSE -----------------------------------------------
@@ -204,9 +261,9 @@
programme .choices:nn = {electrique,mecanique,aerospatial,chimique,civil}
{\tl_gset_eq:NN \g__udesgeniethese_programme_tl \l_keys_choice_tl},
programme .value_required:n = true,
- liste-figures .bool_gset:N = \g__udesgeniethese_listeDesFigures_bool,
+ liste-figures .bool_gset:N = \g__udesgeniethese_liste_figures_bool,
liste-figures .default:n = true,
- liste-tableaux .bool_gset:N = \g__udesgeniethese_listeDesTableaux_bool,
+ liste-tableaux .bool_gset:N = \g__udesgeniethese_liste_tableaux_bool,
liste-tableaux .default:n = true,
lignes .bool_gset:N = \g__udesgeniethese_lignes_bool,
lignes .default:n = true,
@@ -226,6 +283,10 @@
fichiers-references .value_required:n = true,
style-references .tl_gset:N = \g__udesgeniethese_style_references_tl,
style-references .value_required:n = true,
+ auto-bib .bool_gset:N = \g__udesgeniethese_autobib_bool,
+ auto-bib .default:n = true,
+ legendes-min .bool_gset:N = \g__udesgeniethese_legendes_min_bool,
+ legendes-min .default:n = true,
}
\DeclareDocumentCommand \Auteur {mm}
@@ -302,7 +363,7 @@
foot=1.25cm,head=0.9cm,headsep=0.35cm,bindingoffset=0.5cm}
\captionsetup[table]{labelsep=quad,textformat=simple,font=normal,margin=5ex,position=top,skip=0.5ex}
\captionsetup[figure]{labelsep=quad,textformat=simple,font=normal,margin=5ex,position=bottom,skip=1ex}
-\frenchbsetup{ItemLabels=\textendash}
+\frenchsetup{ItemLabels=\textendash}
%%-----------------------------------------------------------------------------
%%--- REDEFINITION MACROS STANDARDS ------------------------------------
@@ -335,124 +396,7 @@
\secdef\__udesgeniethese_chapter\__udesgeniethese_schapter
}
-\addto\captionsfrench
-{
- \tl_gset:Nn \contentsname {TABLE~DES~MATIÈRES}
- \tl_gset:Nn \listfigurename {LISTE~DES~FIGURES}
- \tl_gset:Nn \listtablename {LISTE~DES~TABLEAUX}
- \tl_gset:Nn \chaptername {CHAPITRE}
- \tl_gset:Nn \bibname {LISTE~DES~RÉFÉRENCES}
- \tl_gset:Nn \appendixname {ANNEXE}
- \tl_gset:Nn \partname {PARTIE}
- \tl_gset:Nn \figurename {Figure}
- \tl_gset:Nn \tablename {Tableau}
- \tl_gset:Nn \glossaryname {LEXIQUE}
- \tl_gset:Nn \indexname {INDEX}
- \tl_gset:Nn \abstractname {RÉSUMÉ}
- \tl_gset:Nn \refname {LISTE~DES~RÉFÉRENCES}
- \tl_gset:Nn \prefacename {PRÉFACE}
- \tl_gset:Nn \CaptionSeparator {~~}
- \tl_gset:Nn \g__udesgeniethese_listsymbolsname_tl {LISTE~DES~SYMBOLES}
- \tl_gset:Nn \g__udesgeniethese_listacronymsname_tl {LISTE~DES~ACRONYMES}
- \tl_gset:Nn \g__udesgeniethese_acknowledgementsname_tl {REMERCIEMENTS}
- \tl_gset:Nn \g__udesgeniethese_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
- \tl_gset:Nn \g__udesgeniethese_facultyname_tl {Faculté~de~génie}
- \tl_gset:Nn \g__udesgeniethese_specialityname_tl {Spécialité~:~}
- \tl_gset:Nn \g__udesgeniethese_juryname_tl {MEMBRES~DU~JURY}
- \tl_gset:Nn \g__udesgeniethese_adressname_tl {Sherbrooke~(Québec)~Canada}
- \tl_gset:Nn \g__udesgeniethese_motsclesname_tl {Mots-clés~:}
- \tl_gset:Nn \g__udesgeniethese_jury_codirname_tl {Codirecteur}
- \tl_gset:Nn \g__udesgeniethese_jury_codirnamef_tl {Codirectrice}
- \tl_gset:Nn \g__udesgeniethese_jury_dirname_tl {Directeur}
- \tl_gset:Nn \g__udesgeniethese_jury_dirnamef_tl {Directrice}
- \tl_gset:Nn \g__udesgeniethese_jury_evalname_tl {Évaluateur}
- \tl_gset:Nn \g__udesgeniethese_jury_evalnamef_tl {Évaluatrice}
-}
-
-\addto\captionsenglish
-{
- \tl_gset:Nn \contentsname {TABLE~OF~CONTENTS}
- \tl_gset:Nn \listfigurename {LIST~OF~FIGURES}
- \tl_gset:Nn \listtablename {LIST~OF~TABLES}
- \tl_gset:Nn \chaptername {CHAPTER}
- \tl_gset:Nn \bibname {LIST~OF~REFERENCES}
- \tl_gset:Nn \appendixname {APPENDIX}
- \tl_gset:Nn \partname {PART}
- \tl_gset:Nn \figurename {Figure}
- \tl_gset:Nn \tablename {Table}
- \tl_gset:Nn \glossaryname {GLOSSARY}
- \tl_gset:Nn \indexname {INDEX}
- \tl_gset:Nn \abstractname {ABSTRACT}~
- \tl_gset:Nn \refname {REFERENCES}
- \tl_gset:Nn \prefacename {PREFACE}
- \tl_gset:Nn \CaptionSeparator {~~}
- \tl_gset:Nn \g__udesgeniethese_listsymbolsname_tl {LIST~OF~SYMBOLS}
- \tl_gset:Nn \g__udesgeniethese_listacronymsname_tl {LIST~OF~ACRONYMS}
- \tl_gset:Nn \g__udesgeniethese_acknowledgementsname_tl {ACKNOWLEDGEMENTS}
- \tl_gset:Nn \g__udesgeniethese_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
- \tl_gset:Nn \g__udesgeniethese_facultyname_tl {Faculté~de~génie}
- \tl_gset:Nn \g__udesgeniethese_specialityname_tl {Specialité:~}
- \tl_gset:Nn \g__udesgeniethese_juryname_tl {JURY~MEMBERS}
- \tl_gset:Nn \g__udesgeniethese_adressname_tl {Sherbrooke~(Québec)~Canada}
- \tl_gset:Nn \g__udesgeniethese_motsclesname_tl {Keywords:}
- \tl_gset:Nn \g__udesgeniethese_jury_codirname_tl {Co-supervisor}
- \tl_gset:Nn \g__udesgeniethese_jury_codirnamef_tl {Co-supervisor}
- \tl_gset:Nn \g__udesgeniethese_jury_dirname_tl {Supervisor}
- \tl_gset:Nn \g__udesgeniethese_jury_dirnamef_tl {Supervisor} %Directress
- \tl_gset:Nn \g__udesgeniethese_jury_evalname_tl {Examiner} %Internal et external
- \tl_gset:Nn \g__udesgeniethese_jury_evalnamef_tl {Examiner} %Internal et external
-}
-
%%-----------------------------------------------------------------------------
-%%--- MESSAGES D'ERREURS --------------------------------------------------
-%%-----------------------------------------------------------------------------
-\msg_new:nnnn {udesgeniethese}{auteur_nom_vide}{Le~nom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{auteur_prenom_vide}{Le~prenom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_fichier_vide}{Le~fichier~pour~#1~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_fichiers_vides}{Les~fichiers~pour~#1~ne~sont~pas~specifies.~Specifiez-les~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_langue_vide}{La~langue~principale~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~cle~'langue'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_programme_vide}{Le~programme~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'programme'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{config_type_vide}{Le~type~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'type'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{date_annee_vide}{L'annee~de~la~date~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{date_mois_vide}{Le~mois~de~la~date~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{dprdoctorat_max_pages}{La~DPR~de~doctorat~semble~longue.~Le~protocole~suggere~de~25~a~40~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{dprmaitrise_max_pages}{La~DPR~de~maitrise~semble~longue.~Le~protocole~suggere~de~20~a~30~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{essai_max_pages}{L'essai~semble~long.~Le~protocole~exige~un~maximum~de~70~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{memoire_max_pages}{Le~memoire~semble~long.~Le~protocole~exige~un~maximum~de~120~pages.}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{mots_cles_anglais_vide}{Les~mots-cles~anglais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{mots_cles_francais_vide}{Les~mots-cles~francais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{remerciements_longs}{Les~remerciements~doivent~etre~d'une~page~maximum.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{resume_anglais_long}{Le~resume~anglais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{titre_resume_mots_cles_anglais}{Le~titre,~le~resume~et~les~mots-cles~anglais~doivent~etre~donnes.~On~ne~peut~donner~l'un~sans~les~autres.}{Consultez~la~documentation.}
-
-\msg_new:nnnn {udesgeniethese}{resume_francais_long}{Le~resume~francais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{these_max_pages}{La~these~semble~longue.~Le~protocole~exige~un~maximum~de~250~pages}{Consultez~le~protocole~de~redaction.}
-
-\msg_new:nnnn {udesgeniethese}{titre_anglais_vide}{Le~titre~anglais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{titre_francais_vide}{Le~titre~francais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.}
-
-\msg_new:nnnn {udesgeniethese}{aerospatial}{Le~type~du~document~doit~etre~essai~si~le~programme~est~aerospatial.~Specifiez-le~~bon~type~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.}
-
-%%-----------------------------------------------------------------------------
%%--- MACROS INTERNES --------------------------------------------------
%%-----------------------------------------------------------------------------
\fancypagestyle{chapitre}
@@ -484,19 +428,19 @@
\newcommand*{\__udesgeniethese_makechapterhead}[1]
{
- {
- \parindent \z@ \normalfont % \raggedright
- \ifnum \c at secnumdepth >\m at ne
- \if at mainmatter
- \LARGE\sffamily\bfseries \chaptername\space \thechapter
- \par\nobreak
- \vskip 0\p@
- \fi
- \fi
- \interlinepenalty\@M
- \LARGE\sffamily\bfseries #1 \par\nobreak
- \vskip 30\p@
- }
+ \group_begin:
+ \parindent \z@ \normalfont % \raggedright
+ \ifnum \c at secnumdepth >\m at ne
+ \if at mainmatter
+ \LARGE\sffamily\bfseries \chaptername\space \thechapter
+ \par\nobreak
+ \vskip 0\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \LARGE\sffamily\bfseries #1 \par\nobreak
+ \vskip 30\p@
+ \group_end:
}
\newcommand*{\__udesgeniethese_schapter}[1]
@@ -511,13 +455,86 @@
\newcommand*{\__udesgeniethese_makeschapterhead}[1]
{
+ \group_begin:
+ \parindent \z@ \normalfont %\raggedright
+ \vskip 0\p@
+ \interlinepenalty\@M
+ \LARGE\sffamily\bfseries #1 \par\nobreak
+ \vskip 30\p@
+ \group_end:
+}
+
+\cs_new:Npn \__udesgeniethese_caption_fmt #1 { #1 }
+
+\cs_new:Npn \__udesgeniethese_setup_captions
+{
+ \addto\captionsfrench
{
- \parindent \z@ \normalfont %\raggedright
- \vskip 0\p@
- \interlinepenalty\@M
- \LARGE\sffamily\bfseries #1 \par\nobreak
- \vskip 30\p@
+ \tl_gset:Nn \contentsname {TABLE~DES~MATIÈRES}
+ \tl_gset:Nn \listfigurename {LISTE~DES~FIGURES}
+ \tl_gset:Nn \listtablename {LISTE~DES~TABLEAUX}
+ \tl_gset:Nn \chaptername {CHAPITRE}
+ \tl_gset:Nn \bibname {LISTE~DES~RÉFÉRENCES}
+ \tl_gset:Nn \appendixname {ANNEXE}
+ \tl_gset:Nn \partname {PARTIE}
+ \tl_gset:Nn \figurename {Figure}
+ \tl_gset:Nn \tablename {Tableau}
+ \tl_gset:Nn \glossaryname {LEXIQUE}
+ \tl_gset:Nn \indexname {INDEX}
+ \tl_gset:Nn \abstractname {RÉSUMÉ}
+ \tl_gset:Nn \refname {LISTE~DES~RÉFÉRENCES}
+ \tl_gset:Nn \prefacename {PRÉFACE}
+ \tl_gset:Nn \CaptionSeparator {~~}
+ \tl_gset:Nn \g__udesgeniethese_listsymbolsname_tl {LISTE~DES~SYMBOLES}
+ \tl_gset:Nn \g__udesgeniethese_listacronymsname_tl {LISTE~DES~ACRONYMES}
+ \tl_gset:Nn \g__udesgeniethese_acknowledgementsname_tl {REMERCIEMENTS}
+ \tl_gset:Nn \g__udesgeniethese_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
+ \tl_gset:Nn \g__udesgeniethese_facultyname_tl {Faculté~de~génie}
+ \tl_gset:Nn \g__udesgeniethese_specialityname_tl {Spécialité~:~}
+ \tl_gset:Nn \g__udesgeniethese_juryname_tl {MEMBRES~DU~JURY}
+ \tl_gset:Nn \g__udesgeniethese_adressname_tl {Sherbrooke~(Québec)~Canada}
+ \tl_gset:Nn \g__udesgeniethese_motsclesname_tl {Mots-clés~:}
+ \tl_gset:Nn \g__udesgeniethese_jury_codirname_tl {Codirecteur}
+ \tl_gset:Nn \g__udesgeniethese_jury_codirnamef_tl {Codirectrice}
+ \tl_gset:Nn \g__udesgeniethese_jury_dirname_tl {Directeur}
+ \tl_gset:Nn \g__udesgeniethese_jury_dirnamef_tl {Directrice}
+ \tl_gset:Nn \g__udesgeniethese_jury_evalname_tl {Évaluateur}
+ \tl_gset:Nn \g__udesgeniethese_jury_evalnamef_tl {Évaluatrice}
}
+
+ \addto\captionsenglish
+ {
+ \tl_gset:Nn \contentsname {TABLE~OF~CONTENTS}
+ \tl_gset:Nn \listfigurename {LIST~OF~FIGURES}
+ \tl_gset:Nn \listtablename {LIST~OF~TABLES}
+ \tl_gset:Nn \chaptername {CHAPTER}
+ \tl_gset:Nn \bibname {LIST~OF~REFERENCES}
+ \tl_gset:Nn \appendixname {APPENDIX}
+ \tl_gset:Nn \partname {PART}
+ \tl_gset:Nn \figurename {\__udesgeniethese_caption_fmt{Figure}}
+ \tl_gset:Nn \tablename {\__udesgeniethese_caption_fmt{Table}}
+ \tl_gset:Nn \glossaryname {GLOSSARY}
+ \tl_gset:Nn \indexname {INDEX}
+ \tl_gset:Nn \abstractname {ABSTRACT}~
+ \tl_gset:Nn \refname {LIST~OF~REFERENCES}
+ \tl_gset:Nn \prefacename {PREFACE}
+ \tl_gset:Nn \CaptionSeparator {~~}
+ \tl_gset:Nn \g__udesgeniethese_listsymbolsname_tl {LIST~OF~SYMBOLS}
+ \tl_gset:Nn \g__udesgeniethese_listacronymsname_tl {LIST~OF~ACRONYMS}
+ \tl_gset:Nn \g__udesgeniethese_acknowledgementsname_tl {ACKNOWLEDGEMENTS}
+ \tl_gset:Nn \g__udesgeniethese_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE}
+ \tl_gset:Nn \g__udesgeniethese_facultyname_tl {Faculté~de~génie}
+ \tl_gset:Nn \g__udesgeniethese_specialityname_tl {Specialité:~}
+ \tl_gset:Nn \g__udesgeniethese_juryname_tl {JURY~MEMBERS}
+ \tl_gset:Nn \g__udesgeniethese_adressname_tl {Sherbrooke~(Québec)~Canada}
+ \tl_gset:Nn \g__udesgeniethese_motsclesname_tl {Keywords:}
+ \tl_gset:Nn \g__udesgeniethese_jury_codirname_tl {Co-supervisor}
+ \tl_gset:Nn \g__udesgeniethese_jury_codirnamef_tl {Co-supervisor}
+ \tl_gset:Nn \g__udesgeniethese_jury_dirname_tl {Supervisor}
+ \tl_gset:Nn \g__udesgeniethese_jury_dirnamef_tl {Supervisor} %Directress
+ \tl_gset:Nn \g__udesgeniethese_jury_evalname_tl {Examiner} %Internal et external
+ \tl_gset:Nn \g__udesgeniethese_jury_evalnamef_tl {Examiner} %Internal et external
+ }
}
\cs_new:Npn \__udesgeniethese_validation
@@ -594,46 +611,46 @@
\tl_if_empty:NT \g__udesgeniethese_date_mois_tl
{ \msg_error:nn {udesgeniethese}{date_mois_vide} }
- \tl_case:Nn \g__udesgeniethese_langue_tl
+ \token_case_meaning:Nn \g__udesgeniethese_langue_tl
{
\c__udesgeniethese_langue_francais_tl
{
\tl_if_empty:NT \g__udesgeniethese_titre_francais_tl
- { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
- \tl_if_empty:NT \g__udesgeniethese_mots_cles_francais_tl
+ { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
+ \tl_if_empty:NT \g__udesgeniethese_mots_cles_francais_tl
{ \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} }
- \tl_if_empty:NT \g__udesgeniethese_fichier_resume_francais_tl
+ \tl_if_empty:NT \g__udesgeniethese_fichier_resume_francais_tl
{ \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} }
- \int_zero:N \l_tmpa_int
- \tl_if_empty:NF \g__udesgeniethese_titre_anglais_tl
+ \int_zero:N \l_tmpa_int
+ \tl_if_empty:NF \g__udesgeniethese_titre_anglais_tl
{ \int_incr:N \l_tmpa_int }
- \tl_if_empty:NF \g__udesgeniethese_fichier_resume_anglais_tl
+ \tl_if_empty:NF \g__udesgeniethese_fichier_resume_anglais_tl
{ \int_incr:N \l_tmpa_int }
- \tl_if_empty:NF \g__udesgeniethese_mots_cles_anglais_tl
+ \tl_if_empty:NF \g__udesgeniethese_mots_cles_anglais_tl
{ \int_incr:N \l_tmpa_int }
- \int_case:nnF { \l_tmpa_int }
- { {0}{}{3}{} }
- {
- \msg_error:nn {udesgeniethese}{titre_resume_mots_cles_anglais}
- \tl_gclear:N \g__udesgeniethese_fichier_resume_anglais_tl % resume pas genere
- }
+ \int_case:nnF { \l_tmpa_int }
+ { {0}{}{3}{} }
+ {
+ \msg_error:nn {udesgeniethese}{titre_resume_mots_cles_anglais}
+ \tl_gclear:N \g__udesgeniethese_fichier_resume_anglais_tl % resume pas genere
+ }
}
\c__udesgeniethese_langue_english_tl
{
- \tl_if_empty:NT \g__udesgeniethese_titre_francais_tl
- { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
- \tl_if_empty:NT \g__udesgeniethese_mots_cles_francais_tl
- { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} }
- \tl_if_empty:NT \g__udesgeniethese_fichier_resume_francais_tl
- { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} }
- \tl_if_empty:NT \g__udesgeniethese_titre_anglais_tl
- { \msg_error:nn {udesgeniethese}{titre_anglais_vide} }
- \tl_if_empty:NT \g__udesgeniethese_mots_cles_anglais_tl
- { \msg_error:nn {udesgeniethese}{mots_cles_anglais_vide} }
- \tl_if_empty:NT \g__udesgeniethese_fichier_resume_anglais_tl
- { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~anglais}{fichierResumeAnglais} }
+ \tl_if_empty:NT \g__udesgeniethese_titre_francais_tl
+ { \msg_error:nn {udesgeniethese}{titre_francais_vide} }
+ \tl_if_empty:NT \g__udesgeniethese_mots_cles_francais_tl
+ { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} }
+ \tl_if_empty:NT \g__udesgeniethese_fichier_resume_francais_tl
+ { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} }
+ \tl_if_empty:NT \g__udesgeniethese_titre_anglais_tl
+ { \msg_error:nn {udesgeniethese}{titre_anglais_vide} }
+ \tl_if_empty:NT \g__udesgeniethese_mots_cles_anglais_tl
+ { \msg_error:nn {udesgeniethese}{mots_cles_anglais_vide} }
+ \tl_if_empty:NT \g__udesgeniethese_fichier_resume_anglais_tl
+ { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~anglais}{fichierResumeAnglais} }
}
}
}
@@ -679,7 +696,6 @@
\__udesgeniethese_setup_mecanique
\tl_gset:Nn \g__udesgeniethese_essai_tl
{GMC~809~Projet~en~génie~aérospatial}
-
\tl_if_eq:NNF \g__udesgeniethese_type_tl \c__udesgeniethese_type_essai_tl
{\msg_error:nn {udesgeniethese}{aerospatial}}
}
@@ -722,7 +738,7 @@
\cs_new:Npn \__udesgeniethese_setup
{
- \tl_case:Nn \g__udesgeniethese_langue_tl
+ \token_case_meaning:Nn \g__udesgeniethese_langue_tl
{
\c__udesgeniethese_langue_francais_tl {
\selectlanguage{french}
@@ -742,7 +758,7 @@
\renewcommand{\footrulewidth}{0pt}
}
- \tl_case:Nn \g__udesgeniethese_format_tl
+ \token_case_meaning:Nn \g__udesgeniethese_format_tl
{
\c__udesgeniethese_format_livre_tl
{
@@ -760,112 +776,110 @@
}
}
-
\use:c {__udesgeniethese_setup_ \g__udesgeniethese_programme_tl}
}
\cs_new:Npn \__udesgeniethese_generer_page_titre
{
- {
- \begin{titlepage}
- \renewcommand*{\thepage}{T1}
- \vspace*{-0.5 in}
- \begin{center}
- \begin{tabular}{c}
- \Large \g__udesgeniethese_udesname_tl \\
- \Large\g__udesgeniethese_facultyname_tl\\
- \Large\g__udesgeniethese_departement_tl\\[0.5ex]
- \end{tabular}
- \vfill
- \tl_case:Nn \g__udesgeniethese_langue_tl
+ \group_begin:
+ \begin{titlepage}
+ \renewcommand*{\thepage}{T1}
+ \vspace*{-0.5 in}
+ \begin{center}
+ \begin{tabular}{c}
+ \Large \g__udesgeniethese_udesname_tl \\
+ \Large\g__udesgeniethese_facultyname_tl\\
+ \Large\g__udesgeniethese_departement_tl\\[0.5ex]
+ \end{tabular}
+ \vfill
+ \token_case_meaning:Nn \g__udesgeniethese_langue_tl
+ {
+ \c__udesgeniethese_langue_francais_tl {
+ {\huge\g__udesgeniethese_titre_francais_tl\par}
+ }
+ \c__udesgeniethese_langue_english_tl {
+ \begin{otherlanguage}{french}
+ {\huge\g__udesgeniethese_titre_francais_tl}
+ \end{otherlanguage}\par
+ {\Large\g__udesgeniethese_titre_anglais_tl\par}
+ }
+ }
+ \vfill
+ \begin{tabular}{c}
+ \Large \use:c {g__udesgeniethese_ \g__udesgeniethese_type_tl _tl}
+ \clist_if_in:NVT \g__udesgeniethese_specialite_cl \g__udesgeniethese_type_tl
{
- \c__udesgeniethese_langue_francais_tl {
- {\huge\g__udesgeniethese_titre_francais_tl\par}
- }
- \c__udesgeniethese_langue_english_tl {
- \begin{otherlanguage}{french}
- {\huge\g__udesgeniethese_titre_francais_tl}
- \end{otherlanguage}\par
- {\Large\g__udesgeniethese_titre_anglais_tl\par}
- }
+ \\[0.5ex]\Large\g__udesgeniethese_specialityname_tl\g__udesgeniethese_specialite_tl
}
- \vfill
- \begin{tabular}{c}
- \Large \use:c {g__udesgeniethese_ \g__udesgeniethese_type_tl _tl}
- \clist_if_in:NVT \g__udesgeniethese_specialite_cl \g__udesgeniethese_type_tl
- {
- \\[0.5ex]\Large\g__udesgeniethese_specialityname_tl\g__udesgeniethese_specialite_tl
- }
- \end{tabular}
- \vfill
- \begin{tabular}{c}
- {\Large\g__udesgeniethese_auteur_prenom_tl\ \g__udesgeniethese_auteur_nom_tl}
- \end{tabular}
- \vfill
- {\Large \g__udesgeniethese_adressname_tl \par \vspace{2ex}\g__udesgeniethese_date_mois_tl\ \g__udesgeniethese_date_annee_tl}
- \end{center}
- \end{titlepage}
- \clearpage
- \clearpage
- \if at openright\null\thispagestyle{empty}\renewcommand*{\thepage}{T2}\cleardoublepage\fi
- }
+ \end{tabular}
+ \vfill
+ \begin{tabular}{c}
+ {\Large\g__udesgeniethese_auteur_prenom_tl\ \g__udesgeniethese_auteur_nom_tl}
+ \end{tabular}
+ \vfill
+ {\Large \g__udesgeniethese_adressname_tl \par \vspace{2ex}\g__udesgeniethese_date_mois_tl\ \g__udesgeniethese_date_annee_tl}
+ \end{center}
+ \end{titlepage}
+ \clearpage
+ \if at openright\null\thispagestyle{empty}\renewcommand*{\thepage}{T2}\cleardoublepage\fi
+ \group_end:
}
\cs_new:Npn \__udesgeniethese_generer_jury
{
- {
- {\centering\chapter*{\g__udesgeniethese_juryname_tl}}
+ \group_begin:
+ {\centering\chapter*{\g__udesgeniethese_juryname_tl}}
- \begin{center}
- \vspace{4ex}
+ \begin{center}
+ \vspace{4ex}
+ \begin{tabular}{p{3in}}
+ \hfill\large\g__udesgeniethese_jury_directeur_tl\hfill\null \\ \hline
+ \centering\small
+ \token_case_meaning:Nn \g__udesgeniethese_jury_directeur_mf_tl
+ {
+ \c__udesgeniethese_male_tl {\g__udesgeniethese_jury_dirname_tl}
+ \c__udesgeniethese_female_tl {\g__udesgeniethese_jury_dirnamef_tl}
+ }
+ \end{tabular}\par
+
+ \tl_if_empty:NF \g__udesgeniethese_jury_codirecteurs_cl
+ { \vspace{6ex} }
+
+ \clist_map_inline:Nn \g__udesgeniethese_jury_codirecteurs_cl
+ {
\begin{tabular}{p{3in}}
- \hfill\large\g__udesgeniethese_jury_directeur_tl\hfill\null \\ \hline
+ \hfill\large ##1 \hfill\null \\ \hline
+ \seq_gpop_left:NN \g__udesgeniethese_jury_codirecteurs_mf_seq \l_tmpa_tl
\centering\small
- \tl_case:Nn \g__udesgeniethese_jury_directeur_mf_tl
+ \token_case_meaning:Nn \l_tmpa_tl
{
- \c__udesgeniethese_male_tl {\g__udesgeniethese_jury_dirname_tl}
- \c__udesgeniethese_female_tl {\g__udesgeniethese_jury_dirnamef_tl}
+ \c__udesgeniethese_male_tl {\g__udesgeniethese_jury_codirname_tl}
+ \c__udesgeniethese_female_tl {\g__udesgeniethese_jury_codirnamef_tl}
}
\end{tabular}\par
+ }
- \tl_if_empty:NF \g__udesgeniethese_jury_codirecteurs_cl
- { \vspace{6ex} }
+ \tl_if_empty:NF \g__udesgeniethese_jury_evaluateurs_cl
+ { \vspace{6ex} }
- \clist_map_inline:Nn \g__udesgeniethese_jury_codirecteurs_cl
- {
- \begin{tabular}{p{3in}}
- \hfill\large ##1 \hfill\null \\ \hline
- \seq_gpop_left:NN \g__udesgeniethese_jury_codirecteurs_mf_seq \l_tmpa_tl
- \centering\small
- \tl_case:Nn \l_tmpa_tl
- {
- \c__udesgeniethese_male_tl {\g__udesgeniethese_jury_codirname_tl}
- \c__udesgeniethese_female_tl {\g__udesgeniethese_jury_codirnamef_tl}
- }
- \end{tabular}\par
- }
+ \clist_map_inline:Nn \g__udesgeniethese_jury_evaluateurs_cl
+ {
+ \begin{tabular}{p{3in}}
+ \hfill\large ##1 \hfill\null \\ \hline
+ \seq_gpop_left:NN \g__udesgeniethese_jury_evaluateurs_mf_seq \l_tmpa_tl
+ \centering\small
+ \token_case_meaning:Nn \l_tmpa_tl
+ {
+ \c__udesgeniethese_male_tl {\g__udesgeniethese_jury_evalname_tl}
+ \c__udesgeniethese_female_tl {\g__udesgeniethese_jury_evalnamef_tl}
+ }
+ \end{tabular}\par
+ }
+ \end{center}
- \tl_if_empty:NF \g__udesgeniethese_jury_evaluateurs_cl
- { \vspace{6ex} }
-
- \clist_map_inline:Nn \g__udesgeniethese_jury_evaluateurs_cl
- {
- \begin{tabular}{p{3in}}
- \hfill\large ##1 \hfill\null \\ \hline
- \seq_gpop_left:NN \g__udesgeniethese_jury_evaluateurs_mf_seq \l_tmpa_tl
- \centering\small
- \tl_case:Nn \l_tmpa_tl
- {
- \c__udesgeniethese_male_tl {\g__udesgeniethese_jury_evalname_tl}
- \c__udesgeniethese_female_tl {\g__udesgeniethese_jury_evalnamef_tl}
- }
- \end{tabular}\par
- }
- \end{center}
-
- \thispagestyle{empty}\clearpage
- \if at openright\null\thispagestyle{empty}\cleardoublepage\fi
- }
+ \thispagestyle{empty}\clearpage
+ \if at openright\null\thispagestyle{empty}\cleardoublepage\fi
+ \group_end:
}
\cs_new:Npn \__udesgeniethese_generer_dedicace
@@ -872,14 +886,16 @@
{
\tl_if_empty:NF \g__udesgeniethese_dedicace_tl
{
- {\null\vfill\flushright
- \begin{minipage}{0.5\linewidth}
- \setlength{\parskip}{1.5ex}\setlength{\parindent}{0em}
- \g__udesgeniethese_dedicace_tl
- \end{minipage}
- \vfill\vfill
- \thispagestyle{empty}\clearpage
- \if at openright\null\thispagestyle{empty}\cleardoublepage\fi}
+ \group_begin:
+ \null\vfill\flushright
+ \begin{minipage}{0.5\linewidth}
+ \setlength{\parskip}{1.5ex}\setlength{\parindent}{0em}
+ \g__udesgeniethese_dedicace_tl
+ \end{minipage}
+ \vfill\vfill
+ \thispagestyle{empty}\clearpage
+ \if at openright\null\thispagestyle{empty}\cleardoublepage\fi
+ \group_end:
}
}
@@ -943,7 +959,7 @@
{ \__udesgeniethese_generer_jury }
\__udesgeniethese_generer_resume_francais
- \tl_case:Nn \g__udesgeniethese_langue_tl
+ \token_case_meaning:Nn \g__udesgeniethese_langue_tl
{
\c__udesgeniethese_langue_francais_tl {
\tl_if_blank:VF \g__udesgeniethese_fichier_resume_anglais_tl
@@ -963,13 +979,13 @@
\tableofcontents
\if at openright\cleardoublepage\else\clearpage\fi
- \bool_if:NT \g__udesgeniethese_listeDesFigures_bool
+ \bool_if:NT \g__udesgeniethese_liste_figures_bool
{
\listoffigures
\if at openright\cleardoublepage\else\clearpage\fi
}
- \bool_if:NT \g__udesgeniethese_listeDesTableaux_bool
+ \bool_if:NT \g__udesgeniethese_liste_tableaux_bool
{
\listoftables
\if at openright\cleardoublepage\else\clearpage\fi
@@ -1005,7 +1021,7 @@
\refstepcounter{chapter}
\addcontentsline{toc}{chapter}{\bibname}
- \tl_case:Nn \g__udesgeniethese_references_engin_tl
+ \token_case_meaning:Nn \g__udesgeniethese_references_engin_tl
{
\c__udesgeniethese_references_bibtex_tl
{ \bibliography{\g__udesgeniethese_fichiers_references_cl} }
@@ -1019,21 +1035,38 @@
%%-----------------------------------------------------------------------------
%%--- GESTION AUTOMATISEE -------------------------------------------------
%%-----------------------------------------------------------------------------
-\AtEndPreamble
+\AddToHook{begindocument/before}
{
- \tl_case:Nn \g__udesgeniethese_references_engin_tl
+ \bool_if:NTF \g__udesgeniethese_legendes_min_bool
+ {\frenchsetup{SmallCapsFigTabCaptions=false}}
+ {\cs_gset:Npn \__udesgeniethese_caption_fmt #1 { \textsc{#1} }}
+
+ \token_case_meaning:Nn \g__udesgeniethese_references_engin_tl
{
\c__udesgeniethese_references_bibtex_tl
- { \bibliographystyle{\g__udesgeniethese_style_references_tl} }
+ {
+ \IfPackageLoadedTF{biblatex}
+ {\msg_error:nn {udesgeniethese}{biblatex_en_trop}}{}
+ \bibliographystyle{\g__udesgeniethese_style_references_tl}
+ }
\c__udesgeniethese_references_biblatex_tl
{
+ \IfPackageLoadedTF{biblatex}
+ {}{\msg_error:nn {udesgeniethese}{biblatex_manquant}}
+
\clist_map_inline:Nn \g__udesgeniethese_fichiers_references_cl
- {\addbibresource{#1}}
+ {
+ \bool_if:nTF \g__udesgeniethese_autobib_bool
+ { \addbibresource{#1.bib} }
+ { \addbibresource{#1} }
+ }
}
}
+ \__udesgeniethese_setup_captions
}
-\AfterEndPreamble{
+\AddToHook{begindocument/end}
+{
\__udesgeniethese_validation
\__udesgeniethese_setup
\frontmatter
@@ -1044,7 +1077,8 @@
\onehalfspacing
}
-\AtEndDocument{
+\AddToHook{enddocument}
+{
% Si pas eu d'annexes avec \appendix
\int_compare:nNnT {\g__udesgeniethese_pages_int} = {0}
{ \int_gset:Nn \g__udesgeniethese_pages_int {\value{page}} }
More information about the tex-live-commits
mailing list.