From 079ee03ea57935d1695ea2fc98113dcc923adaa5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 1 Feb 2013 23:36:56 +0000 Subject: ulthese (1feb13) git-svn-id: svn://tug.org/texlive/trunk@29004 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/ulthese/ulthese.dtx | 215 +++++++++++++-------- 1 file changed, 130 insertions(+), 85 deletions(-) (limited to 'Master/texmf-dist/source/latex') diff --git a/Master/texmf-dist/source/latex/ulthese/ulthese.dtx b/Master/texmf-dist/source/latex/ulthese/ulthese.dtx index 2e8872573a5..93828c24597 100644 --- a/Master/texmf-dist/source/latex/ulthese/ulthese.dtx +++ b/Master/texmf-dist/source/latex/ulthese/ulthese.dtx @@ -29,7 +29,7 @@ %\NeedsTeXFormat{LaTeX2e}[2009/09/24] %\ProvidesClass{ulthese}% %<*class> - [2012/09/30 v1.0 Classe pour les theses et memoires de l'Universite Laval] + [2013/01/13 v2.0 Classe pour les theses et memoires de l'Universite Laval] % %<*driver> \documentclass[11pt]{ltxdoc} @@ -59,18 +59,21 @@ \end{document} % % \fi -% \CheckSum{568} +% \CheckSum{636} % \DoNotIndex{\',\^,\`,\ ,\ae} % \DoNotIndex{\RequirePackage,\ExecuteOptions,\ifthenelse,\ProcessOptions} % \DoNotIndex{\newcommand,\newcommand*,\newboolean} % \DoNotIndex{\setlength,\setboolean} +% \changes{2.0}{2013-01-13}{Traitement automatique des longs titres} +% \changes{1.0b}{2012-11-11}{Ajouts et corrections mineures dans la documentation} +% \changes{1.0a}{2012-10-17}{Précisions dans la documentation} % \changes{1.0}{2012-09-30}{Version initiale} % \GetFileInfo{ulthese.dtx} % \title{\textsf{ulthese}: une classe pour les thèses et mémoires de % l'Université Laval\thanks{Ce document décrit la classe % \textsf{ulthese}~\fileversion, datée du \filedate.}} % \author{Faculté des études supérieures et postdoctorales\thanks{% -% Cette classe et sa documentation ont été rédigés par Vincent +% Cette classe et sa documentation ont été rédigées par Vincent % Goulet~(Faculté des sciences et de génie) avec la collaboration de % Koassi D'Almeida~(Faculté des études supérieures et postdoctorales) et % Pierre Lasou~(Bibliothèque).}} @@ -115,6 +118,12 @@ % % \section{Installation} % +% La classe est distribuée sous forme d'une archive |ulthese.zip| via +% le réseau de sites CTAN: +% \begin{quote} +% \url{http://www.ctan.org/pkg/ulthese} +% \end{quote} +% % L'installation de la classe consiste à créer le fichier % |ulthese.cls| et plusieurs gabarits |.tex| à partir du code source % documenté se trouvant dans le fichier |ulthese.dtx|. Il est @@ -160,8 +169,8 @@ % \textsf{memoir}. % \end{description} % -% Si aucune taille de police n'est précisée, la classe utilisera une -% taille par défaut de 11~points. La taille des polices de la page +% Si aucune taille de police n'est précisée, la classe utilisera par +% défaut une police de 11~points. La taille des polices de la page % titre n'est pas affectée par les options |10pt|, |11pt| et |12pt|. % % Le paquetage \textsf{natbib} est normalement chargé par la classe. @@ -198,32 +207,16 @@ % commande |\title| de {\LaTeX} pour ce faire. % % Un titre très long devra être coupé manuellement avec |\\| ou -% |\newline|. Dans un tel cas, il est également nécessaire de -% retrancher de l'espacement vertical pour éviter que les autres -% éléments de la page titre ne soient poussés vers le bas. Pour ce -% faire, ajouter la déclaration -% \begin{quote} -% |\vspace*{-|$n$|\baselineskip}| -% \end{quote} -% à la fin de la \emph{dernière} ligne de titre s'il y a $n + 1$ -% lignes de titre au total. -% -% Par exemple, la déclaration d'un titre d'une seule ligne est: +% |\newline|. Par exemple, la déclaration d'un titre d'une seule +% ligne est: % \begin{quote} % |\titre{Ceci est un titre d'une seule ligne}| % \end{quote} % Pour un titre de deux lignes, on écrira: % \begin{quote} % |\titre{Ceci est la première ligne d'un long titre \\| \\ -% | et ceci est la seconde \vspace*{-1\baselineskip}}| -% \end{quote} -% Pour un titre de trois lignes, c'est alors: -% \begin{quote} -% |\titre{Ceci est la première ligne d'un très long titre \\| \\ -% | pour lequel deux lignes ne suffisent pas \\| \\ -% | alors voici la troisième \vspace*{-2\baselineskip}}| +% | et ceci est la seconde}| % \end{quote} -% Ainsi de suite. % \end{DescribeMacro} % % \begin{DescribeMacro}{\soustitre} @@ -459,9 +452,9 @@ % |scaled=0.92|. Consulter la section~\ref{sec:police} pour des % informations additionnelles. % \end{description} -% La section~\ref{sec:meo} sur la mise en {\oe}uvre de la classe -% fournit plus de détails sur la liste des paquetages chargés et les -% raisons pour lesquelles ils sont requis dans la classe. +% L'annexe~\ref{sec:meo} sur la mise en {\oe}uvre de la classe fournit +% plus de détails sur la liste des paquetages chargés et les raisons +% pour lesquelles ils sont requis dans la classe. % % \section{Français et autres langues} % \label{sec:langues} @@ -469,8 +462,8 @@ % Une complication additionnelle pour les auteurs rédigeant dans une % langue autre que l'anglais consiste à adapter {\LaTeX} à leur % langue, qu'il s'agisse des mots clés, de la typographie ou de la -% césure des mots. La solution à ce problème provient du paquetage -% standard \textsf{babel}. Celui-ci permet de combiner plusieurs +% césure des mots. La solution standard à ce problème provient du +% paquetage \textsf{babel}. Celui-ci permet de combiner plusieurs % langues dans un même document et de passer de l'une à l'autre % facilement. Il est chargé par la classe \textsf{ulthese}. % @@ -506,15 +499,15 @@ % \label{sec:police} % % Les documents {\LaTeX} sont facilement reconnaissables par leur -% police de caractère par défaut, Computer Modern. Avec toute +% police de caractère par défaut, {\fontfamily{cmr}\selectfont Computer Modern}. Avec toute % distribution {\LaTeX} moderne, il est maintenant simple d'utiliser % l'une ou l'autre des polices Postscript standards. D'ailleurs la % classe \textsf{ulthese} utilise la police sans empattements -% Helvetica pour composer la page titre. +% \textsf{Helvetica} pour composer la page titre. % -% La FESP permet l'utilisation des polices Times et +% La FESP permet l'utilisation des polices {\fontfamily{ptm}\selectfont Times} et % Palatino\footnote{% -% Police utilisée dans le présent document.} % +% Palatino est la police utilisée dans le présent document.} % % dans les thèse et mémoires {\LaTeX}. Pour utiliser ces polices, % charger les paquetages \textsf{mathptmx} ou \textsf{mathpazo}, % respectivement. Pour les détails, consulter la documentation de @@ -718,13 +711,13 @@ % consulter en ligne} % % sur CTAN. % -% De plus, Vincent Goulet a préparé la feuille de style -% |francais.bst| compatible avec \textsf{natbib}; consulter la -% section \href{http://vgoulet.act.ulaval.ca/latex/}{LaTeX en -% français} de son site Web. La feuille de style permet de composer -% des bibliographies auteur-année respectant les normes de typographie -% française telles qu'édictées dans \cite{Malo:1996}. Pour utiliser ce -% style, on spécifera dans le préambule du document LaTeX +% De plus, Vincent Goulet a préparé le paquetage +% \href{http://www.ctan.org/pkg/francais-bst/}{\textsf{francais-bst}} +% qui fournit une feuille de style compatible avec \textsf{natbib}. +% Celle-ci permet de composer des bibliographies auteur-année +% respectant les normes de typographie française proposées dans +% \cite{Malo:1996}. Pour utiliser ce style, on spécifiera dans le +% préambule du document LaTeX % \begin{quote} % |\bibliographystyle{francais}| % \end{quote} @@ -840,11 +833,12 @@ % \section{Aide additionnelle} % % Pour obtenir de l'aide additionnelle sur l'utilisation de la classe -% \textsf{ulthese} (et sur celle de {\LaTeX} en général), prière de -% consulter d'abord +% \textsf{ulthese} (et non sur celle de {\LaTeX} en général), prière +% de consulter d'abord % \begin{enumerate} % \item le \href{http://www.theses.ulaval.ca/wiki/}{WikiThèse} de -% l'Université Laval; +% l'Université Laval, en particulier la +% \href{http://www.theses.ulaval.ca/wiki/index.php?title=FAQ}{Foire aux questions}; % \item les % \href{http://listes.ulaval.ca/listserv/archives/ulthese-aide.html}{archives} % de la liste de distribution \texttt{ulthese-aide}. @@ -861,7 +855,7 @@ % \section{Mise en {\oe}uvre} % \label{sec:meo} % -% Cette section passe en revue le code {\TeX} et {\LaTeX} de la +% Cette annexe passe en revue le code {\TeX} et {\LaTeX} de la % classe. Elle ne risque d'intéresser que les personnes qui souhaitent % explorer comment la classe est programmée. % @@ -1064,24 +1058,27 @@ % \end{table} % % \begin{macrocode} -\ifthenelse{\UL@ptsize=10}{% +\ifnum\UL@ptsize=10\relax \newcommand*{\UL@fonttitle}{\normalfont\Huge\bfseries\sffamily} \newcommand*{\UL@fontsubtitle}{\normalfont\huge\bfseries\sffamily} \newcommand*{\UL@fontauthor}{\normalfont\LARGE\bfseries\sffamily} \newcommand*{\UL@fontprogram}{\UL@fontauthor} - \newcommand*{\UL@fontbase}{\normalfont\LARGE\sffamily}}{} -\ifthenelse{\UL@ptsize=11}{% + \newcommand*{\UL@fontbase}{\normalfont\LARGE\sffamily} +\fi +\ifnum\UL@ptsize=11\relax \newcommand*{\UL@fonttitle}{\normalfont\huge\bfseries\sffamily} \newcommand*{\UL@fontsubtitle}{\normalfont\LARGE\bfseries\sffamily} \newcommand*{\UL@fontauthor}{\normalfont\Large\bfseries\sffamily} \newcommand*{\UL@fontprogram}{\UL@fontauthor} - \newcommand*{\UL@fontbase}{\normalfont\Large\sffamily}}{} -\ifthenelse{\UL@ptsize=12}{% + \newcommand*{\UL@fontbase}{\normalfont\Large\sffamily} +\fi +\ifnum\UL@ptsize=12\relax \newcommand*{\UL@fonttitle}{\normalfont\LARGE\bfseries\sffamily} \newcommand*{\UL@fontsubtitle}{\normalfont\Large\bfseries\sffamily} \newcommand*{\UL@fontauthor}{\normalfont\large\bfseries\sffamily} \newcommand*{\UL@fontprogram}{\UL@fontauthor} - \newcommand*{\UL@fontbase}{\normalfont\large\sffamily}}{} + \newcommand*{\UL@fontbase}{\normalfont\large\sffamily} +\fi % \end{macrocode} % % Définition de deux valeurs booléennes servant à adapter la @@ -1212,22 +1209,43 @@ % \end{enumerate} % À ces blocs s'ajoutent quatre grandes catégories de disposition des % éléments sur la page titre selon le type de thèse ou de mémoire: -% standard, multifacultaire, en cotutelle et en extension. Les -% commandes internes ci-dessous prennent en compte toutes les -% combinaisons possibles. -% -% \begin{macro}{\UL@title} -% La commande |\UL@title| prépare le titre. Si le document ne -% comporte pas de sous-titre, un espace est ajouté pour ne pas -% décaler vers le haut les autres éléments de la page. +% standard, multifacultaire, en cotutelle et en extension. +% +% \subsubsection{Titre et sous-titre} +% +% Le titre et le sous-titre peuvent s'étendre sur plus d'une ligne. +% Sans traitement spécial, un long titre ou sous-titre aurait pour +% impact de décaler vers le bas tous les autres éléments de la page +% titre. Pour contrer ce phénomène, nous devrons mesurer la hauteur du +% titre et du sous-titre pour ensuite ajuster en conséquence la +% distance entre ce bloc et la mention du type de document. +% +% \begin{macro}{\UL@measuretitle} +% On place le titre et le sous-titre dans des boîtes |\UL@titlebox| +% et |\UL@subtitlebox|. La commande |\UL@measuretitle| permettra de +% mesurer leur hauteur lorsque le titre sera créé avec |\pagetitre|, +% plus bas. Un espacement vertical d'un demi interligne est ajouté +% entre le titre et le sous-titre, le cas échéant. % \begin{macrocode} -\newcommand{\UL@title}{% - {\UL@fonttitle\UL@maintitle\par} - {\UL@fontsubtitle - \ifthenelse{\boolean{UL@hassubtitle}}{\UL@subtitle}{% - \vspace*{\baselineskip}}\par}} +\newsavebox{\UL@titlebox} +\newsavebox{\UL@subtitlebox} +\newlength{\UL@titleboxtotht} +\newlength{\UL@subtitleboxtotht} +\newcommand{\UL@measuretitle}{% + \setbox\UL@titlebox=\vbox{% + \centering\UL@fonttitle\UL@maintitle} + \setlength{\UL@titleboxtotht}{% + \dimexpr\ht\UL@titlebox+\dp\UL@titlebox} + \ifthenelse{\boolean{UL@hassubtitle}}{% + \setbox\UL@subtitlebox=\vbox{% + \centering\vspace*{0.5\baselineskip}\UL@fontsubtitle\UL@subtitle} + \setlength{\UL@subtitleboxtotht}{% + \dimexpr\ht\UL@subtitlebox+\dp\UL@subtitlebox}}{}} % \end{macrocode} % \end{macro} +% +% \subsubsection{Type de document} +% % \begin{macro}{\Ul@docid} % La commande |\Ul@docid| prépare la mention du type de document. La % thèse ou le mémoire en cotutelle requiert un traitement différent @@ -1238,6 +1256,9 @@ \ifnum\UL@typenum=2 \UL@program\par \fi}} % \end{macrocode} % \end{macro} +% +% \subsubsection{Détails sur les facultés} +% % \begin{macro}{\Ul@details} % La commande |\Ul@details| est la plus complexe puisque la % disposition des informations additionnelles sur le document @@ -1281,26 +1302,51 @@ % \end{macro} % % \begin{macro}{\pagetitre} -% Construction de la page titre. Le nom de l'auteur et la notice de -% copyright sont insérées directement dans le code de la commande -% |\pagetitre|. On doit rétablir sur la page titre l'interligne -% simple et l'espacement nul entre les paragraphes (|\parskip|). La -% page titre des thèses et mémoires en cotutelle ou en extension ne -% comporte pas de logo de l'Université Laval. +% Construction de la page titre. On doit rétablir sur la page titre +% l'interligne simple et l'espacement nul entre les paragraphes +% (|\parskip|). Ensuite, on doit ajuster la distance entre le bloc +% de titre et le type de document (|\UL@docidspacing|) et celle +% entre ce dernier et le nom de l'auteur (|\UL@authorspacing|). Cela +% fait en sorte que les éléments de la page titre se retrouvent +% (presque) toujours au même endroit sur la page. Une distance +% minimale d'un interligne est conservée entre le bloc de titre et +% le type de document (précaution nécessaire pour l'éventuel cas +% d'un bloc de titre s'étendant sur plusieurs lignes). +% +% La page titre des thèses et mémoires en cotutelle ou en extension +% ne comporte pas de logo de l'Université Laval. +% +% Le nom de l'auteur et la notice de copyright sont insérées +% directement dans le code de la commande |\pagetitre|. % \begin{macrocode} +\newlength{\UL@docidspacing} +\setlength{\UL@docidspacing}{82pt} +\newlength{\UL@authorspacing} +\setlength{\UL@authorspacing}{72pt} \newcommand{\pagetitre}{{% \clearpage \thispagestyle{empty} \SingleSpacing\setlength{\parskip}{0pt} \centering \UL@fontbase - \ifthenelse{\UL@typenum > 1}{\vspace*{0pt}\par}{% - \includegraphics[height=40px,keepaspectratio=true]{ul_p}\par} - \vspace{72pt} - \UL@title - \vspace{48pt} + \UL@measuretitle + \addtolength{\UL@docidspacing}{-\UL@titleboxtotht} + \addtolength{\UL@docidspacing}{-\UL@subtitleboxtotht} + \ifdim\UL@docidspacing<\baselineskip\relax + \setlength{\UL@docidspacing}{\baselineskip} + \addtolength{\UL@authorspacing}{-\baselineskip} + \fi + \ifnum\UL@typenum>1\relax + \vspace*{0pt}\par + \else + \includegraphics[height=40px,keepaspectratio=true]{ul_p}\par + \fi + \vspace{82pt} + \box\UL@titlebox + \box\UL@subtitlebox + \vspace{\UL@docidspacing} \UL@docid - \vspace{72pt} + \vspace{\UL@authorspacing} {\UL@fontauthor\UL@author}\par \UL@details \vfill @@ -1405,7 +1451,7 @@ % \bibitem[{Malo(1996)}]{Malo:1996} % \bibnamefont{Malo}, M. 1996, {\selectlanguage{francais}\emph{Guide de la % communication écrite au cégep, à l'université et en entreprise}}, Québec -% Amérique. +% Amérique. ISBN~978-2-8903-7875-9. % \end{thebibliography} % % \Finale @@ -1463,20 +1509,19 @@ %% Déclarations de la page titre. Remplacer les éléments entre < >. %% Supprimer les caractères < >. Couper un long titre ou un long - %% sous-titre manuellement avec \\. Terminer une éventuelle deuxième - %% ligne de titre ou de sous-titre avec \vspace*{-\baselineskip}. + %% sous-titre manuellement avec \\. \titre{} % \titre{Ceci est un exemple de long titre \\ - % avec saut de ligne manuel \vspace*{-\baselineskip}} + % avec saut de ligne manuel} % \soustitre{Sous-titre le cas échéant} - % \soustitre{Ceci est un exemple de long-titre \\ - % avec saut de ligne manuel \vspace*{-\baselineskip}} + % \soustitre{Ceci est un exemple de long sous-titre \\ + % avec saut de ligne manuel} \auteur{} -% \programme{Doctorat en -- } -% \programme{Doctorat sur mesure en -- } +% \programme{Doctorat en -- } +% \programme{Doctorat sur mesure en -- } % \programme{Doctorat en } -% \programme{Maîtrise en -- } -% \programme{Maîtrise sur mesure en -- } +% \programme{Maîtrise en -- } +% \programme{Maîtrise sur mesure en -- } % \programme{Maîtrise en } \annee{<20xx>} % \PhD % ou l'un de \LLD, \DPsy, \DThP -- cgit v1.2.3