diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-01 21:19:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-01 21:19:34 +0000 |
commit | 63b1de3dc657c563490e2d8fe79b9145c7df5982 (patch) | |
tree | 1687ad985da99eb47f086df075ccba17f87afe2d | |
parent | f39ca0c5a0f585fe73054f95da17b3a47e9d989a (diff) |
udes-genie-these (1sep23)
git-svn-id: svn://tug.org/texlive/trunk@68141 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/udes-genie-these/README.md | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf | bin | 129528 -> 180308 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx | 669 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls | 608 |
6 files changed, 681 insertions, 608 deletions
diff --git a/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex b/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex index 66245c37d87..485226c1523 100644 --- a/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex +++ b/Master/texmf-dist/doc/latex/udes-genie-these/Exemple/document.tex @@ -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} diff --git a/Master/texmf-dist/doc/latex/udes-genie-these/README.md b/Master/texmf-dist/doc/latex/udes-genie-these/README.md index 82bbd5cff7c..7682a7db620 100644 --- a/Master/texmf-dist/doc/latex/udes-genie-these/README.md +++ b/Master/texmf-dist/doc/latex/udes-genie-these/README.md @@ -5,7 +5,7 @@ The udes-genie-these class can be used for Ph.D. thesis, master's thesis and pro 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: diff --git a/Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf b/Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf Binary files differindex e834a41846b..12bdda374b3 100644 --- a/Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf +++ b/Master/texmf-dist/doc/latex/udes-genie-these/udes-genie-these.pdf diff --git a/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx b/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx index 25fa39a50e8..cdd6bdfe6ef 100644 --- a/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx +++ b/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.dtx @@ -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,40 +423,41 @@ % % 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} %%----------------------------------------------------------------------------- %%--- 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} + +\ProcessKeyOptions -\IfFormatAtLeastTF {2022-06-01} -{ - \ProcessKeyOptions[udes-genie-these] -} -{ - \RequirePackage {l3keys2e} - \ProcessKeysOptions{udes-genie-these} -} %%----------------------------------------------------------------------------- %%--- DEPENDANCES DE CLASSE ----------------------------------------------- @@ -414,27 +473,14 @@ %\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} %\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,123 +829,6 @@ \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 -------------------------------------------------- %%----------------------------------------------------------------------------- @@ -914,19 +861,19 @@ \newcommand*{\@@_makechapterhead}[1] { - { - \parindent \z@ \normalfont % \raggedright - \ifnum \c@secnumdepth >\m@ne - \if@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@secnumdepth >\m@ne + \if@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,12 +888,85 @@ \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 } } @@ -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,134 +1210,134 @@ \cfoot{\thepage} } } - %<these> %<these> \use:c {_@@_setup_ \g_@@_programme_tl} } \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@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@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{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 - \begin{center} - \vspace{4ex} + \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} } - - \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 - } - - \tl_if_empty:NF \g_@@_jury_evaluateurs_cl - { \vspace{6ex} } + \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} + \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} - \thispagestyle{empty}\clearpage - \if@openright\null\thispagestyle{empty}\cleardoublepage\fi - } + \thispagestyle{empty}\clearpage + \if@openright\null\thispagestyle{empty}\cleardoublepage\fi + \group_end: } \cs_new:Npn \@@_generer_dedicace { \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@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@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@openright\cleardoublepage\else\clearpage\fi - \bool_if:NT \g_@@_listeDesFigures_bool + \bool_if:NT \g_@@_liste_figures_bool { \listoffigures \if@openright\cleardoublepage\else\clearpage\fi } - \bool_if:NT \g_@@_listeDesTableaux_bool + \bool_if:NT \g_@@_liste_tableaux_bool { \listoftables \if@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 diff --git a/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins b/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins index 2975ed180c2..473fd9e0d2e 100644 --- a/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins +++ b/Master/texmf-dist/source/latex/udes-genie-these/udes-genie-these.ins @@ -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 diff --git a/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls b/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls index bb862a1b901..090db155a82 100644 --- a/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls +++ b/Master/texmf-dist/tex/latex/udes-genie-these/udes-genie-these.cls @@ -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,123 +396,6 @@ \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 -------------------------------------------------- %%----------------------------------------------------------------------------- @@ -484,19 +428,19 @@ \newcommand*{\__udesgeniethese_makechapterhead}[1] { - { - \parindent \z@ \normalfont % \raggedright - \ifnum \c@secnumdepth >\m@ne - \if@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@secnumdepth >\m@ne + \if@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,12 +455,85 @@ \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 + { + \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 { - \parindent \z@ \normalfont %\raggedright - \vskip 0\p@ - \interlinepenalty\@M - \LARGE\sffamily\bfseries #1 \par\nobreak - \vskip 30\p@ + \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 } } @@ -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,126 +776,126 @@ } } - \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@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@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{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 - \begin{center} - \vspace{4ex} + \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} } - - \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 - } - - \tl_if_empty:NF \g__udesgeniethese_jury_evaluateurs_cl - { \vspace{6ex} } + \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} + \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} - \thispagestyle{empty}\clearpage - \if@openright\null\thispagestyle{empty}\cleardoublepage\fi - } + \thispagestyle{empty}\clearpage + \if@openright\null\thispagestyle{empty}\cleardoublepage\fi + \group_end: } \cs_new:Npn \__udesgeniethese_generer_dedicace { \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@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@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@openright\cleardoublepage\else\clearpage\fi - \bool_if:NT \g__udesgeniethese_listeDesFigures_bool + \bool_if:NT \g__udesgeniethese_liste_figures_bool { \listoffigures \if@openright\cleardoublepage\else\clearpage\fi } - \bool_if:NT \g__udesgeniethese_listeDesTableaux_bool + \bool_if:NT \g__udesgeniethese_liste_tableaux_bool { \listoftables \if@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}} } |