commit d2fb00b9874bddab081681c267f27e0c8c99301f Author: Pierre-Olivier Mercier Date: Mon Feb 27 20:31:17 2017 +0100 Initial commit diff --git a/competences.tex b/competences.tex new file mode 100644 index 0000000..d79df52 --- /dev/null +++ b/competences.tex @@ -0,0 +1,29 @@ +\begin{rubric}{Compétences techniques} + +\entry*[Système d'exploitation] + BSD, \textbf{Linux, Windows} + +\entry*[Programmation] + C, \textbf{C\#}, Java, \textbf{OCaml}, VBA + +\entry*[Web] + \textbf{CSS, xHTML}, JavaScript + +\entry*[Script] + \textbf{PHP}, python, shell + +\entry*[Typographie] + \textbf{\LaTeX} + +\entry*[Base de données] + \textbf{MySQL}, PostgreSQL, \textbf{SQLite} + +\entry*[Versionnement] + GIT, \textbf{Mercurial, Subversion} + +\entry*[Mobile] + HP/Palm WebOS + +\entry*[Framework et toolkit] + \textbf{GTK+}, Mootools, \textbf{.NET}, OpenGL, Prototype, SDL, \textbf{Smarty}, \textbf{XNA} +\end{rubric} \ No newline at end of file diff --git a/curve.dtx b/curve.dtx new file mode 100644 index 0000000..f481fd5 --- /dev/null +++ b/curve.dtx @@ -0,0 +1,1547 @@ +% \iffalse -*- mode: LaTeX -*- +% +% curve.dtx --- Doc file for the CurVe package (code and documentation) +% +% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Didier Verna. +% Copyright (C) 2008 Didier Verna +% +% Author: Didier Verna +% Maintainer: Didier Verna +% Created: Thu Dec 10 16:04:01 1998 +% Last Revision: Mon Feb 25 17:55:12 2008 +% +% This file is part of CurVe. +% +% CurVe may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.1 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.1 or later is part of all distributions of LaTeX +% version 1999/06/01 or later. +% +% CurVe consists of the files listed in the file `README'. +% +% +% Commentary: +% +% Contents management by FCM version 0.1. +% +% +% Code: +% +%<*driver> +\documentclass[a4paper]{ltxdoc} +\newcommand{\curve}{% + \mbox{\fontfamily{ptm}\fontseries{b}\fontshape{it}\selectfont% + C% + \hspace{-.3ex}\protect\raisebox{-.3ex}{\textmd{u}}% + \hspace{-.1ex}\textmd{r}% + \hspace{-.2ex}V% + \hspace{-.6ex}\protect\raisebox{-.3ex}{\textmd{e}}}% + } +% \OnlyDescription +% \CodelineIndex +% \RecordChanges +\begin{document} +\DocInput{curve.dtx} +\end{document} +% +% +% \fi +% +% \catcode`\¡=14 +% \CheckSum{1202} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +% +% \newcommand\version{1.15} +% \newcommand\releasedate{2008/02/25} +% \newcommand\packagecopyright{Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Didier Verna} +% \newcommand\auctex{AUC-\TeX} +% \newcommand\cv{\textsc{CV}} +% \MakeShortVerb{\|} +% \date{\today} +% \title{\curve{} -- a \LaTeXe{} class package for making \textbf{Cur}ricula +% \textbf{V}ita\textbf{e}.\thanks{This document describes \curve{} \version, +% release date \releasedate.}} +% \author{Didier Verna\\ +% \texttt{mailto:didier@lrde.epita.fr}\\ +% \texttt{http://www.lrde.epita.fr/\~{}didier}} +% \maketitle +% +% +% \begin{abstract} +% \curve{} provides a \LaTeXe{} class that hopefully will make your life +% easier when you want to write your \cv. It provides you with a set of +% commands to create rubrics, entries in these rubrics etc. \curve{} will +% then properly format your \cv{} for you (possibly splitting it onto +% multiple pages), which is usually the most painful part of \cv{} writing. +% Another nice feature of \curve{} is its ability to manage different \cv{} +% ``flavors'' simultaneously. It is in fact often the case that you want to +% maintain slightly divergent versions of your \cv{} at the same time, in +% order to emphasize on different aspects of your background.\par +% The \curve{} package is \packagecopyright{}, and distributed under the +% terms of the LPPL license. +% \end{abstract} +% +% \section{Getting \curve} +% \curve{} can be obtained from any \textsc{ctan} archive, in the +% \texttt{macros/latex/contrib} subdirectory. You can also download it +% directly from my website (online documentation available there), at the +% \textsc{url} above. Please follow the links on the left menu. +% +% If you are a Debian unstable user (unstable referring to Debian, not you), +% unofficial source and i386 packages are available (thanks to Geoffroy +% Fouquier for providing this facility). The package name is \texttt{curve}. +% Here's the \texttt{source.list} entry to use: +% \begin{verbatim} +% deb http://www.lrde.epita.fr/debian/ unstable/i386/ +% deb-src http://www.lrde.epita.fr/debian/ sid/source/ +% \end{verbatim} +% +% For installation instructions, please read the \texttt{README} file included +% in the distribution. +% +% \section{Frequently Asked Questions} +% If this is your first time with \curve, you might want to skip this section. +% Otherwise, please read on, especially before asking me by email\ldots +% +% \begin{enumerate} +% \item +% \textbf{Is there a way to align entries across several (all) rubrics?}\\ +% Not automatically because rubrics are typeset as individual tables. There +% are many ways to manually ``trick'' too narrow keys in order to enlarge +% them however. As of version 1.11, \curve{} provides a new convenience +% macro to do something similar: see section \ref{sec:noentry}. +% \item +% \textbf{How can I change the interline spacing?}\\ +% Internally, \curve{} uses \LaTeX{} tabular-based environments. As such, +% you can play with |\arraystretch| to modify the space between rows. +% \item +% \textbf{When a page break occurs in the middle of a rubric, the same +% alignment is kept on both pages, which might result in suboptimal +% layout.}\\ +% This is a technical limitation of the automatic alignment computation +% process in longtables and I don't think there will be a solution anytime +% soon (page breaking is orthogonal to column width calculation). What you +% can do, once your CV is finalized, is manually split the concerned rubric +% into different ones, starting at the appropriate entries to avoid page +% breaking in the middle. +% \item +% \textbf{How can I make multi-line subrubrics?}\\ +% Here are two ideas: +% \begin{itemize} +% \item Put your text in several consecutive subrubrics (one per line). +% However, this might not give you the desired vertical spacing. +% \item Probably better, put your material in a parbox:\\ +% |\subrubric{\parbox{width}{first blah blah\\next blah blah}}|\\ +% This is a bit dirty because you have to figure out a suitable width for +% your parbox, but this will work. +% \end{itemize} +% \item +% \textbf{How can I make multi-line keys?}\\ +% The trick is to temporarily change the key cell type to a paragraph one +% (remember that we're in a tabular environment). +% \begin{enumerate} +% \item Recover the key formatting by doing something like this near +% the beginning of your document:\\ +% |\makeatletter\let\mykeyfont\@keyfont\makeatother| +% \item Use something like this where you need a multi-line key (you will +% have to adjust the paragraph width manually): +% \begin{verbatim} +% \entry*[\multicolumn{1}{@{}>{\mykeyfont}p{2cm}}{% +% long key\newline long key}] +% Entry text. Entry text. Entry ... +% \end{verbatim} +% \end{enumerate} +% \item +% \textbf{How to deal with long keys?}\\ +% The best thing to do is to make them multi-line manually. Please refer to +% the previous question. +% \item +% \textbf{Can I change the prefix locally?}\\ +% Yes and no. The |\prefix| command can only be used in the preamble or +% between rubrics. Otherwise, there is currently no way to change the prefix +% for a single entry. This limitation will disappear in a future release. +% \end{enumerate} +% +% \section{Overview} +% The \curve{} package provides you with a document class for writing +% curricula vitae. The primary purpose of this package is to offer a set of +% predefined commands to specify the contents of your \cv, while removing from +% you the burden of formatting it. This has two important consequence however: +% \curve{} will impose that you conform to its document structuring scheme, +% and will expect that you like the way it formats things :-). If you prefer +% another structure for your \cv{}, or if you don't like the formatting +% (although it is highly configurable), then \curve{} is probably not for +% you.\par +% Once you have installed \curve{}, you might want to start with processing +% the example file \texttt{cv.tex}. This will give you an idea of what a non +% customized \cv{} looks like with \curve. You can also throw an eye to my +% own \cv, which is written with \curve{} and has some more fancy hackery on +% top of it. It's in French, but only the appearance is important for +% you\ldots My \cv{} can be found at +% \texttt{http://www.lrde.epita.fr/\~{}didier/perso/cv.php}. +% +% \subsection{Document Layout} +% A \curve{} \cv{} begins with two optional headers (upper left and upper +% right) in which you usually put your name, address, email, whether you're +% married and so on. These headers will respectively be left and right aligned. +% As of version 1.4, \curve{} lets you insert a small identity photo in the +% headers, either on the left, on the right, or between them. After these +% headers come an optional title and/or subtitle, which can be centered on +% the page, or flushed either left or right. +% \subsubsection{Rubrics} +% The remaining of the document is composed of sections called ``rubrics'' in +% the \curve{} terminology. A rubric represents a major topic that you want +% to detail in your \cv. Typical rubrics are ``Education'', ``Professional +% Experience'' and the like. Rubrics have a title (centered by default) and +% appear under the form of properly aligned ``entries'' (see below). If a +% rubric has to be split across different pages, its title will be repeated +% automatically. +% \subsubsection{Entries} +% An entry is +% an item of information related to the rubric under which it appears. An +% entry has a ``contents'', and an optional ``key'' under which it is +% classified. For instance, under the ``Education'' rubric, you could state +% that you got a Ph.D. in computer science in the year 2000. In that case, the +% year would be the entry's key, and the ``Ph.D. in computer science'' part +% would be the entry's contents. \curve{} aligns both keys and contents +% together. Keys are optional in order for you to classify several entries +% together (without repeating the same key over and over again). +% \subsubsection{Subrubrics} +% Additionally, you might want to further split your rubrics into +% ``subrubrics''. For instance, in my own \cv, I have a ``Professional +% Experience'' rubric, with three subrubrics: ``Teaching'', ``Research'' and +% ``Development''. This can be accomplished with a special command. +% Subrubrics are displayed in alignment with the entries' contents by default, +% but are formatted differently so that they remain distinguishable. +% +% \subsection{Document Structure} +% \subsubsection{Source File Splitting} +% \curve{} is based on the \texttt{LTXtable} package by David Carlisle. I +% won't go into gory details, but this has an important implication: +% \textbf{each rubric must be in its own separate file}. In other words, your +% \cv's main source file is really a skeleton whose major task is to include +% the different rubrics from their respective source files.\par +% This is not much of a hassle, really, and it actually made my life easier +% when I implemented the ``flavor'' mechanism described below. +% \subsubsection{The ``flavor'' Mechanism} +% It is often desirable to maintain several slightly divergent versions of +% one's \cv{} at the same time. For instance, when I was looking for a job some +% time ago, I had a version of my \cv{} emphasizing on Artificial Intelligence, +% and another emphasizing on Distributed Virtual Reality. Only the title and +% some entries in the ``Professional Experience'' rubric were a bit +% different; the main skeleton basically remained the same.\par +% \curve{} provides an easy-to-use mechanism for maintaining different +% ``flavors'' of your \cv{} at the same time. You basically write different +% versions of (some of) your rubrics in different files, tell \curve{} which +% flavor you want to format (\curve{} can even ask you which one to use +% directly) and that's it. \curve{} will use the global skeleton, and whenever +% it finds a rubric file specialized for that particular flavor, it will use +% it. Otherwise, it will simply fall back to the default one (no particular +% flavor). +% +% +% \section{Using \curve{}} +% First of all, please note that the \texttt{ltxtable} and \texttt{calc} +% packages are required. If you're using the identity photo feature, the +% \texttt{graphicx} package is also needed. You don't have to load them +% explicitly though. As long as \LaTeXe{} can locate them, they will be used +% automatically. +% +% \subsection{Writing the Skeleton File} +% Say |\documentclass[|\meta{options}|]{curve}| at the beginning of your +% skeleton file in order to use \curve. The available options are described +% along the text, where appropriate. +% +% \subsubsection{Making Headers} +% \DescribeMacro{\leftheader}\DescribeMacro{\rightheader} +% The |\leftheader| and |\rightheader| macros take one mandatory argument +% which defines respectively the contents of the upper left and upper right +% headers. They can be used in the document's preamble only. The headers will +% respectively be flushed to the left and to the right. +% \par +% \DescribeMacro{\photo} +% If you want to insert a small identity photo into the header part, you can +% use the |\photo| macro (available since version 1.4). It takes a mandatory +% argument in which you pass the image file name, as you would to +% |\includegraphics|. This macro also takes an optional argument which lets +% you specify the horizontal position of the photo: the values can be +% \texttt{l} (the default), \texttt{c} or \texttt{r} meaning that the photo +% will appear on the left, center, or right. +% \par +% \DescribeMacro{\photoscale}\DescribeMacro{\photosep} +% \DescribeMacro{\headerscale} +% The headers' horizontal layout is further controled by three additional +% macros. The |\photoscale| macro specifies the amount of text width that the +% photo should occupy. This should be a number between 0 and 1. By default, +% 0.1 is used (meaning 10\% of |\textwidth|). The |\photosep| macro is a +% \LaTeX{} length that specifies the space to leave between the side of the +% photo and the next headers's text. This is used only when the photo is on +% the left or right. By default, |10pt| is used. Finally, |\headerscale| +% specifies the proportion of the \emph{remaining} space that the \emph{left} +% textual header should occupy. It works like |\photoscale| and amounts to 0.5 +% by default. +% \par +% Let me take an example to make this clearer. Suppose you have a |\photoscale| +% of 0.1 and a |\photosep| of \texttt{10pt}. The \emph{remaining} space, that +% is, the space occupied by the textual headers, amounts to 90\% of the text +% width, minus 10 points. If you then specify a |\headerscale| of 0.6, then +% the left header will take 60\% of that remaining space, and the right one the +% other 40\%. +% \par +% \DescribeMacro{\headerspace} +% |\headerspace| is the amount of extra vertical space to put after the +% headers. This is a \LaTeX{} length that defaults to \texttt{10pt}.\par +% \DescribeMacro{\makeheaders} +% If you have defined headers, make them appear by calling |\makeheaders| just +% after the beginning of your document. Note that calling this macro assumes +% that you have previously defined both headers (possibly empty, though). +% Otherwise, an error will be signaled. As of version 1.4, the |\makeheaders| +% command accepts an optional argument that controls the vertical alignment. +% When given, this argument must be either |t| (for top), |b| (for bottom) or +% |c| (for center; the default). +% +% \subsubsection{Making Titles} +% \DescribeMacro{\title}\DescribeMacro{\subtitle} +% The |\title| and |\subtitle| macros take one mandatory argument which +% define respectively your \cv's title and subtitle. They can be used in +% the document's preamble only.\par +% \DescribeMacro{\titlealignment} +% By default, titles are centered on the page. However, you can also have them +% aligned to the left or right side of the page. To specify your preferred +% title alignment, call |\titlealignment| with an argument of either +% \texttt{l}, \texttt{c} or \texttt{r}, the meaning of which should be +% obvious. You can also achieve the same effect by passing an optional +% argument to |\maketitle| (see below).\par +% \DescribeMacro{\titlespace} +% |\titlespace| is the amount of extra vertical space to put after the +% title(s). This is a \LaTeX{} length that defaults to \texttt{0pt}.\par +% \DescribeMacro{\titlefont}\DescribeMacro{\subtitlefont} +% The |\titlefont| and |\subtitlefont| macros take one mandatory argument +% which redefine the fonts to use for the title and the subtitle. They can be +% used in the document's preamble only. By default, |\Huge\bfseries| and +% |\Huge\itshape| are used respectively.\par +% \DescribeMacro{\maketitle} +% If you have defined a title (and possibly a subtitle), make it (them) appear +% by calling |\maketitle| after the beginning of your document, and just after +% |\makeheaders| if you happen use it. It is possible to omit the subtitle, +% but if you call |\maketitle| without having defined at least a title, an +% error will be signaled. |\maketitle| accepts an optional argument for +% specifying the title alignment scheme. This argument is the same as in +% |\titlealignment|, and takes precedence over it. +% +% \subsubsection{Choosing a Flavor} +% As you already know, each rubric must reside in its own separate file. For +% instance, if you have a ``Professional Experience'' rubric, you would write +% its contents into a file named \texttt{experience.tex}. The flavor mechanism +% works by assigning a pre-extension to rubric file names. For instance, +% suppose you want to make a special flavor of your \cv{} emphasizing on +% ``distributed virtual reality''. You would call this flavor ``dvr'', and +% write the modified ``Professional Experience'' rubric into a file named +% \texttt{experience.dvr.tex}.\par +% \DescribeMacro{\flavor} +% The |\flavor| macro takes one mandatory argument which specifies the flavor +% to use (in our example, \texttt{dvr}). Although this might be of little use, +% it is possible to change the flavor anywhere, even right in the middle of +% your \cv's skeleton.\par +% \DescribeEnv{ask} +% Instead of using the |\flavor| macro, you can make \curve{} ask you at +% run-time which flavor to use by passing the \texttt{ask} option to it. +% +% \subsubsection{Including Rubrics} +% Apart from making headers and titles, the body of your skeleton file will +% usually contain nothing but directives to include the different rubrics of +% your \cv.\par +% \DescribeMacro{\makerubric} +% To include a rubric in your document, use |\makerubric|. This macro takes +% one mandatory argument which specifies the rubric to include at that point. +% The argument actually corresponds to the rubric file name \textbf{without +% any extension}. Continuing our previous example, you would say +% |\makerubric{experience}|. First, \curve{} will try to find such a rubric +% file specific for the current flavor in use, (e.g. +% \texttt{experience.dvr.tex}). If that fails, it will fall back to a +% non-flavored file (here, \texttt{experience.tex}). This allows you to +% specialize only the required rubrics and use the default ones otherwise.\par +% \DescribeMacro{\rubricafterspace} +% As of version 1.12, \curve{} provides a new \LaTeX{} length, +% |\rubricafterspace| controlling the amount of extra vertical space to put +% after a rubric (hence, before the next one). The default is \texttt{0pt}. +% +% \subsection{Writing a Rubric File} +% \subsubsection{The \texttt{rubric} Environment} +% \DescribeEnv{rubric} +% The whole contents of a rubric file must be enclosed in a \texttt{rubric} +% environment. This environment takes one mandatory argument which specifies +% the rubric's title. When a rubric crosses several pages, its title is +% restated with a ``continuation'' text appended.\par +% \DescribeMacro{\rubricalignment} +% As of version 1.6, the rubric titles horizontal alignment can be changed +% thanks to the |\rubricalignment| macro. Possible values for its mandatory +% argument are |l|, |c| and |r| (meaning left, centered, or right relative to +% the whole text width), and |cl| and |cc| (meaning left or centered relative +% to the entries'contents). By default, rubric titles are centered (|c|).\par +% \DescribeMacro{\rubricfont} +% The |\rubricfont| macro takes one mandatory argument which redefines the +% font to use for rubric titles. By default, |\Large\bfseries| is used.\par +% \DescribeMacro{\rubricspace} +% |\rubricspace| is the amount of extra vertical space to put after the rubric +% title. This is a \LaTeX{} length that defaults to \texttt{10pt}. +% +% \subsubsection{Making Rubric Entries} +% \DescribeMacro{\entry} +% You create entries in your rubrics by calling the |\entry| macro. The first +% (optional) argument specifies the key, and the second (mandatory) one +% specifies the contents. Both keys and contents are aligned within each +% rubric.\par +% \DescribeMacro{\entry*} +% Actually, the |\entry| macro was somewhat ill-designed at the first place. +% The |rubric| environment pretty much behaves as an |itemize| one, hence the +% idea of using an |\item|-like syntax. As of version 1.2, \curve{} provides +% an |\entry*| macro which behaves like |\item| in lists: it takes the same +% first optional argument as the non starred version, but has no other +% argument. The entry's contents simply consists of the text following the +% macro call, up to the next |\entry|, |\entry*| or |\subrubric| (see +% below) call.\par +% \DescribeMacro{\keyalignment} +% As of version 1.7, entries'keys horizontal alignment can be changed thanks +% to the |\keyalignment| macro. Possible values for its mandatory argument are +% |l|, |c| and |r| (meaning left, centered, or right). By default, keys are +% left aligned (|l|).\par +% \DescribeMacro{\keyfont} +% The |\keyfont| macro takes one mandatory argument which redefines the font +% to use for the entries' keys. By default, the standard document font is +% used.\par +% \DescribeMacro{\prefix} +% Each entry's contents can be prefixed with a visual clue (a symbol for +% instance). This comes in handy to make a clear distinction between +% different entries sharing the same key (which is not repeated). The +% |\prefix| macro takes one mandatory argument which redefines the prefix to +% use. By default, |\textbullet| is used. Note that as of version 1.11, +% \curve{} forces the prefix to be empty in bibliographic entries (see section +% \ref{sec:biblio}).\par +% \DescribeEnv{skipsamekey} +% While maintaining your CV, you might end up reorganizing your entries and +% even get entries with the same key. Normally, \curve{} blindly prints the +% keys regardless of their values. If you don't want repetition, you would +% have to remove keys by hand which can be cumbersome. As of version 1.10, +% \curve{} can skip all but the first of a series of identical keys +% automatically, provided that you use the |skipsamekey| option. Note that as +% of version 1.11, \curve{} disables this mechanism in bibliography rubrics +% (see section \ref{sec:biblio}).\par +% +% \subsubsection{Making ``invisible'' entries\label{sec:noentry}} +% The most frequently asked question about \curve{} is probably whether it is +% possible to align entries across several rubrics. This is (currently) not +% possible automatically because rubrics are typeset as independant tables. +% However, a manual solution boils down to enlarging too narrow entries (keys, +% actually).\par +% \DescribeMacro{\noentry} +% As of version 1.11, \curve{} provides a convenience macro to ease +% this process: |\noentry|. This macro takes one mandatory argument; a key +% that will be used in the entries alignment calculation. However, this +% command will not produce any text.\par +% So if you want all your rubrics to share the same alignment, you typically +% spot the longest key in your CV, and issue a |\noentry{this long key}| in all +% other rubrics. +% +% \subsubsection{Making Subrubrics} +% \DescribeMacro{\subrubric} +% Within a single rubric, you can further separate entries into subrubrics. +% In order to do this, the |\subrubric| macro is provided. Its mandatory +% argument specifies the subrubric's title.\par +% \DescribeMacro{\subrubricalignment} +% As of version 1.6, the subrubrics horizontal alignment can be changed thanks +% to the |\subrubricalignment| macro. Possible values for its mandatory +% argument are |l|, |c| and |r| (meaning left, centered, or right relative to +% the whole text width), and |cl| and |cc| (meaning left or centered relative +% to the entries'contents). By default, subrubrics are left-aligned with the +% entries' contents (|cl|).\par +% \DescribeMacro{\subrubricfont} +% The |\subrubricfont| macro takes one mandatory argument which redefines the +% font to use for the subrubrics. By default, |\Large\itshape| is used.\par +% \DescribeMacro{\subrubricspace} +% \DescribeMacro{\subrubricbeforespace} +% |\subrubricspace| controls the amount of extra vertical space to put after +% subrubrics. This is a \LaTeX{} length that defaults to \texttt{5pt}. +% |\subrubricbeforespace| controls the amount of extra vertical space to put +% \textit{before} a subrubric when there are entries above. This is a \LaTeX{} +% length that defaults to \texttt{20pt}. +% +% \subsection{Bibliography\label{sec:biblio}} +% Most scientists include their own list of publications in their \cv, so +% \curve{} has support for different forms of bibliography. +% \subsubsection{Manual bibliography} +% The first thing you can do is create your own bibliography manually (I mean, +% just like an ordinary rubric), and although this may appear boring, I +% actually encourage people to do so for at least three reasons (only my +% opinion of course): +% \begin{itemize} +% \item A \cv{} should be strictly formatted and coherent in layout. +% Bibliography is no exception to this rule. In other words, it is prettier to +% have your publications formatted like the rest of your \cv. +% \item Automatic bibliography generation tools produce references, which is +% silly in a \cv{} because you don't actually reference your papers anywhere +% (or do you?). So better to sort them another way, like, by year of +% publication as I do in my own \cv. +% \item Manually adding, like, what? Half a dozen papers a year in your +% \cv{} is not that much of a burden after all. +% \end{itemize} +% \subsubsection{The \texttt{bibliography} environment} +% Some people however have expressed the wish of having standard bibliography +% support in \curve. Version 1.2 provides that. +% \DescribeEnv{thebibliography} +% \DescribeMacro{\bibitem} +% The standard |thebibliography| environment is now supported along with its +% |\bibitem| companion. The behavior is actually that of a |rubric| +% environment with its |\entry*| companion (with an empty prefix however). +% This fact has two implications: firstly, the argument to the environment is +% unused in \curve{} (but remains for compatibility with the rest of \LaTeX) +% because \curve{} itself formats the keys and contents properly aligned. +% Secondly, the bibliographic environment \textbf{must} reside in its own +% file, as any other rubric. Don't forget that if you happen to write the +% environment manually.\par +% \DescribeEnv{revbib} +% As of version 1.14, it is possible to count bibliographic items in a reverse +% order, which comes in handy when you display your publications from the most +% recent to the oldest one. The \texttt{revbib} option triggers this behavior. +% Note that this also works when you use \BibTeX{} (see below). +% \subsubsection{\BibTeX} +% \DescribeMacro{\nocite} +% \DescribeMacro{\bibliographystyle} +% \DescribeMacro{\bibliography} +% If you want to use \BibTeX, that's also possible of course. Do it as you +% would do in a random paper. You will probably issue a |\nocite{*}| command +% followed by a call to |\bibliography|. In \curve, this uses the |bbl| file +% as a rubric one.\par +% \subsubsection{Compatibility concerns} +% As of version 1.9, \curve{} is compatible with the |bibentry| package. Note +% however that there is an incompatibility between |bibentry| and |hyperref|, +% and a workaround described in the |hyperref| README file. +% +% As of version 1.12, \curve{} is compatible with the |multibbl| package. +% +% \subsection{Standard Class Features} +% +% \subsubsection{Page Size and layout} +% \DescribeEnv{a4paper} +% \DescribeEnv{a5paper} +% \DescribeEnv{b4paper} +% \DescribeEnv{letterpaper} +% \DescribeEnv{legalpaper} +% \DescribeEnv{executivepaper} +% \DescribeEnv{landscape} +% The \texttt{a4}, \texttt{a5}, \texttt{b4}, \texttt{letter}, \texttt{legal} +% and \texttt{executive} ``paper'' options allow you to select the type of +% page format you want. By default, \texttt{letterpaper} is used. The +% \texttt{landscape} options switches the horizontal and vertical settings. +% I'm not sure why I propose this option. Nobody wants to write a \cv{} in +% landscape mode, right?\par +% +% \DescribeEnv{oneside} +% \DescribeEnv{twoside} +% As of version 1.6, \curve{} also supports the standard \texttt{oneside} and +% \texttt{twoside} class options. By default, \texttt{oneside} is used. In +% \texttt{twoside} mode, odd and even pages have a different geometry and +% headings layout. +% +% \subsubsection{Font Size} +% \DescribeEnv{10pt} +% \DescribeEnv{11pt} +% \DescribeEnv{12pt} +% The \texttt{10pt}, \texttt{11pt} and \texttt{12pt} options let you choose +% the size of the default font you want to use. By default, \texttt{10pt} is +% used. +% +% \subsubsection{Output Mode} +% \DescribeEnv{final} +% \DescribeEnv{draft} +% In \texttt{draft} mode, a black rule will be drawn at the end of overfull +% lines (as done by standard classes). Due to \curve{} using the +% \texttt{LTXtable} package (and in case \texttt{longtable} prior to version 4 +% is used by it), a call to |\setlongtables| is performed in \texttt{final} +% mode. Please refer to the next section for more information on this. By +% default, \texttt{final} is used. +% +% \subsubsection{Page styles} +% As of version 1.6, \curve{} supports the standard \LaTeX{} page style +% mechanism. Available styles are \texttt{empty}, \texttt{plain}, +% \texttt{headings} and \texttt{myheadings}. These styles have their usual +% meaning, given that rubric and subrubric names are used for marking purpose +% (the equivalent of chapters and sections in books for instance). +% By default, the page style is \texttt{empty}. +% +% \subsubsection{Internationalization} +% \curve{} currently supports 12 languages via the following options: +% \texttt{english}, \texttt{french} (or \texttt{francais}), \texttt{spanish}, +% \texttt{portuguese} (or \texttt{portuges}), \texttt{brazilian} (or +% \texttt{brazil}), \texttt{italian}, \texttt{german}, \texttt{ngerman}, +% \texttt{dutch}, \texttt{danish}, \texttt{swedish} and \texttt{polish}. The +% \texttt{german} and \texttt{ngerman} options are currently equivalent; so +% are the \texttt{portuguese} and \texttt{brazilian} ones.\par +% If you want a finer grain on the language-dependent parts of \curve, the +% following macros are provided.\par +% \DescribeMacro{\continuedname} +% The |\continuedname| macro takes one mandatory argument which redefines the +% continuation text output when rubrics extend across several pages. By +% default, ``\meta{space}(continued)'' is used in English. Although this might +% be of little use, it is possible to change the continuation text in the +% middle of your document, provided that you do so outside the |rubric| +% environment.\par +% \DescribeMacro{\listpubname} +% The |\listpubname| macro takes one mandatory argument which redefines the +% title of the bibliographic section (when you use the provided bibliography +% support). By default, ``List of Publications'' is used in English. Note that +% for compatibility with the |multibbl| and |multibib| packages, \curve{} +% honors the existence of |\bibname| or |\refname| macros prior to +% |\listpubname| for deciding which title to give to the bibliographic rubric. +% +% +% \section{Hints, Tricks, Tips} +% Here are some tips that I use for my own \cv. You might find them of some +% interest.\par +% +% \subsection{Page Geometry} +% First of all, it is common to have very thin margins in curricula vitae. +% \curve{} does not do anything special about this because I don't think that +% belongs to its duty. The \texttt{geometry} package comes in handy if you +% want to reduce your margins. +% +% \subsection{Vertical spacing} +% Although they might look a bit like itemize environments, \curve{} rubrics +% are implemented with tables. This has an important consequence: empty lines +% in rubrics do affect the vertical spacing of your document (at least for the +% time being). +% +% You might be tempted to leave such empty lines here and there for +% readability, or for this precise effect it has on vertical spacing, but I +% advise you against this. Better to stick entries and subrubrics together, +% and play with the spacing commands to achieve the desired layout. This will +% ensure a more consistent layout with future versions of \curve. +% +% If you are using \BibTeX{}, you should also be aware of the fact that some +% \BibTeX{} styles output empty lines between |\bibitem|'s, and this has an +% unfortunate influence on vertical spacing for the same technical reason. If +% this vertical space annoys you, what you can do is modify the \BibTeX{} +% style in order to avoid the production of these empty lines. For instance, +% in |plain.bst|, this simply boils down to removing the call to |newline$| at +% the beginning of the |output.bibitem| function. +% +% \subsection{The \texttt{ltx} Extension} +% Personally, I prefer to keep \texttt{.tex} for \TeX{} files, and use the +% \texttt{ltx} extension for \LaTeX. This is supported by \curve{} which will +% actually prefer \texttt{ltx} files over \texttt{tex} ones, especially when +% including rubrics. To be more precise, suppose you are building a flavor +% \texttt{flv} of your \cv. A call to |\makerubric{foo}| will try to use the +% following files in that order:\\ +% \texttt{foo.flv.ltx}\\ +% \texttt{foo.flv.tex}\\ +% \texttt{foo.ltx}\\ +% \texttt{foo.tex}\par +% +% \subsection{Longtable} +% \curve{} users should be aware of the fact that the layout implementation is +% based on the \texttt{LTXtable} package, which in turn is a mix of +% \texttt{tabularx} and \texttt{longtable}. This has several implications, +% most notably that when writing a rubric, you are actually inside a tabular +% environment. Here are some things to keep in mind: +% \begin{itemize} +% \item You are not allowed to use the |\\| command to start a new line. +% However, you're free to use |\par| in your entries'contents instead. Note +% that \curve{} sets |\parskip| to |0pt| so that starting a new paragraph +% looks like just starting a new line. +% \item You can use |\raggedright| and |\raggedleft| in your entries. +% \item You can use |\pagebreak|, |\nopagebreak| and |\newpage| at the +% beginning of a line, just before starting a new entry. +% \item Prior to version 4, \texttt{longtable} used an alignment mechanism +% involving calls to |\setlongtables| (see its documentation). \curve{} +% retains this for backward compatibility and still calls |\setlongtables| +% in final (not draft) mode. If your version of \texttt{longtable} is recent +% enough, you shouldn't be concerned by this. If it is older, you might need +% to process your document a few times in draft mode, and then one last time +% in final mode. However, keep in mind that in both cases, you might still +% need up to 3 or 4 passes of \LaTeX{} on your document. +% \end{itemize} +% +% \subsection{Managing Different Flavors} +% If you maintain different flavors of your \cv{} at the same time, you +% probably want to rebuild all of them after any modification. Since you have +% a single skeleton file for all of them (say, \texttt{cv.tex}), the output +% file will have the same name for all flavors (say, \texttt{cv.dvi}). This +% can bother you if you want all flavors of your formatted \cv{} available at +% the same time.\par +% To remedy this problem, I usually use the \texttt{ask} option and a +% makefile to build the different flavors and move the output file to +% flavor-specific name. Here is a typical makefile target that should clarify +% (or maybe darken?) what I am saying: +% \begin{verbatim} +%cv.$(FLAVOR).dvi: cv.ltx $(RUBRICS) +% echo $(FLAVOR) | latex cv.ltx +% mv cv.dvi $@ +% \end{verbatim} +% As you can see, the shell is responsible for answering the question. +% +% \subsection{More On Flavors} +% In order to implement the flavor mechanism, the \LaTeX{} macro |\input| has +% been redefined to look for ``flavored'' files first. This is actually very +% nice because you can use it if you want to make different flavors of text +% that does not belong in rubrics.\par +% For instance, suppose you want a special version of the subtitle of your +% \cv{} for the flavor \texttt{flv}. Create a file called +% \texttt{subtitle.flv.ltx} and put something like +% ``|\subtitle{special subtitle}|'' in it. Do something similar for the +% default subtitle. Now go to the skeleton of your \cv, and write +% |\input{subtitle}| in the preamble. That's it. You'll have different +% subtitles in your different \cv{} flavors. +% +% +% \section{\auctex{} support} +% \auctex{} is a powerful major mode for editing \TeX{} documents in +% \textsf{Emacs} or \textsf{XEmacs}. In particular, it provides automatic +% completion of macro names once they are known. \curve{} supports \auctex{} +% by providing a style file named \texttt{curve.el} which contains \auctex{} +% definitions for the relevant macros. This file should be installed to a +% location where \auctex{} can find it (usually in a subdirectory of your +% \LaTeX{} styles directory). Please refer to the \auctex{} documentation for +% more information on this.\par +% As of version 1.2, \curve{} has an improved \auctex{} support. Most notably, +% the command |M-Ret| will insert an |\entry*| macro within a |rubric| +% environment. Also, the |\makerubric| macro handling now removes both the +% file extension and the file flavor extension. +% +% +% \section{Changes} +% \begin{itemize} +% \item[v1.15] Support for itemize environments, suggested by Mirko Hessel-von +% Molo\\ +% Added some documentation about vertical spacing problems in |bbl| files, +% suggested by Seweryn Habdank-Wojew\'odzki +% \item[v1.14] Support for reverse counting bibliographic entries, suggested +% by Joseph Wright\\ +% Support for Polish thanks to Radek Dominiak\\ +% || +% \item[v1.13] Support for title alignment, suggested by Lars Kasper\\ +% Support for footnotes, suggested by Alain Coletta\\ +% Let rubrics honor the current |\linewidth|\\ +% Changed default value of |\subrubricbeforespace| to \texttt{20pt}\\ +% Fix some overfull boxes, reported by Nico Schl\"olmer\\ +% FAQ and documentation update +% \item[v1.12] Support for Swedish thanks to Konrad Skeri Persson\\ +% ||\\ +% New customizable length |\rubricafterspace| defining the space between +% each rubric\\ +% Fix incompatibilities with the |multibbl| package.\\ +% Honor bibliography titles (if) provided by |multibib| or |multibbl|\\ +% New command |\today|\\ +% FAQ update\\ +% Fix implementation of \texttt{skipsamekey} option +% \item[v1.11] New FAQ section in the documentation\\ +% New command |\noentry| to manually enlarge too narrow rubrics\\ +% Make |\pagebreak|, |\nopagebreak| and |\newpage| work in rubrics, +% suggested by Alexandre Duret-Lutz\\ +% Fix spurious right margin spaces\\ +% Fix usage of the bib counter, disable |skipsamekey| and the prefix in +% bibliographic entries +% \item[v1.10] Support automatic skipping of identical keys, suggested by Akim +% Demaille\\ +% Fix alignment problem with empty prefix, reported by Jonas Haulin +% \item[v1.9] Fix incompatibilities with the |bibentry| package, reported by +% Joris Desmet\\ +% Fix standard bibliography support (broken in v1.8) +% \item[v1.8] Prevent page breaks after subrubric headings +% \item[v1.7] Support for key horizontal alignment\\ +% |\raggedleft| and |\raggedright| can now be used within individual +% entries\\ +% Fix typo in Danish version of |\continuedname| +% \item[v1.6] Support for rubric and subrubric titles horizontal alignment\\ +% Support for standard \LaTeX{} page style mechanism\\ +% Support for \texttt{oneside} and \texttt{twoside} options\\ +% Support for Portuguese thanks to Adiel Mittmann ||\\ +% Fix bug in |\bibliography|: protect against non existant files, reported +% by Andrew Comport\\ +% Fix conflict with \texttt{hyperref} in some bibliography definitions +% \item[v1.5] Support for Dutch thanks to Thomas Delaet\\ +% ||\\ +% Fix typo in rubric environment, reported by Torsten Liesk +% \item[v1.4] Support for photo inclusion\\ +% Support for headers horizontal scaling\\ +% Optional argument to |\makeheaders| for vertical alignment, +% suggested by Dan Luecking +% \item[v1.3] Support for Danish thanks to Kim Rud Bille +% || +% \item[v1.2] Support for standard bibliography mechanism(s)\\ +% New macro |\entry*|\\ +% Improvements in \auctex{} support\\ +% Support for German thanks to Harald Harders ||\\ +% Support for Spanish thanks to Agust\'in Mart\'in || +% \item[v1.1] Support for Italian thanks to Riccardo Murri +% || +% \end{itemize} +% +% +% \StopEventually{\par Well, I think that's it. Enjoy using \curve{}! +% \vfill\hfill\small\packagecopyright{}.} +% +% +% \section{The Code} +% First, the class announcement and the initial requirements: +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{curve}[2008/02/25 v1.15 + Curriculum Vitae class for LaTeX2e] + +\RequirePackage{ltxtable} +\RequirePackage{ifthen} +\RequirePackage{calc} + +% \end{macrocode} +% +% \subsection{The Rubric File} +% We don't want to output an extra |subrubricbeforespace| if no entry is +% present before the subrubric. This is done by using an |\@beforespace| +% command which is set to |0pt| at the beginning of each rubric, and switched +% to the proper value when an entry is added.\par +% The |@nextentry| command is used to implement |\entry*| while maintaining +% backward compatibility with |\entry| and |\subrubric|. A new entry or +% a subrubric might have to close the preceding entry if it was opened using +% the starred form. +% \begin{macrocode} +\gdef\@nextentry{} + +% \end{macrocode} +% \subsubsection{Entries} +% \DescribeMacro{\keyfont} +% \begin{macrocode} +\def\@keyfont{} +\newcommand\keyfont[1]{\gdef\@keyfont{#1}} + +% \end{macrocode} +% \DescribeMacro{\keyalignment} +% \begin{macrocode} +\newcolumntype{k}{>{\@keyfont}l} +\newcommand\keyalignment[1]{% + \ifthenelse{\equal{#1}{l}}{}{% + \ifthenelse{\equal{#1}{r}}{}{% + \ifthenelse{\equal{#1}{c}}{}{% + \ClassError{curve}{Invalid key alignment}{% + You have called \protect\keyalignment\space with an invalid value.% + \MessageBreak + Valid options include l, c, and r.\MessageBreak + Type X to quit, fix the typo, and rerun LaTeX.}}}}% + \newcolumntype{k}{>{\@keyfont}#1}} + +% \end{macrocode} +% \DescribeMacro{\prefix} +% \begin{macrocode} +\def\@prefix{\textbullet} +\newcommand\prefix[1]{\gdef\@prefix{#1}} + +% \end{macrocode} +% \DescribeMacro{\entry} +% As of version 1.10, \curve{} can skip keys identical to the previous one, if +% the option |skipsamekey| is used. +% \begin{macrocode} +\def\@maybekey#1{% + \def\@newkey{#1}% + \ifx\@previouskey\@newkey\gdef\@@key{}\else% + \gdef\@@key{#1}\gdef\@previouskey{#1}% + \fi} + +\def\@alwayskey#1{% + \gdef\@@key{#1}} + +\let\@key\@alwayskey +\DeclareOption{skipsamekey}{\let\@key\@maybekey} + +\newcommand\@entry[2][]{% + \gdef\@nextentry{}\@key{#1}% + \egroup% end of \noalign opened in \entry. + \@@key&\@prefix\\\par} + +\newcommand\@sentry[1][]{% + \gdef\@nextentry{\\\par}\@key{#1}% + \egroup% end of \noalign opened in \entry. + \@@key&\@prefix&} + +\newcommand\entry{% + \@nextentry + \noalign\bgroup\gdef\@beforespace{\subrubricbeforespace}% + \@ifstar{\@sentry}{\@entry}} + +% \end{macrocode} +% \DescribeMacro{\noentry} +% This macro is a wrapper around |\kill| to manually adjust too narrow rubrics. +% \begin{macrocode} +\newcommand\noentry[1]{\@nextentry + \noalign{\gdef\@nextentry{}}#1&&\kill} + +% \end{macrocode} +% +% \subsubsection{Subrubrics} +% \DescribeMacro{\subrubricfont} +% \DescribeMacro{\subrubricbeforespace} +% \DescribeMacro{\subrubricspace} +% \begin{macrocode} +\def\@subrubricfont{\Large\itshape} +\newcommand\subrubricfont[1]{\gdef\@subrubricfont{#1}} + +\newlength\subrubricbeforespace +\setlength\subrubricbeforespace{20pt} + +\newlength\subrubricspace +\setlength\subrubricspace{5pt} + +% \end{macrocode} +% \DescribeMacro{\subrubricalignment} +% \DescribeMacro{\subrubric} +% Note that |\@subrubricmark| is called outside the raisebox. That's because +% otherwise, the mark would not go to the toplevel page vertical box, and +% \TeX{} would not notice it. +% \begin{macrocode} +\let\@subrubricmark\@gobble + +\def\@@subrubric#1{% + \rule{0bp}{\@beforespace} + {\@subrubricfont#1} + \@subrubricmark{#1}} + +% \end{macrocode} +% The normal intercolumn space between the prefix and the entry's content is +% replaced with an unbreakable space. This causes a problem (fixed in version +% 1.10) with the [sub]rubric alignments cl and cc when the prefix is empty, +% because the unbreakable space in question slightly shifts the entry's +% content to the right. If we want a proper alignment, we then have to take +% this offset into account in the cl and cc multicolumns, for both rubrics and +% subrubrics. The following macro implements this: +% \begin{macrocode} + +\def\@clcccolsep{\hspace{\tabcolsep}\ifx\@prefix\@empty~\fi} + +\def\@subrubric@l#1{\multicolumn{3}{@{}l@{}}{\@@subrubric{#1}}} +\def\@subrubric@c#1{\multicolumn{3}{@{}c@{}}{\@@subrubric{#1}}} +\def\@subrubric@r#1{\multicolumn{3}{@{}r@{}}{\@@subrubric{#1}}} +\def\@subrubric@cl#1{&\multicolumn{2}{@{\@clcccolsep}l@{}}{\@@subrubric{#1}}} +\def\@subrubric@cc#1{&\multicolumn{2}{@{\@clcccolsep}c@{}}{\@@subrubric{#1}}} + +\let\@subrubric\@subrubric@cl + +\newcommand\subrubricalignment[1]{% + \def\@curve@temp@a{\let\@subrubric} + \expandafter\@curve@temp@a\csname @subrubric@#1\endcsname + \@ifundefined{@subrubric}{% + \ClassError{curve}{Invalid subrubric alignment}{% + You have called \protect\subrubricalignment\space with an invalid value.% + \MessageBreak + Valid options include l, c, r, cl and cc.\MessageBreak + Type X to quit, fix the typo, and rerun LaTeX.}} +} + +\newcommand\subrubric[1]{% + \@nextentry + \noalign{\gdef\@nextentry{}}% + \@subrubric{#1}\\*[\subrubricspace]\par} + +% \end{macrocode} +% \subsubsection{Rubrics} +% The |\@almosttextwidth| length remains only for backward compatibility. It +% is not used anymore. +% \DescribeMacro{\rubricfont} +% \DescribeMacro{\rubricspace} +% \begin{macrocode} +\newlength{\@almosttextwidth} +\AtBeginDocument{\setlength\@almosttextwidth{\textwidth-\hfuzz}} + +\def\@rubricfont{\Large\bfseries} +\newcommand\rubricfont[1]{\gdef\@rubricfont{#1}} + +\newlength\rubricspace +\setlength\rubricspace{10pt} + +% \end{macrocode} +% \DescribeMacro{\rubricalignment} +% \begin{macrocode} +\def\@@rubrichead#1{\@rubricfont#1} + +\def\@rubrichead@l#1{\multicolumn{3}{@{}l@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@c#1{\multicolumn{3}{@{}c@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@r#1{\multicolumn{3}{@{}r@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@cl#1{&\multicolumn{2}{@{\@clcccolsep}l@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@cc#1{&\multicolumn{2}{@{\@clcccolsep}c@{}}{\@@rubrichead{#1}}} + +\let\@rubrichead\@rubrichead@c + +\newcommand\rubricalignment[1]{% + \def\@curve@temp@a{\let\@rubrichead} + \expandafter\@curve@temp@a\csname @rubrichead@#1\endcsname + \@ifundefined{@rubrichead}{% + \ClassError{curve}{Invalid rubric alignment}{% + You have called \protect\rubricalignment\space with an invalid value.% + \MessageBreak + Valid options include l, c, r, cl and cc.\MessageBreak + Type X to quit, fix the typo, and rerun LaTeX.}} +} + +% \end{macrocode} +% \DescribeMacro{\rubricafterspace} +% \begin{macrocode} +\newlength\rubricafterspace +\setlength\rubricafterspace{0pt} + +% \end{macrocode} +% \DescribeEnv{rubric} +% Marking commands don't seem to work in longtable headings. So the rubric +% mark is issued just after it.\par +% As of version 1.7, |\raggedleft| and |\raggedright| are redefined in order +% to work within individual entries. This redefinition simply consists in +% removing the |\\| definition since it's not available anyway, and also to +% remove the |\parskip| setting since it's |Opt| in the whole class. +% \begin{macrocode} +\let\@rubricmark\@gobble + +\newenvironment{rubric}[1]{% + %% \begin{rubric} + \def\raggedright{% + \@rightskip\@flushglue\rightskip\@rightskip\leftskip\z@skip}% + \def\raggedleft{% + \rightskip\z@skip\leftskip\@flushglue\parfillskip\z@skip}% + \gdef\@beforespace{0pt}% + \gdef\@nextentry{}% + \gdef\@previouskey{}% + \global\let\old@newpage\newpage% + \global\let\old@pagebreak\pagebreak% + \global\let\old@nopagebreak\nopagebreak + \begin{longtable}{@{}kl@{~}X@{}} + \@rubrichead{#1}\\*[\rubricspace] + \endfirsthead + \@rubrichead{#1\@continuedname}\\*[\rubricspace] + \endhead + \noalign{\@rubricmark{#1}% + \global\let\in@newpage\newpage% + \global\let\in@pagebreak\pagebreak% + \global\let\in@nopagebreak\nopagebreak% + \gdef\newpage{\@nextentry\noalign{\gdef\@nextentry{}}\in@newpage} + \gdef\pagebreak{\@nextentry\noalign{\gdef\@nextentry{}}\in@pagebreak} + \gdef\nopagebreak{\@nextentry\noalign{\gdef\@nextentry{}}\in@nopagebreak}}}{% + %% \end{rubric} + \@nextentry + \end{longtable}\par\vspace\rubricafterspace + \global\let\newpage\old@newpage% + \global\let\pagebreak\old@pagebreak% + \global\let\nopagebreak\old@nopagebreak} + +% \end{macrocode} +% \DescribeMacro{\continuedname} +% \begin{macrocode} +\newcommand\continuedname[1]{\gdef\@continuedname{#1}} + +% \end{macrocode} +% +% \subsection{The Skeleton File} +% +% \subsubsection{Utilities} +% \DescribeMacro{\today} +% \begin{macrocode} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +% \end{macrocode} +% \subsubsection{Headers} +% \DescribeMacro{\headerscale} +% \DescribeMacro{\headerspace} +% \begin{macrocode} +\def\header@scale{.5} +\newcommand\headerscale[1]{\gdef\header@scale{#1}} +\@onlypreamble\headerscale + +\newlength\headerspace +\setlength\headerspace{10pt} + +% \end{macrocode} +% \DescribeMacro{\leftheader} +% \DescribeMacro{\rightheader} +% If the user calls |\makeheaders| without specifying headers first, an error +% will be generated. The same applies for the title (not the subtitle), but +% this is already managed by \LaTeX{} itself. +% \begin{macrocode} +\def\@leftheader{% + \ClassError{curve}{No \protect\leftheader\space given}{% + You have called \protect\makeheaders, % + but you didn't provide a left header.\MessageBreak + Type X to quit, add a call to \protect\lefheader\space % + in the preamble of your CV,\MessageBreak + and rerun LaTeX.}} +\newcommand\leftheader[1]{\gdef\@leftheader{#1}} +\@onlypreamble\leftheader + +\def\@rightheader{% + \ClassError{curve}{No \protect\rightheader\space given}{% + You have called \protect\makeheaders, % + but you didn't provide a right header.\MessageBreak + Type X to quit, add a call to \protect\rightheader\space % + in the preamble of your CV,\MessageBreak + and rerun LaTeX.}} +\newcommand\rightheader[1]{\gdef\@rightheader{#1}} +\@onlypreamble\rightheader + +% \end{macrocode} +% \DescribeMacro{\photoscale} +% \DescribeMacro{\photosep} +% \DescribeMacro{\photo} +% \begin{macrocode} +\def\photo@scale{.1} +\newcommand\photoscale[1]{\gdef\photo@scale{#1}} +\@onlypreamble\photoscale + +\newlength\photosep +\setlength\photosep{10pt} + +\newcommand\photo[2][l]{% + \RequirePackage{graphicx} + \ifthenelse{\equal{#1}{l}}{}{% + \ifthenelse{\equal{#1}{r}}{}{% + \ifthenelse{\equal{#1}{c}}{}{% + \ClassError{curve}{Invalid argument to \protect\photo}{% + Argument 2 of \protect\photo must be `l', `r' or `c'.}}}}% + \def\tmp@cmd{\global\let\makeheaders@} + \expandafter\tmp@cmd\csname makeheaders@#1\endcsname + \gdef\photo@file{#2}} +\@onlypreamble\photo + +% \end{macrocode} +% \DescribeMacro{\makeheaders} +% These different versions of the photo inclusion command exist for proper +% alignment of the picture itself with the left and right headers. +% \begin{macrocode} +\newlength\photo@width + +\def\includephoto@t{% + \raisebox{.7\baselineskip-\height}{% + \includegraphics[width=\photo@width]{\photo@file}}} + +\def\includephoto@c{% + \raisebox{-.5\height}{% + \includegraphics[width=\photo@width]{\photo@file}}} + +\def\includephoto@b{\includegraphics[width=\photo@width]{\photo@file}} + +% \end{macrocode} +% And here are the different versions of the |\makeheaders| command: +% \begin{macrocode} +\newlength\leftheader@width +\newlength\rightheader@width + +\def\makeheaders@l#1{% + \setlength\photo@width{\photo@scale\textwidth} + \setlength\leftheader@width{% + (\textwidth - \photo@width - \photosep) * \real{\header@scale}} + \setlength\rightheader@width{% + \textwidth - \photo@width - \photosep - \leftheader@width} + \parbox[#1]{\photo@width + \photosep}{\includephoto@\hspace\photosep}% + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}} + +\def\makeheaders@c#1{% + \setlength\photo@width{\photo@scale\textwidth} + \setlength\leftheader@width{(\textwidth - \photo@width) * \real{.5}} + \setlength\rightheader@width{\leftheader@width} + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\photo@width}{\includephoto@}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}} + +\def\makeheaders@r#1{% + \setlength\photo@width{\photo@scale\textwidth} + \setlength\leftheader@width{% + (\textwidth - \photo@width - \photosep) * \real{\header@scale}} + \setlength\rightheader@width{% + \textwidth - \photo@width - \photosep - \leftheader@width} + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}% + \parbox[#1]{\photo@width + \photosep}{\hspace\photosep\includephoto@}} + +\def\makeheaders@#1{% + \setlength\leftheader@width{\header@scale\textwidth}% + \setlength\rightheader@width{\textwidth - \leftheader@width}% + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}} + +\newcommand\makeheaders[1][c]{% + \ifthenelse{\equal{#1}{t}}{}{% + \ifthenelse{\equal{#1}{b}}{}{% + \ifthenelse{\equal{#1}{c}}{}{% + \ClassError{curve}{Invalid argument to \protect\makeheaders}{% + Argument of \protect\makeheaders must be `t', `b' or `c'.}}}}% + \def\tmp@cmd{\global\let\includephoto@} + \expandafter\tmp@cmd\csname includephoto@#1\endcsname + \makeheaders@{#1}% + \par\vspace\headerspace} + +% \end{macrocode} +% \subsubsection{Titles} +% \DescribeMacro{\titlefont} +% \DescribeMacro{\titlespace} +% \begin{macrocode} +\@onlypreamble\title + +\def\@titlefont{\Huge\bfseries} +\newcommand\titlefont[1]{\gdef\@titlefont{#1}} +\@onlypreamble\titlefont + +\newlength\titlespace +\setlength\titlespace{0pt} + +% \end{macrocode} +% \DescribeMacro{\subtitle} +% \DescribeMacro{\subtitlefont} +% \begin{macrocode} +\let\@subtitle\@undefined +\newcommand\subtitle[1]{\gdef\@subtitle{#1}} +\@onlypreamble\subtitle + +\def\@subtitlefont{\huge\itshape} +\newcommand\subtitlefont[1]{\gdef\@subtitlefont{#1}} +\@onlypreamble\subtitlefont + +% \end{macrocode} +% \DescribeMacro{\titlealignment} +% \begin{macrocode} +\def\@titlealignment@l{\raggedright} +\def\@titlealignment@c{\centering} +\def\@titlealignment@r{\raggedleft} + +\let\@title@lignment\@titlealignment@c + +\def\@titlealignment#1#2{% + \def\@curve@temp@a{\let\@title@lignment} + \expandafter\@curve@temp@a\csname @titlealignment@#2\endcsname + \@ifundefined{@title@lignment}{% + \ClassError{curve}{Invalid title alignment}{% + You have called \expandafter\string\csname#1\endcsname\space% + with an invalid value.% + \MessageBreak + Valid options include l, c and r.\MessageBreak + Type X to quit, fix the typo, and rerun LaTeX.}} +} + +\newcommand\titlealignment[1]{\@titlealignment{titlealignment}{#1}} + +% \end{macrocode} +% \DescribeMacro{\maketitle} +% \begin{macrocode} +\def\@@maketitle{% + \bgroup\trivlist\@title@lignment\item\relax + {\@titlefont\@title} + \ifx\@subtitle\@undefined\else\\\@subtitlefont\@subtitle\fi + \endtrivlist\egroup + \vspace\titlespace} + +\def\@maketitle[#1]{\@titlealignment{maketitle}{#1}\@@maketitle} + +\newcommand\maketitle{\@ifnextchar[%] + \@maketitle\@@maketitle} + +% \end{macrocode} +% \subsubsection{Rubric Inclusion} +% \DescribeMacro{\flavor} +% \begin{macrocode} +\let\@flavor\empty +\newcommand\flavor[1]{\gdef\@flavor{#1} + \ifx\@flavor\empty\else\edef\@flavor{.\@flavor}\fi} + +\DeclareOption{ask}{% + \typein[\@flavor]{Please specify a CV flavor (none by default):} + \ifx\@flavor\empty\else\edef\@flavor{.\@flavor}\fi} + +% \end{macrocode} +% |\input| is redefined in order to deal with flavors and the |ltx| extension. +% \begin{macrocode} +\def\@curveinput#1{% + \IfFileExists{#1\@flavor.ltx}{\@iinput{#1\@flavor.ltx}}{% + \IfFileExists{#1\@flavor.tex}{\@iinput{#1\@flavor.tex}}{% + \IfFileExists{#1.ltx}{\@iinput{#1.ltx}}{% + \IfFileExists{#1.tex}{\@iinput{#1.tex}}{% + \@iinput{#1}}}}}} + +\renewcommand\input{\@ifnextchar\bgroup\@curveinput\@@input} + +% \end{macrocode} +% \DescribeMacro{\makerubric} +% \begin{macrocode} +\newcommand\makerubric[1]{\LTXtable{\linewidth}{#1}} + +% \end{macrocode} +% \subsubsection{Bibliography} +% \begin{macrocode} +\let\newblock\par +\newcounter{bibcount} +\newcounter{bibtotal} + +\newif\ifcurve@revbib\curve@revbibfalse +\DeclareOption{revbib}{\curve@revbibtrue} + +% \end{macrocode} +% \DescribeMacro{\bibliography} +% Define |\bibliography| to issue a |\makerubric| call on the |bbl| file. As +% of version 1.12, handle |multibbl| syntax if the package is loaded. +% \begin{macrocode} +\AtBeginDocument{ + \@ifpackageloaded{multibbl}{ + %% multibbl version + \def\bibliography#1#2#3{% + \@ifundefined{#1@auxfile}{}{\expandafter\immediate% + \write\csname #1@auxfile\endcsname{\string\bibdata{#2}}}% + \def\bibname{#3}% + \def\refname{#3}% + \IfFileExists{#1.bbl}{\makerubric{#1.bbl}}{% + \typeout{No file #1.bbl.}}} + }{ %% standard version + \def\bibliography#1{% + \if@filesw + \immediate\write\@auxout{\string\bibdata{#1}}% + \fi + \IfFileExists{\jobname.bbl}{\makerubric{\jobname.bbl}}{% + \typeout{No file \jobname.bbl.}}} + } +} + +% \end{macrocode} +% \DescribeMacro{\bibitem} +% Redefine |\bibitem| and its internal implementation to behave like |\entry|. +% +% Do this late to overwrite a possible |hyperref| redefinition back again (it +% is arguable whether we should preserve |hyperref| functionality or not, but +% the current answer is no). +% +% One exception: if |bibentry| is used, don't get in the way. It redefines its +% own bibliographic environment and stuff. +% \begin{macrocode} +\AtBeginDocument{ + \@ifpackageloaded{bibentry}{}{ + \def\@lbibitem[#1]#2{\@sentry[\@biblabel{#1}]% + \if@filesw{% + \let\protect\noexpand% + \immediate\write\@auxout{\string\bibcite{#2}{#1}}} + \fi% + \ignorespaces} + \def\@bibitem#1{\stepcounter{bibcount}% + \@sentry[\@biblabel{\ifcurve@revbib\thebibtotal\else\thebibcount\fi}]% + \ifcurve@revbib\addtocounter{bibtotal}{-1}\fi% + \if@filesw% + \immediate\write\@auxout{\string\bibcite{#1}{\thebibcount}}% + \fi% + \ignorespaces} + \renewcommand\bibitem{% + %% #### FIXME: Dirty code duplication from \entry + \@nextentry + \noalign\bgroup\gdef\@beforespace{\subrubricbeforespace}% + \@ifnextchar[%] + \@lbibitem\@bibitem} + } +} + +\AtEndDocument{% + \if@filesw% + \immediate\write\@auxout{\string\setcounter{bibtotal}{\thebibcount}}% + \fi} + +% \end{macrocode} +% \DescribeMacro{\listpubname} +% \begin{macrocode} +\newcommand\listpubname[1]{\gdef\@listpubname{#1}} + +% \end{macrocode} +% \DescribeEnv{thebibliography} +% Note that |bibentry| overrides this definition. +% \begin{macrocode} +\newenvironment{thebibliography}[1]{% +% \end{macrocode} +% Disable the |skipsamekey| mechanism and the prefix which would get in the +% way. +% \begin{macrocode} + \let\@key\@alwayskey + \def\@prefix{} +% \end{macrocode} +% For compatibility with bibliographic packages such as |multibib|, the +% bibliography title is set (by order of priority) to either |\bibname|, +% |\refname| or |\@listpubname|. +% \begin{macrocode} + \begin{rubric}{\@ifundefined{bibname}{% + \@ifundefined{refname}{\@listpubname}{\refname}}{% + \bibname}} + }{% + \end{rubric} +} + +% \end{macrocode} +% \subsection{Language Processing} +% \begin{macrocode} +\DeclareOption{english}{% + \continuedname{~(continued)} + \listpubname{List of Publications}} +\DeclareOption{french}{% + \continuedname{~(suite)} + \listpubname{Liste des Publications}} +\DeclareOption{francais}{% + \ExecuteOptions{french}} +\DeclareOption{spanish}{% + \continuedname{~(contin\'ua)} + \listpubname{Lista de Publicaciones}} +\DeclareOption{portuges}{% + \continuedname{~(continua\c c\~ao)} + \listpubname{Publica\c c\~oes}} +\DeclareOption{portuguese}{% + \ExecuteOptions{portuges}} +\DeclareOption{brazil}{% + \ExecuteOptions{portuges}} +\DeclareOption{brazilian}{% + \ExecuteOptions{portuges}} +\DeclareOption{italian}{% + \continuedname{~(continua)} + \listpubname{Pubblicazioni}} +\DeclareOption{german}{% + \continuedname{~(fortgesetzt)} + \listpubname{Verzeichnis der Ver\"offentlichungen}} +\DeclareOption{ngerman}{% + \ExecuteOptions{german}} +\DeclareOption{dutch}{% + \continuedname{~(vervolg)} + \listpubname{Publicaties}} +\DeclareOption{danish}{% + \continuedname{~(fortsat)} + \listpubname{Udgivelser}} +\DeclareOption{swedish}{% + \continuedname{~(forts.)} + \listpubname{Publikationer}} +\DeclareOption{polish}{ + \continuedname{~(kontynuacja)} + \listpubname{Publikacje}} + +% \end{macrocode} +% \subsection{Standard Class Processing} +% \begin{macrocode} +\DeclareOption{a4paper}{ + \setlength\paperheight{297mm} + \setlength\paperwidth{210mm}} +\DeclareOption{a5paper}{ + \setlength\paperheight{210mm} + \setlength\paperwidth{148mm}} +\DeclareOption{b5paper}{ + \setlength\paperheight{250mm} + \setlength\paperwidth{176mm}} +\DeclareOption{letterpaper}{ + \setlength\paperheight{11in} + \setlength\paperwidth{8.5in}} +\DeclareOption{legalpaper}{ + \setlength\paperheight{14in} + \setlength\paperwidth{8.5in}} +\DeclareOption{executivepaper}{ + \setlength\paperheight{10.5in} + \setlength\paperwidth{7.25in}} +\DeclareOption{landscape}{ + \setlength\@tempdima{\paperheight} + \setlength\paperheight{\paperwidth} + \setlength\paperwidth{\@tempdima}} + +\DeclareOption{10pt}{\def\@ptsize{0}} +\DeclareOption{11pt}{\def\@ptsize{1}} +\DeclareOption{12pt}{\def\@ptsize{2}} + +\DeclareOption{oneside}{\@twosidefalse\@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue\@mparswitchtrue} + +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{% + \setlength\overfullrule{0pt} + \setlongtables} + +\ExecuteOptions{english,letterpaper,10pt,oneside,final} +\ProcessOptions + +\input{size1\@ptsize.clo} +\setlength\parindent{0pt} +\setlength\parskip{0pt} +\setlength\tabcolsep{10pt} +\setlength\arrayrulewidth{.4\p@} +\setlength\leftmargini{2.5em} +\leftmargin\leftmargini +\setlength\leftmarginii{2.2em} +\setlength\leftmarginiii{1.87em} +\setlength\leftmarginiv{1.7em} +\setlength\leftmarginv{1em} +\setlength\leftmarginvi{1em} +\setlength\labelsep{.5em} +\setlength\labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand\theenumi{\@arabic\c@enumi} +\renewcommand\theenumii{\@alph\c@enumii} +\renewcommand\theenumiii{\@roman\c@enumiii} +\renewcommand\theenumiv{\@Alph\c@enumiv} +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\theenumi(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +\raggedbottom +\onecolumn +\pagestyle{empty} +\pagenumbering{arabic} + +\newcommand\@makefntext[1]{\noindent\hb@xt@1em{\hss\@makefnmark}#1} + +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\slshape\leftmark}% + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\@rubricmark##1{\markboth{\MakeUppercase{##1}}{}}% + \def\@subrubricmark##1{\markright{##1}}% + } +\else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\@rubricmark##1{\markright{\MakeUppercase{##1}}}% + } +\fi +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\slshape\leftmark}% + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\@gobbletwo + \let\@rubricmark\@gobble + \let\@subrubricmark\@gobble +} + +% \end{macrocode} +% ^^A \PrintChanges +% ^^A \PrintIndex +% \Finale +% +% ^^A curve.dtx ends here. diff --git a/curve.ins b/curve.ins new file mode 100644 index 0000000..db3bbcf --- /dev/null +++ b/curve.ins @@ -0,0 +1,74 @@ +%%% curve.ins --- Installation file for CurVe -*- mode: LaTeX -*- + +%% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007 Didier Verna. + +%% Author: Didier Verna +%% Maintainer: Didier Verna +%% Created: Thu Dec 10 16:04:01 1998 +%% Last Revision: Tue Jun 12 11:04:29 2007 + +%% This file is part of CurVe. + +%% CurVe may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.1 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.1 or later is part of all distributions of LaTeX +%% version 1999/06/01 or later. + +%% CurVe consists of the files listed in the file `README'. + + +%%% Commentary: + +%% Contents management by FCM version 0.1. + + +%%% Code: + +\NeedsTeXFormat{LaTeX2e} +\input docstrip.tex +\keepsilent +\askforoverwritefalse + +\preamble +^^J^^J +Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Didier Verna^^J +This file is part of CurVe.^^J +CurVe may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.1 +of this license or (at your option) any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.1 or later is part of all distributions of LaTeX +version 1999/06/01 or later.^^J +CurVe consists of the files listed in the file `README'.^^J +\endpreamble + +\catcode`\¡=14 +\generate{\file{curve.cls}{\from{curve.dtx}{}}} + +\Msg{} +\Msg{,----------} +\Msg{|} +\Msg{| You have two more things to do to finish the installation:} +\Msg{|} +\Msg{| * Typeset the documentation by running LaTeX on the file `curve.dtx'.} +\Msg{| * Install `curve.cls' and `curve.dvi' anywhere you see fit.} +\Msg{|} +\Msg{| If you're an AUC-TeX user, you can also install the file `curve.el' in} +\Msg{| a suitable AUC-TeX style directory.} +\Msg{|} +\Msg{| Once you have installed the package, you might also want to process} +\Msg{| the example file cv.tex. This will give you an idea of what a non} +\Msg{| customized CV looks like with CurVe.} +\Msg{|} +\Msg{| Have fun!} +\Msg{|} +\Msg{`----------} +\Msg{} + +\endbatchfile + +%%% curve.ins ends here diff --git a/cv.tex b/cv.tex new file mode 100644 index 0000000..9c32bb5 --- /dev/null +++ b/cv.tex @@ -0,0 +1,41 @@ +\NeedsTeXFormat{LaTeX2e} +\documentclass[french,a4paper,skipsamekey,revbib]{curve} + +\usepackage[a4paper,nohead,nofoot,hmargin=1.5cm,vmargin=1.5cm]{geometry} +\usepackage{babel} +\usepackage[utf8x]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{mathpazo} +\usepackage[scaled=.95]{helvet} +\usepackage{courier} +\usepackage{graphicx} +\usepackage[colorlinks]{hyperref} + +\leftheader{{\Large \textbf{Pierre-Olivier \textsc{Mercier}}}\\ + 15 rue des Coquettes\\ + 94800 VILLEJUIF\\ + Tél: +33 6 37 85 23 39, Fax: +33 9 53 71 29 00\\ + \href{mailto:mercier.pierreolivier@gmail.com}{mercier.pierreolivier@gmail.com}} +\rightheader{Né le 04/12/1991 à Caen\\ + Célibataire\\ + Permis B} + +\title{Étudiant en ingénierie informatique} +\subtitle{École Pour l'Informatique et les Techniques Avancées} + +\begin{document} + +\makeheaders[t] +\maketitle + +\makerubric{formation} + +\makerubric{competences} + +\makerubric{experience} + +\makerubric{langues} + +\makerubric{interets} + +\end{document} diff --git a/experience.tex b/experience.tex new file mode 100644 index 0000000..c6bf842 --- /dev/null +++ b/experience.tex @@ -0,0 +1,26 @@ +\begin{rubric}{Expérience} +\entry*[2010] + \textbf{Kartastrophe~:} \url{http://www.kartastrophe.free.fr/}\newline + Logiciel de cartographie 3D sous Unix, réalisé en OCaml en groupe, dans le cadre du module d'informatique pratique de seconde année de prépa. + +\entry*[2009-2010] + \textbf{ÉradiKor~:} \url{http://eradikor.free.fr/}\newline + Projet de jeu vidéo réalisé en C\# en groupe, dans le cadre du module d'informatique pratique de première année de prépa. + +\entry*[2009-2010] + \textbf{Ligue Halo France}\newline + Réalisation et coordination du site internet d'organisation de tournois de sport électronique. + +\entry*[2008] + \textbf{Inno-Wear}\newline + Réalisation complète d'après un cahier des charges du site internet avec une interface d'administration. + +\entry*[2008-\ldots] + \textbf{Halo-Battle}\newline + Réalisation et coordination du jeu en ligne par navigateur. + +\entry*[2007-2009] + \textbf{La Rapière d'Hérouville~:} \url{http://www.hsc.escrime.free.fr/}\newline + Réalisation et mise à jour du site de l'association sportive. + +\end{rubric} \ No newline at end of file diff --git a/formation.tex b/formation.tex new file mode 100644 index 0000000..eb7aacf --- /dev/null +++ b/formation.tex @@ -0,0 +1,13 @@ +\begin{rubric}{Formation} +\entry*[2011] + \textbf{Université de Stafford}\newline + Semestre d'étude à l'étranger -- Angleterre + +\entry*[2009-2014] + \textbf{École Pour l'Informatique et les Techniques Avancées (\textsc{épita})}\newline + Prépa type maths sup/spé -- Paris Sud + +\entry*[2009] + \textbf{Baccalauréat général Scientifique option \textsc{svt} spécialité mathématiques}\newline + Lycée Salvador Allende -- Hérouville-Saint-Clair (Calvados) +\end{rubric} \ No newline at end of file diff --git a/interets.tex b/interets.tex new file mode 100644 index 0000000..75de008 --- /dev/null +++ b/interets.tex @@ -0,0 +1,13 @@ +\begin{rubric}{Intérêts} +\entry*[Associations] + Secrétaire de \textbf{l'Association \textsc{Épita} de Développement Durable} (\textsc{AEDD})~: sensibiliser les futurs ingénieurs au développement durable, recyclage des ordinateurs du parc de l'école (Ordi 2.0). +\entry*[Associations] + \textbf{Prologin~:} organisation du concours national d'informatique. +\entry*[Associations] + \textbf{Gconfs~:} organisation de conférences pour les élèves du groupe \textsc{ionis}. + +\entry*[Sport] + \textbf{Escrime} (arbitre régional) +\entry*[Sport] + Deux participations au \textbf{Caen raid aventure}. +\end{rubric} \ No newline at end of file diff --git a/langues.tex b/langues.tex new file mode 100644 index 0000000..7a2edef --- /dev/null +++ b/langues.tex @@ -0,0 +1,5 @@ +\begin{rubric}{Langues} + \entry*[Fran\c cais] Langue maternelle + \entry*[Anglais] Lu, écrit, parlé + \entry*[Allemand] Baccalauréat langue vivante 1 +\end{rubric} \ No newline at end of file