%%% RNTI.cls document class for RNTI %%%%%%%

\newcommand\@RNTIversion{2008/05/21 v3.0a }
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{atelier_egc}[\@RNTIversion LaTeX document class for RNTI]
%^^J LaTeX document class for RNTI]
%\typeout{RNTI \@RNTIversion  (c) G.Ritschard}

%%% Required external packages and files:

%% Files available on CTAN, that are not automatically distributed with LaTeX2e:
%% - times.sty
%% - fancyhdr.sty       for handling page headers and footers
%% - natbib.sty         for handling authoryear citations

%% Standard files distributed with LaTeX2e:
%% - fontenc.sty
%% - ifthen.sty
%% - babel.sty
%  Ensure the language.dat file used by Babel is configured for
%  activating both French and English hyphenation. After modification,
%  rebuild your LaTeX fmt file by initexing it.

%%% For building reference list, use of the accompanying RNTI.bst file.


\RequirePackage[T1]{fontenc}
\RequirePackage{color} %%gr% v3
%\RequirePackage[latin1]{inputenc}
\RequirePackage{ifthen}


 \newboolean{@sametabname}\setboolean{@sametabname}{true}
 \newboolean{firstindent}\setboolean{firstindent}{true}
 \newboolean{@endbiblio}\setboolean{@endbiblio}{false}
 \newboolean{@english}
 \newboolean{@@french}
 \newboolean{@natbib}\setboolean{@natbib}{true}
 \newboolean{@babel@ok}\setboolean{@babel@ok}{true}
 \newboolean{@hyper@ref}\setboolean{@hyper@ref}{false}
 \newboolean{@page@num}\setboolean{@page@num}{false}
 \newboolean{@print@footer}\setboolean{@print@footer}{false}
 \newboolean{@old@fancyhdr}\setboolean{@old@fancyhdr}{false}
 \newboolean{@langdep@and}\setboolean{@langdep@and}{false}
 \newboolean{@show@rnti@layout}\setboolean{@show@rnti@layout}{false}
 \newboolean{@no@summary}\setboolean{@no@summary}{false}
 \newboolean{@no@resume}\setboolean{@no@resume}{false}
 \newboolean{@no@authorname}\setboolean{@no@authorname}{false}
 \newcommand\@@dash{\textendash}

\DeclareOption{french}{
  \setboolean{@english}{false}
}
\DeclareOption{english}{
  \setboolean{@english}{true}
}
\DeclareOption{nonatbib}{
  \setboolean{@natbib}{false}
}
\DeclareOption{nobabel}{
  \setboolean{@babel@ok}{false}
}
\DeclareOption{hyperref}{
  \setboolean{@hyper@ref}{true}
}
\DeclareOption{pagenum}{
  \setboolean{@page@num}{true}
  \setboolean{@print@footer}{true}
}
\DeclareOption{footer}{
  \setboolean{@print@footer}{true}
}
\DeclareOption{oldfancyhdr}{
  \setboolean{@old@fancyhdr}{true}
}
\DeclareOption{langdepand}{
  \setboolean{@langdep@and}{true}
}
\DeclareOption{showlayout}{
  \setboolean{@show@rnti@layout}{true}
}
\DeclareOption{altdash}{
   \renewcommand\@@dash{$-$}
}
\DeclareOption{noresume}{
   \setboolean{@no@resume}{true}
}
\DeclareOption{nosummary}{
   \setboolean{@no@summary}{true}
   \setboolean{@no@resume}{true}
}
\DeclareOption{submission}{
   \setboolean{@no@authorname}{true}
}


 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ExecuteOptions{french}
 \ProcessOptions
 \LoadClass[10pt,twoside,a4paper]{article}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%% The summary is automatically outputed at the \end{dcoument}
\AtEndDocument{%
  \@@summary\@after@summary\@@show@rnti@layout%
} %% should be placed before loading hyperref


\ifthenelse{\boolean{@hyper@ref}}
      {\RequirePackage{hyperref}}
      {}
\newcommand\@@show@rnti@layout{}
\ifthenelse{\boolean{@show@rnti@layout}}
      {\RequirePackage{layout}%
       \renewcommand\@@show@rnti@layout{\cleardoublepage\layout}}
      {}


%\RequirePackage[latin1]{inputenc}
%%\RequirePackage[french]{babel}   %% removed by G
%%\RequirePackage[dvips]{epsfig}   %% removed by G, does not work with pdflatex

%%\usepackage{RNTIBiblio}

%%%%%%%%%%%%%%%%%%%%%%%%%%%% Page Format %%%%%%%%%%%%%%%

\RequirePackage{times}

\setlength{\textwidth}{17cm}
\setlength{\textheight}{24cm}

