tuteurs.ens.fr/logiciels/latex/cv.cls

183 lines
5.8 KiB
OpenEdge ABL
Raw Normal View History

%% Copyright (c) 2003-2009 Fr????ic Meynadier
%% Original : Eric-Olivier Le Bigot
%% Modifs : Fr????ic Meynadier (Frederic.Meynadier@obspm.fr)
%% Modifs : Dominique Quatravaux (dom@idealx.com) - conversion en
%% classe de document.
%% 03/01/03
%% Modifs : application d'un patch de Jonas Kahn, 2007-12-19
%% Modifs : anonymisation de l'exemple en commentaire, 2009-02-25
%% Permission is hereby granted, free of charge, to any person obtaining a
%% copy of this software and associated documentation files (the
%% "Software"), to deal in the Software without restriction, including
%% without limitation the rights to use, copy, modify, merge, publish,
%% distribute, sublicense, and/or sell copies of the Software, and to
%% permit persons to whom the Software is furnished to do so, subject to
%% the following conditions:
%% The above copyright notice and this permission notice shall be included in
%% all copies or substantial portions of the Software.
%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
%% OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
%% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
%% IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
%% CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
%% TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
%% SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{cv}
[2002/01/03 v0.1 Curriculum Vitae package]
\LoadClass[10pt]{article}
\RequirePackage{ifthen}
\RequirePackage{array}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Mise en page par d??aut %
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setlength{\textwidth}{160mm} %% Largeur de la zone texte
\setlength{\oddsidemargin}{0mm} %% Texte centr??sur la page
\pagestyle{empty} % pour ne pas indiquer de num??o de page...
% On d??init les pieds de page comme des \stretch de force 1,
% soit 4 plus fort que celui qui est en bas du chapeau
% (Cf. ci-dessous). De cette fa??n, un CV qui ne remplit pas toute la
% page a un bel espacement.
\makeatletter
\def\@textbottom{\vspace*{\stretch{1}}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Param??res r??lables %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% L'utilisateur peut les red??inir ceux-ci ?\renewcommand? si besoin :
\newcommand{\espaceInterRubrique}{\medskip\vspace{\stretch{0.1}}}
% L'utilisateur peut les red??inir ceux-ci ?\setlength? si besoin :
\newlength{\rubriquetableauparindent} % indentation au d??ut d'une
% ligne de droite dans un ?rubriquetableau?. Cette longueur peut
% ??re n??ative, auquel cas l'alignement dans le tableau se fait
% compte tenu du retrait de la premi??e ligne : celle-ci ne ?bavera?
% pas sur l'espace r??erv??pour la colonne de gauche, au lieu de cela,
% l'ensemble de la colonne de droite est d??al??de l'espace correspondant.
\setlength{\rubriquetableauparindent}{-16pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Macros pratiques %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\er{$^{\hbox{er}}$}
\def\ere{$^{\hbox{??e}}$}
\def\eme{$^{\hbox{??e}}$}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% L'environnement "rubrique" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Usage : \begin{rubrique}[Indentation]{Titre} [...] \end{rubrique}
% On met le texte qu'on veut ??l'int??ieur.
\newenvironment{rubrique}[1] % "rubrique" prend un seul argument, le titre
{\espaceInterRubrique\relax%
\noindent\textbf{\large #1}\par%
\noindent\rule[0.5ex]{\textwidth}{0.1mm}\par}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% L'environnement "rubriquetableau" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Il sert ??rendre les tableaux, avec typiquement des dates ??gauche
% et des activit?? ??droite. Il s'utilise comme ?rubrique?
% ci-dessus, sauf qu'il admet un argument optionnel qui est la largeur
% de la colonne de gauche, et que l'int??ieur doit ??re un tableau
% LaTeX avec les ?&? et les ?\\? qui vont bien.
% Par exemple :
%
% \begin{rubriquetableau}[3.5cm]{pipotage}
% 1999--2000 & ligne 1\\
% & ligne 2\\
% 1998--1999 & ligne 1\\
% [etc...]
% \end{rubriquetableau}
%
% Lorsqu'on omet le param??re entre crochets, cela a pour effet
% de donner la dimension \linewidth ??la premi??e colonne (mais la
% structure reste celle d'un tableau ??deux colonnes, donc ne pas oublier
% d'??rire '\\' pour les retours ??la ligne).
\makeatletter
\newlength{\@cvlenB}\newlength{\@cvlenC}
\newenvironment{rubriquetableau}[2][\linewidth]%% "rubriquetableau"
% % prend deux arguments
{\bgroup\rubrique{#2}% % le second argument : titre
\setlength{\@cvlenB}{#1}% % Le premier argument :indentation
\setlength{\@cvlenC}{\linewidth}% % Calculs...
\ifthenelse{\lengthtest{\rubriquetableauparindent<0pt}}
{\addtolength{\@cvlenC}{\rubriquetableauparindent}}
{}%
\addtolength{\@cvlenC}{-\@cvlenB}%
\addtolength{\@cvlenC}{-41pt}%
\begin{tabular}[t]{p{\@cvlenB}!{%
\ifthenelse{\lengthtest{\rubriquetableauparindent<0pt}}
{\hspace*{-\rubriquetableauparindent}}
{}%
}>{\setlength{\parindent}{\rubriquetableauparindent}}p{\@cvlenC}}}
{\end{tabular}\egroup}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Le chapeau du CV %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Usage:
% \begin{chapeau}
% \begin{adresse}
% Isaac NEWTON\\%
% 9.81, rue des Pommiers\\%
% Trinity College, Londres\\%
% \ligne\\%
% T??. : 06 67 25 90 00\\%
% E-mail : \texttt{inewton@apple.com}
% \end{adresse}
% \begin{etatcivil}
% N??le 25/12/1642\\
% Nationalit??Anglaise
% \end{etatcivil}
% \end{chapeau}
\newenvironment{adresse}{%
\begin{minipage}{7cm}
\begin{center}
}
{\end{center}\end{minipage}\hfill}
\newenvironment{etatcivil}{%
\begin{minipage}{5cm}
\begin{center}
}
{\end{center}\end{minipage}}
\newenvironment{chapeau}{%
\def\ligne{\rule[2pt]{24pt}{1pt}}%
\noindent\begin{minipage}{\linewidth}\hspace{-2cm}%
}
{\end{minipage}\vspace{\stretch{0.25}}}