.. -*- mode: rst -*- .. -*- coding: utf-8 -*- ===================== Se faire un CV en rst ===================== :date: 2015-10-03 :tags: reStructuredText, Libre :summary: |summary| .. admonition:: Article obsolète :class: warning Je propose désormais une solution complète pour se faire son modèle de CV en rst : `encore des cvs`_ ! .. _encore des cvs: {filename}2020-12-03-encore_des_cv.rst |summary| .. |summary| replace:: Je n'en finis plus de proposer le format rst à toutes les sauces. Cette fois-ci je vous propose d'écrire votre CV en rst, et donner le rendu à latex via moderncv pour obtenir un rendu qui sort du lot. Moderncv ======== moderncv est une classe latex (entendre au sens *template*), qui permet de présenter et mettre en forme le CV simplement. Une image valant mieux qu'un long discours, ça donne un résultat comme celui-ci : .. image:: {static}/images/cv/exemple.png :alt: Exemple de rendu Le but est de séparer la mise en forme du contenu, en déclarant à travers quelques balises quelles sont éléments à afficher sur le cv. Voici quelques exemples de rendu possible avec la classe : * `thème banking rouge`_ * `thème casual orange`_ * `thème classic vert`_ * `thème fancy mauve`_ * `thème oldstyle gris`_ .. _thème banking rouge: https://github.com/xdanaux/moderncv/blob/master/examples/template_banking_red.pdf .. _thème casual orange: https://github.com/xdanaux/moderncv/blob/master/examples/template_casual_orange.pdf .. _thème classic vert: https://github.com/xdanaux/moderncv/blob/master/examples/template_classic_green.pdf .. _thème fancy mauve: https://github.com/xdanaux/moderncv/blob/master/examples/template_fancy_purple.pdf .. _thème oldstyle gris: https://github.com/xdanaux/moderncv/blob/master/examples/template_oldstyle_grey.pdf Alors quand on latex on dit simplement, en vérité ça veut dire ça : .. code-block:: latex \section{Education} \cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description} % arguments 3 to 6 can be left empty \cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description} \section{Master thesis} \cvitem{title}{\emph{Title}} \cvitem{supervisors}{Supervisors} \cvitem{description}{Short thesis abstract} La version RST ============== Ce que je propose, c'est de l'écrire comme ça : .. code-block:: reStructuredText Formation --------- :2008: **Mon dernier diplôme** — *Université de France* après j'ai arrêté. :2006: **Un autre diplôme** — *Université de Navarre* il faut que j'aille le chercher depuis ce temps… :2005: **Encore un** — *Université* mention « Assez bien » Avouez que c'est quand même plus simple ! Comment faire ============= Compilation latex ----------------- Pour commencer, assurez-vous que vous pouvez produire le CV à partir du code latex. .. code-block:: console $ wget https://raw.githubusercontent.com/xdanaux/moderncv/master/examples/template.tex $ wget https://raw.githubusercontent.com/xdanaux/moderncv/master/examples/picture.jpg $ pdflatex template.tex Si tout va bien, vous devriez avoir votre pdf généré dans le répertoire. Quelques problèmes : **command not found: pdflatex** : pdflatex n'est pas installé. Il va vous falloir installer toute l'architecture : texlive_, `texlive-latex-extra`_, `texlive-fonts-extra`_ et je conseille aussi `texlive-xelatex`_. **LaTeX Error File `fontawesome.sty` not found** : il vous manque la police awesome. Dans debian, elle est disponible dans le paquet `texlive-fonts-extra`_. .. _texlive: https://packages.debian.org/sid/texlive .. _texlive-xelatex: https://packages.debian.org/sid/texlive-xelatex .. _texlive-latex-extra: https://packages.debian.org/sid/texlive-latex-extra .. _texlive-fonts-extra: https://packages.debian.org/sid/texlive-fonts-extra .. _texlive-fonts-extra: https://packages.debian.org/sid/texlive-fonts-extra docutils -------- Ensuite assurez de disposer de docutils_ pour pouvoir lancer `rst2latex` ou `rst2latex.py` : .. code-block:: console $ rst2latex -V rst2latex (Docutils 0.12 [release], Python 2.7.10, on linux2) .. _docutils: https://packages.debian.org/sid/python3-docutils C'est parti ! ------------- .. figure:: {static}/images/package-x-generic.png :figclass: floatleft :alt: get the file :target: {static}/resources/cv.tar.gz Télécharger Vous trouverez dans l'archive un Makefile et l'exemple qui m'a servi à écrire illustrer l'article. Il suffit de lancer `make` pour produire le pdf du CV, plus un exemple de lettre d'accompagnement. Tous les fichiers `.rst` qui sont présent dans le répertoire où est lancé la commande seront automatiquement convertis en pdf. .. admonition:: Attention Le Makefile est configuré pour lancer xelatex au lieu de pdflatex (meilleure gestion des polices). Il faut changer la première ligne du fichier si vous souhaiter utiliser un autre moteur de rendu. Comment ça marche ? =================== En fait, la classe `moderncv` utilise des directives qui ne sont pas standard par mettre le cv en forme. Par conséquent, il n'est pas possible de l'utiliser directement avec `rst2latex`. On est obligé de construire son propre writer pour pouvoir produire une sortie qui soit compatible, c'est ce qui est contenu dans le fichier `bin/moderncv.py` de l'archive. (Je détaillerai comment se construire ses propres classes si on me le demande.) Voilà, il ne reste plus qu'à faire le votre !