%%% Margins for centering the text on the page
% A4 paper width is 21cm, hence total margin is 21cm - 15.92cm = 5.08cm
% leftmargin is 5.08cm/2 = 2.54cm, subtracting the 1in = 2.54cm offset,
% we get 0cm for \oddsidemargin
\setlength{\oddsidemargin}{0 cm}
\setlength{\evensidemargin}{0 cm}
% For Letter paper, width is 11in = 21.59cm, hence
% the \oddsidemargin should be set to 1.36 + .295 = 1.655cm

% Vertically: (1pt = 0.351mm)
% A4 paper height is 29.7cm = 845pt,
% total printed page height is 22.26cm (= 634pt) + \headsep + \headheight + \footskip
% with \headsep = 25pt, \headheight = 12pt, and \footskip = 30pt
% hence total margin is 845pt (= 29.7cm) - 634pt - 67pt = 144pt
% Topmargin is 144pt/2 = 72pt = 2.54cm, subtracting the 1in = 2.54cm offset,
% we get 0cm for \topmargin
\setlength{\topmargin}{-1 cm}

% Increase these values to make it harder to leave
% a single line at the end (club) or top (widow) of the page.
 \clubpenalty=6000
 \widowpenalty=6000


%%%%%%%%%%%% Redefining some commands and environments

%resume
\renewenvironment{abstract}{%
      \list{}{\leftmargin=1cm
      \labelwidth=\z@
      \listparindent=\z@
      \itemindent\listparindent
      \rightmargin\leftmargin}\item[\hskip\labelsep
                                    \bfseries \nom@resume.]}
    {\endlist}


 %\renewcommand\subsubsection{\paragraph}


%%%%% French guillemets %%%%%%%%
   \def\guilo{\guillemotleft\kern .25ex\ignorespaces}
   \def\guilf{\kern .25ex\guillemotright}


%%%% language switching %%%


