From 9193be4390de89b9614ef0fe5d5a13d999e146a1 Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Sat, 3 Oct 2015 12:43:37 +0200 Subject: moderncv with rst --- content/Informatique/2015-10-03-moderncv.rst | 170 +++++++++++++++++++++++++++ content/images/cv/exemple.png | Bin 0 -> 109427 bytes content/resources/cv.tar.gz | Bin 0 -> 5644 bytes theme/static/css/main.css | 4 +- 4 files changed, 171 insertions(+), 3 deletions(-) create mode 100644 content/Informatique/2015-10-03-moderncv.rst create mode 100644 content/images/cv/exemple.png create mode 100644 content/resources/cv.tar.gz diff --git a/content/Informatique/2015-10-03-moderncv.rst b/content/Informatique/2015-10-03-moderncv.rst new file mode 100644 index 0000000..d337c6a --- /dev/null +++ b/content/Informatique/2015-10-03-moderncv.rst @@ -0,0 +1,170 @@ +.. -*- mode: rst -*- +.. -*- coding: utf-8 -*- + +===================== +Se faire un CV en rst +===================== + +:date: 2015-10-03 +:tags: reStructuredText, Libre +:summary: |summary| + +|summary| + +.. |summary| replace:: + + Je n'en fini 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:: {filename}/images/cv/exemple.png + + +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 http://blog.madrzejewski.com/wp-content/uploads/2013/01/moderncv-official-example.txt + $ pdflatex moderncv-official-example.txt + +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 : + +.. 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:: {filename}/images/package-x-generic.png + :figclass: floatleft + :alt: get the file + :target: {filename}/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 ! diff --git a/content/images/cv/exemple.png b/content/images/cv/exemple.png new file mode 100644 index 0000000..8f8917b Binary files /dev/null and b/content/images/cv/exemple.png differ diff --git a/content/resources/cv.tar.gz b/content/resources/cv.tar.gz new file mode 100644 index 0000000..8b14e38 Binary files /dev/null and b/content/resources/cv.tar.gz differ diff --git a/theme/static/css/main.css b/theme/static/css/main.css index 0d05438..8dabecf 100755 --- a/theme/static/css/main.css +++ b/theme/static/css/main.css @@ -94,6 +94,7 @@ pre, blockquote { pre { font-size: medium; + overflow:auto; max-width:650px } table { @@ -225,7 +226,6 @@ div#page { } nav#cssmenu { - width: 100%; padding-top: 2px; padding-bottom: 2px; } @@ -257,7 +257,6 @@ div#page { } section#content img { - max-width: 100%; max-height: 100%; } @@ -308,7 +307,6 @@ div#page { } #content>nav.pagination { - width: 100%; font-size: 14px; text-align: center; } -- cgit v1.2.3