% camus.cls - Derniere mise a jour : 2018/01/25 % % La classe CaMUS sert a compiler les differents articles d'un volume % CaMUS sans (trop) se casser la tete. Elle est basee elle aussi sur % la classe de l'AMS. % % La classe camus a ete realise en suivant les instructions de : % - La transformation de la vieille classe CaMUS en la nouvelle % amelioree : % http://www.latex-project.org/guides/clsguide.pdf % % Les deux documents suivants donnent aussi de bonnes pistes : % - http://tutex.tug.org/pracjourn/2005-4/hefferon/hefferon.pdf % - http://www.tug.org/TUGboat/tb28-1/tb88flynn.pdf % % De plus, il est bon de se referer a la documentation des packages % comme geometry, titlesec, fancyheader et combine. % La classe camus ne supporte que LaTeX2e \NeedsTeXFormat{LaTeX2e} \ProvidesClass{camus}[2012/09/24 Classe de la revue CaMUS v2.0] % Options manuelles \newcommand\@volno{7} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% % Packages utiles pour les options %% % Traduction et gestion des traits d'union \RequirePackage[francais,english]{babel} % Options de langue de compilation pour l'article \newif \iffr % Flag qui donne la langue : true=francais, % false=anglais. false par defaut. \DeclareOption{francais}{\AtBeginDocument{\protect\selectlanguage{francais}} \frtrue} \DeclareOption{english}{\AtBeginDocument{\protect\selectlanguage{english}}} % En mode impression, utiliser \crop pour centrer, rapetisser et % mettre les delimiteurs d'impression. Sinon, garder pleine page. \newif \if@printmode \DeclareOption{print}{\AtBeginDocument{\crop[cam]}% \@printmodetrue \message{Mode impression}} % Unused options \DeclareOption*{\PackageWarning{camus}{Unknown option `\CurrentOption'}} \ProcessOptions\relax % Classe de base \LoadClass[11pt,twoside]{article} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Packages requis pour la classe CaMUS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{etex} % Empeche certaines erreurs louches % qui parle d'un manque d'espace. \RequirePackage[utf8]{inputenc} % Oblige les auteurs a encoder leur texte en utf8 \RequirePackage[T1]{fontenc} % Imprime les accents correctement \RequirePackage{lmodern} %% % Mise en page %% % Imprimer les pages format CaMUS sur du papier lettre, % centrer. Le package geometry definit la page, le package crop % s'occupe d'ajouter les lignes de decoupe. \RequirePackage[papersize={7in,10in}, left=0.875in,textwidth=5.25in, top=0.8125in,textheight=8.4375in, foot=0.375in,headsep=.1in]{geometry} \RequirePackage[pdflatex,letter,center]{crop} % Fait quelques modifications aux titres de sections \RequirePackage{titlesec} \titleformat*{\section}{\Large\bfseries\centering} \titleformat*{\subsection}{\large\bfseries} \titlespacing*{\subsection}{0pt}{1.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} %% % En-tetes et pieds-de-page %% \RequirePackage{fancyhdr} \setlength{\headheight}{15pt} % Empeche fancyhds de crier... \pagestyle{fancy} % fancy est le style du document en general, sauf la premiere page. % Modifie le style 'fancy' \fancyhf{} % Clear all header and footer fields \fancyhead[LE,RO]{\thepage} \fancyhead[RE]{\@camusshorttitle} \fancyhead[LO]{\textit{\@camusshortauthor}} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} % En-tete et pied de page de la premiere page \fancypagestyle{firstpage}{ \fancyhf{} \fancyhead[L]{CaMUS \textbf{\@volno}, \thepage~--~\pageref{\@camuslp}} \fancyfoot[R]{\copyright Universit\'e de Sherbrooke} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt}} %% % Choix de langue %% % Utilisation \langchoice{mot francais}{mot anglais} \newcommand \langchoice[2]{\iffr #1 \else #2 \fi} %%%%%%%%%%%%%%%%%%%%%% %% Bibliographie %%%%%%%%%%%%%%%%%%%%%% %NOTE : Voir ce qui est fait. %\RequirePackage{cite} % Meilleures citations %% % Autres modules interessant %% % Utilise des nombres francais/anglais (virgules vs point) \langchoice{\RequirePackage{icomma}}{} \RequirePackage{graphicx} \graphicspath{{img/}} \if@printmode \else %\RequirePackage{hyperref} \fi \RequirePackage{amsmath} \RequirePackage{url} \RequirePackage{amsfonts} \RequirePackage{amsthm} \RequirePackage{amssymb} \RequirePackage[french,onelanguage,vlined,linesnumbered,ruled,boxed]{algorithm2e} \SetAlCapSkip{2ex} \RequirePackage{mathrsfs} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Environement theoreme %%%%%%%%%%%%%%%%%%%%%%%%%%%% \theoremstyle{plain} \newtheorem{thm}{\langchoice{Th\'eor\`eme}{Theorem}}[section] \newtheorem{lem}[thm]{\langchoice{Lemme}{Lemma}} \newtheorem{crl}[thm]{\langchoice{Corollaire}{Corollary}} \newtheorem{prp}[thm]{Proposition} \newtheorem{cjt}[thm]{Conjecture} \newtheorem{crt}[thm]{\langchoice{Crit\`ere}{Criterion}} \newtheorem*{thm*}{\langchoice{Th\'eor\`eme}{Theorem}} \newtheorem*{lem*}{\langchoice{Lemme}{Lemma}} \newtheorem*{crl*}{\langchoice{Corollaire}{Corollary}} \newtheorem*{prp*}{Proposition} \newtheorem*{cjt*}{Conjecture} \newtheorem*{crt*}{\langchoice{Crit\`ere}{Criterion}} \theoremstyle{definition} \newtheorem{dfn}[thm]{\langchoice{D\'efinition}{Definition}} \newtheorem{cnd}[thm]{Condition} \newtheorem{pbm}[thm]{\langchoice{Probl\`eme}{Problem}} \newtheorem{ex}[thm]{\langchoice{Exemple}{Example}} \newtheorem{exc}[thm]{Exercice} \newtheorem*{dfn*}{\langchoice{D\'efinition}{Definition}} \newtheorem*{cnd*}{Condition} \newtheorem*{pbm*}{\langchoice{Probl\`eme}{Problem}} \newtheorem*{ex*}{\langchoice{Exemple}{Example}} \newtheorem*{exc*}{Exercice} \theoremstyle{remark} \newtheorem{rmk}[thm]{\langchoice{Remarque}{Remark}} \newtheorem{nte}[thm]{Note} \newtheorem{ntt}[thm]{Notation} \newtheorem{rmd}[thm]{\langchoice{Rappel}{Reminder}} \newtheorem*{rmk*}{\langchoice{Remarque}{Remark}} \newtheorem*{nte*}{Note} \newtheorem*{ntt*}{Notation} \newtheorem*{rmd*}{\langchoice{Rappel}{Reminder}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Macros de formatage %%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Definit l'en-tete de la page titre de chacun des articles \renewcommand{\maketitle}{ \thispagestyle{firstpage} \phantom{} \vspace{7ex} \begin{center} \textbf{\textsc{\LARGE \@camustitle}} \end{center} \begin{center} \textbf{\textsc{\large \@camusauthor}} \end{center} \begin{center} \scriptsize Reçu le \@datesoumise \space et accepté le \@dateaccepte \end{center} % Thanks footnote, taken from flynn, p.117 \begingroup \global\@topnum\z@ % Prevents figures from going at top of page. \@thanks \endgroup \setcounter{footnote}{0} \setcounter{section}{0} \setcounter{figure}{0} \setcounter{table}{0} \setcounter{algocf}{0} \setcounter{equation}{0} } % Abstract multilingue \renewenvironment{abstract}{% \begin{center} \begin{minipage}[c]{0.89\textwidth} \textsc{\langchoice{Résumé}{Abstract}} \small } { \end{minipage} \end{center} } %% % Titre %% % Variables contenant les informations sur l'article \newcommand \@camusauthor{None} % Les auteurs, afficher dans le titre \newcommand \@camusshortauthor{None} % Initiales du prenom et nom de % famille, pour les headers \newcommand \@camustitle{None} % Titre, sur la premiere page \newcommand \@camusshorttitle{None} % Titre court, pour les headers \newcommand \@datesoumise{AAAA-MM-JJ} \newcommand \@dateaccepte{AAAA-MM-JJ} \renewcommand{\date}[2]{ \renewcommand \@datesoumise{#1} \renewcommand \@dateaccepte{#2} } \renewcommand{\author}[2]{% \renewcommand \@camusauthor{#1}% \renewcommand \@camusshortauthor{#2}% } \renewcommand\title[2]{ \renewcommand \@camustitle{#1} \renewcommand \@title{#1} \renewcommand \@camusshorttitle{#2} } \renewcommand\thanks[1]{ \renewcommand\@thanks{ \begingroup \renewcommand\thefootnote{ \fnsymbol{footnote}} \footnote[0]{#1} \endgroup}} % A utiliser a la fin du document pour ecrire les infos sur l'auteur. % Utilisation : \authorInfos{Nom complet}{Departement}{Universite}{courriel} \newcommand \authorInfos[4]{ \vspace{2ex} \noindent \parbox{\linewidth}{ \small{\noindent \textsc{#1} \noindent \textsc{#2}, \textsc{#3} \noindent \textit{Courriel:} \texttt{#4}}}} \newcommand\bibliocamus[1]{ \langchoice{\bibliographystyle{alpha-fr}}{\bibliographystyle{alpha}} \bibliography{#1}} % Variable contenant l'etiquette de la derniere page courante \newcommand\@camuslp{camuslp} \newcommand\CamusImport[1]{ \cleardoublepage \renewcommand{\@camuslp}{#1} \include{#1} } \newcommand\SetLastPage{ \label{\@camuslp} }