% Commands \Fr and \Eng for switching to French and English
% They use the Babel's \selectlanguage
% and redefine language specific actions
% of RNTI's special commands

 \newcommand{\andname}{et}        %% used in bib produced by RNTI.bst
 \newcommand{\andnamec}{et}
 \providecommand\nom@resume{R�sum�}
 \providecommand\nom@summary{Summary}

 \newcommand\Fr{\selectlanguage{french}\lccode`\'=`\'%
    \ifthenelse{\boolean{@endbiblio}}
        {\renewcommand{\bibname}{Bibliographie}}%
        {\renewcommand{\bibname}{R�f�rences}}%
    \renewcommand{\nom@resume}{R�sum�}%
    \renewcommand{\nom@summary}{R�sum�}%
    %\renewcommand{\nom@cles}{Mots-cl�s~:}%
    %\renewcommand{\nom@classif}{Classification~:}%
    \ifthenelse{\boolean{@langdep@and}}
        {\renewcommand\andname{et}}%
        {}%
    \ifthenelse{\boolean{@sametabname}}%
        {\renewcommand{\figurename}{\commonfigurename}%
         \renewcommand{\tablename}{\commontablename}%
        }{%\renewcommand{\figurename}{Figure}%
         %\renewcommand{\tabname}{Tableau}%
        }
    % indentation after section title
    \ifthenelse{\boolean{firstindent}}
        {\let\@afterindentfalse\@afterindenttrue}
        {}%
    \setboolean{@@french}{true}
    }
 \newcommand\Eng{\selectlanguage{english}\lccode`\'=0%
    \ifthenelse{\boolean{@endbiblio}}
        {\renewcommand{\bibname}{Bibliography}}%
        {\renewcommand{\bibname}{References}}%
    \renewcommand{\nom@resume}{Abstract}%
    \renewcommand{\nom@summary}{Summary}%
    %\renewcommand{\nom@cles}{Keywords:}%
    %\renewcommand{\nom@classif}{Classification:}%
    \ifthenelse{\boolean{@langdep@and}}
        {\renewcommand\andname{and}}%
        {}%
    \ifthenelse{\boolean{@sametabname}}%
        {\renewcommand{\figurename}{\commonfigurename}%
         \renewcommand{\tablename}{\commontablename}%
        }{%\renewcommand{\figurename}{Figure}%
         %\renewcommand{\tabname}{Table}%
        }
    % indentation after section title
    \ifthenelse{\boolean{firstindent}}
        {\let\@afterindentfalse\@afterindenttrue}
        {}%
    \setboolean{@@french}{false}
    }

%%%%% Bibliography stuff %%%%%%%%%%%%%

%\Requirepackage{RNTIBiblio} % Now obsolete
\ifthenelse{\boolean{@natbib}}
    {\RequirePackage{natbib}} % default for managing author(year) citations
    {}
%
\ifthenelse{\boolean{@babel@ok}}
    {\RequirePackage[frenchb,english]{babel}} %% Babel should be loaded AFTER natbib.
    {}
%
\bibsep=.7ex

%GR% Redefining caption format

 \newcommand*{\commonfigurename}{\scshape{Fig.}}
 \newcommand*{\commontablename}{\scshape{Tab.}}
 \newcommand*{\caphsep}{\normalfont\hskip .6ex\@@dash\hskip .3ex}

\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{{\normalsize {#1\caphsep} {\normalfont\itshape #2}}}%
  \ifdim \wd\@tempboxa >\hsize
    %\begin{spacing}{\capspacing}{
    %{\normalsize {\bfseries{#1\caphsep}}
    {\normalsize {#1\caphsep}  % suppressed bold 27/11/07gr
    {\normalfont\itshape #2}}
    %}\end{spacing}%GR% requires setspace.sty
    \par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}


%%%%% Handling headers and footers %%%%%%%%%%%

\RequirePackage{fancyhdr}
\pagestyle{fancy}

\ifthenelse{\boolean{@old@fancyhdr}}
    {\setlength{\headrulewidth}{0 pt}\setlength{\footrulewidth}{0  pt}}
    {\renewcommand{\headrulewidth}{0 pt}\renewcommand{\footrulewidth}{0 pt}}

%%%%%%%%%%%%%%%% Defining commands for title and author names. %%%%
\fancyhead{} \fancyfoot{}
\newcommand\@titre{Titre court \`a d\'efinir avec \texttt{$\backslash$titre\{Votre titre\}} dans le pr\'eambule}
\newcommand\@auteur{}
\newcommand\@affiliation{}
\fancyhead[LE]{Titre court \`a d\'efinir avec \texttt{$\backslash$titrecourt\{...\}}}
\newcommand*\titrecourt[1]{\fancyhead[LE]{#1}}
\fancyhead[RO]{Liste courte des auteurs \`a d\'efinir avec \texttt{$\backslash$nomcourt\{...\}}}
\newcommand*\nomcourt[1]{\fancyhead[RO]{%
        \ifthenelse{\boolean{@no@authorname}}{\color{white}#1}{#1}}} %%gr% v3.0
\newcommand*\@domaine{X}
\newcommand\@the@page@{~}
\newcommand\domaine[1]{\renewcommand\@domaine{#1}}
\ifthenelse{\boolean{@page@num}}%
        {\renewcommand\@the@page@{\thepage}}
        {}
\ifthenelse{\boolean{@print@footer}}
        {\fancyfoot[LE,RO]{RNTI - \@domaine{} - \@the@page@}}
        {}
\newcommand\titre[1]{\renewcommand\@titre{#1}}
\newcommand\auteur[1]{\renewcommand\@auteur{#1}}%
\newcommand\affiliation[1]{\renewcommand\@affiliation{#1}}
\newcommand*\affilsep{$^,$}
\newcommand*\affil[1]{%
   $^{\ifcase#1\or{*}\or{**}\or{***}\or{****}
               \or{\sharp}\or{\sharp\sharp}\or{\sharp\sharp\sharp}
               \or{\sharp\sharp\sharp\sharp}\fi}$}
\newcommand\http[1]{%
    \ifthenelse{\boolean{@@french}}%
    {\noextrasfrench{#1}\extrasfrench}%
    {#1}%
    }

\newcommand\gen@titre{
    \vspace*{4mm}\noindent%
    \parbox{\linewidth}{\center\Large%
       \textbf{\@titre}}%
    \\[1ex]
    \begin{center}
    \ifthenelse{\boolean{@no@authorname}}{\color{white}}{}%
        \@auteur%
        \\[3ex]
        \begin{tabular}{c}
        \@affiliation
        \end{tabular}
    \vspace{1ex}
    \end{center}
}

\newcommand\@resume{Donner le texte qui doit figurer ici
    avec la commande
    \texttt{$\backslash$resume\{Votre r\'esume ...\}}
    dans le pr\'eambule
    (avant le \texttt{$\backslash$begin\{document\}}).
    }
\newcommand\resume[1]{\renewcommand\@resume{#1}}
\newcommand\@@resume{%
\ifthenelse{\boolean{@no@resume}}{\medskip}{%
 \begin{abstract}\@resume\end{abstract}
 }
}

\newcommand\@summary{Donner la traduction anglaise du r\'esum\'e
    dans le pr\'eambule avec la commande
    \texttt{$\backslash$summary\{Your abstract ...\}}}
\newcommand\summary[1]{\renewcommand\@summary{#1}}

\newcommand\@@summary{%
  \ifthenelse{\boolean{@no@summary}}{}{%
    \ifthenelse{\boolean{@english}}{\Fr}{\Eng}
    \section*{\nom@summary}\@summary{}
    \ifthenelse{\boolean{@english}}{\Eng}{\Fr}%
    }
}

\newcommand\@after@summary{}
\newcommand\aftersummary[1]{\renewcommand\@after@summary{#1}}

%%%% The title stuff is automatically outputed at the \begin{dcoument}
\AtBeginDocument{%
  \thispagestyle{empty}
  \ifthenelse{\boolean{@english}}
  {\Eng\renewcommand\andnamec{and}\renewcommand\andname{and}}{\Fr}%
  \gen@titre%
  \@@resume%
}
