% artflux.cls         Copyright Sup\'elec - Service Informatique, 1997
%
% Classe de documents pour les articles de Flux
% Fr\'ed\'eric Boulanger, Sup\'elec - Service Informatique
% Frederic.Boulanger@supelec.fr
%         1997/10/14
%
% artflux se comporte comme article, mais en deux colonnes sur papier A4
% Une nouvelle commande, \authorpict, permet d'associer une image \`a 
% un auteur. Une autre commande, \fluxnum, permet de sp\'ecifier le 
% numro du flux dans lequel l'article va para\^{\i}tre.
%
% Exemple :
%
%  \documentclass{artflux}
%  \title{Des Gnats et des Gnus}
%  \author{Guy-Denis Schlin\and R.O. D'Map} % Commande \author habituelle 
%                                           % sans image
%  \abstract{Nous pr\'esentons une nouvelle m\'ethode pour 
%    distinguer les Gnus des Gnats...}
%
%  \begin{document}
%  \sloppy % Souvent n\'ecessaire en deux colonnes
%  \maketitle
%
%  \section*{Introduction}
%   bla-bla bla ...
%
%  \end{document}
%
% La commande \author peut \^etre remplac\'ee par la commande
% \authorpict si l'on souhaite afficher une photo des auteurs :
%
%  \authorpict{Guy-Denis Schlin}{gds.eps} % Premier auteur
%  \authorpict{R.O. D'Map}{rod.eps} % Deuxime auteur
%
% Les images doivent faire \`a peu pr\s 3.5cm x 4.5cm
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{artflux}[1997/04/22 v1.0
 Sup\'elec Flux document class]
% Un article Flux est fondamentalement un article en twocolumn, twoside et A4
\LoadClass[a4paper,twocolumn,twoside]{article}
\RequirePackage{calc} % Pour les calculs de longueurs
\RequirePackage{graphics} % Pour les photos des auteurs
% R\'eglage des marges pour un article Flux
\setlength{\topmargin}{-0.7cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\textheight}{26.2cm}
\setlength{\oddsidemargin}{2.3cm}
\setlength{\evensidemargin}{-1.5cm}
\setlength{\textwidth}{15cm}
\setlength{\columnsep}{0.5cm}
\setlength{\parindent}{0cm}

% R\'eglage du num\'ero de Flux
\gdef\flux@num{XXX}	% Valeur par dfaut du num\'ero
\newcommand{\fluxnum}[1]{\gdef\flux@num{#1}}
% Le r\'esum\'e est enregistr\'e pour \^etre mis sur une colonne
\renewcommand{\abstract}[1]{\gdef\@abstract{#1}}

% Une bo\^{\i}te pour enregistrer le nom et la photo des auteurs
\newsavebox{\flux@authorbox}
% Elle est initialement vide, \authorpict la remplira
\savebox{\flux@authorbox}{\null}
% D\'eclaration d'un auteur avec sa photo
\newcommand{\authorpict}[2]{
	\savebox{\flux@authorbox}{%
		\parbox[t]{3.5cm}{%
			\makebox[3.5cm]{\hss\usebox{\flux@authorbox}}\par
			\makebox[3.5cm]{\hss\includegraphics{#2}}\par
			\hfill{\small #1}\par\vspace{0.5cm}%
		}%
	}
	\gdef\@author{\usebox{\flux@authorbox}}
}

% Pour utiliser \author (sans photo)...
\renewcommand{\author}[1]{
	\gdef\@author{
		\parbox[t]{3.5cm}{
			\hfill #1
		}
	}
}
% et nous red\'efinissons \and pour aller avec \author
\renewcommand{\and}{
	\par\vspace{0.5cm}\hfill
}

% \maketitle place le titre en gros carcatres gras, puis la 
% bo\^{\i}te des auteurs dans la marge gauche \`a c\^ot\'e du 
% r\'esum\'e, et place enfin le r\'esum\'e sur une colonne en italique.
% On laisse ensuite 1cm apr\`es le r\'esum\'e.
\renewcommand{\maketitle}{
	\twocolumn[
	\hspace*{-4cm}{\Huge \textbf{\@title}} \par
	\vspace{3.4cm}
	\hspace*{-4cm}\smash{\raisebox{-\height}{\@author}}\par
	{\textit{\@abstract}}\par
	\vspace{1cm}
	]
}

% Il nous faut \Numero (de french.sty) pour "FLUX NĦ XXX"
\providecommand{\Numero}{N$^{\mathrm o}$\kern.2em\ignorespaces}

% Longueurs permettant de placer le pied de page \`a 0.8cm du 
% bord de la page.
\newlength{\flux@oddfoot@marg}
\setlength{\flux@oddfoot@marg}{-1in - \oddsidemargin + .8cm}
\newlength{\flux@evenfoot@marg}
\setlength{\flux@evenfoot@marg}{-1in - \evensidemargin + .8cm}
% Pieds de page pairs et impairs
\renewcommand{\@oddfoot}{\reset@font\rmfamily\small
	\hspace*{\flux@oddfoot@marg}FLUX \Numero\flux@num\hfil\thepage}
\renewcommand{\@evenfoot}{\reset@font\rmfamily\small
	\hspace*{\flux@evenfoot@marg}FLUX \Numero\flux@num\hfil\thepage}

% Red\'efinition des commandes de section pour obtenir la mise 
% en page de Flux
\renewcommand{\section}{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\reset@font\LARGE\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\reset@font\Large\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\reset@font\Large\bfseries}}
\renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
                                    {3.25ex \@plus1ex \@minus.2ex}%
                                    {-1em}%
                                    {\reset@font\Large\bfseries}}
\renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{\parindent}%
                                       {3.25ex \@plus1ex \@minus .2ex}%
                                       {-1em}%
                                      {\reset@font\normalsize\bfseries}}
\endinput
%
%% Fin de artflux.cls
