Réalisation d’un CV en langage LaTeX avec le package ModernCV

Introduction

Je n’avais rien écrit sur ce blog depuis un moment, récemment j’ai eu l’idée de m’intéresser au langage \LaTeX, il faut dire que j’aime pas vraiment me prendre la tête avec les systèmes de mise en page des traitements de texte


Je trouve que c’est une grosse perte de temps pour un résultat moyen, si ça peut passer pour un petit document de quelques pages, pas trop important
C’est beaucoup plus gênant pour un gros dossier de projet ou pour un CV, où parfois on galère parfois à obtenir une mise en page suffisamment propre \LaTeX me semblai être la solution à ce problème, mais en fait \LaTeX est bien plus puissant et plus simple que ce que je m’y attendais, il reste accessible aux non-informaticiens, et permet de gagner en productivité et en qualité
Évidemment, si j’en parle, c’est que c’est libre, et donc interopérable que demander de plus ? Il a largement sa place sur ce blog

Pourquoi \LaTeX : historique et présentation

Les traitements de texte classiques sont certes utiles, mais parfois chiants à utiliser pour les gros documents (rapport de stages) ou des documents qui demandent une mise en page soignée tels que les CV ou un gros dossier pour des examens par exemple
On y passe généralement plus de temps à se prendre la tête avec la mise en page qu’à se concentrer sur le contenu
Et jusqu’à preuve du contraire, la plupart des gens qui se servent de traitement de texte ne sont pas des experts niveau PAO, en plus de la productivité, c’est aussi la qualité qui en pâti
Pour compenser à ce genre de limites, surtout d’un point de vue équa mathématique le langage TeX à été crée en 1977 par le mathématicien et programmeur Donald Knuth, un génie méconnu du grand publique avec un excellent sens de l’humour geek
Sa blague “256 cents font 1 dollar hexadécimal” est juste énorme !

Ce langage est encore d’actualité contrairement à ce qu’on pourrait croire, la dernière version stable date de janvier 2014, très peu d’outils informatiques arrivent à couvrir les besoins des utilisateurs tant d’années après leurs création
\LaTeX, à été crée à partir de TeX, en 1983 par Leslie Lamport, d’où le nom \LaTeX, contraction de Lamport et de TeX, il s’agit plus exactement d’une version simplifiée et donc accessible du langage TeX

De plus malgré des éditeurs d’équations tels que LibreOffice Math, qui sont pour rappel, relativement récents par rapport à \LaTeX, ce langage garde un avantage sur ce type d’outils, plus complet, il permet une meilleur productivité que les clickodromes et une meilleure qualité typographique
Ce qu’il fait que ce langage est très utilisé par les mathématiciens et par les chercheurs qui manipulent beaucoup d’équations, parfois même pour la rédaction de livres ne concernant pas les sciences dures
Je parlerai mêmes pas des éditeurs d’équations proprio, on m’as passé quelques documents ODF contenant des équations issues de logiciels propriétaires même si Open/LibreOffice a son propre éditeur d’équation, plutôt correcte…
Le copier-coller depuis les softs privateurs tels que MathType (windows et Mac OS seulement), donne en guise de “support de OpenOffice” des images contenant les équation, au ratio foireux, avec un rendu bien dégueulasse… j’oserai pas faire un screenshot, c’est immonde
En plus d’avoir des équations des équations non modifiables (images) et de ne pas pouvoir lire le fichier original (si toute fois la personne qui l’à écrit l’à enregistrer en plus du copier-coller) par la plupart des personnes car ils ne possèdent pas de tel logiciels obscurs et couteux (MathType $97 à l’achat et $57 pour la licence étudiant), parfois on doit y passer un temps fou à redimensionner les images pour avoir un truc à peu près lisibles, à ce prix là ne même pas utiliser un format propre c’est du foutage de gueule…
De plus les clickodromes types WYSIWYG sont clairement moins rapides à utiliser que les commandes de OpenOffice/LibreOffice ou mieux encore, celles de \LaTeX, mais passons

\LaTeX permet d’avoir l’interopérabilité mais aussi une mise en page optimisée selon le type de document qu’on choisit de rédiger (par exemple une lettre avec la classe letter ou rapport en utilisant report) et permet de modifier la mise en page en cas de besoin de façon plus flexible qu’un traitement de texte classique
Il est également extensible avec pleins de packages qui offrent de nouvelles possibilités, avec par exemples des classes qui permettent une rédaction rapide d’un CV propre et présentable, sans trop se prendre la tête

Installation d’une distribution \LaTeX et du package ModernCV

Si vous êtes sous windows ou OS X, je vous invite à faire une petite recherche avec votre moteur favoris pour voir comment installer une distribution \LaTeX et les packages \LaTeX
Si vous êtes sous un système de type GNU/Linux, suivez les instructions suivantes

Pour les distrib Debian-like faites la commande apt-get install texmaker texlive-full

Pour les autres, utilisez votre package manager préféré pour récupérer les mêmes paquets (ou équivalents)

Vous pouvez bien sur remplacer texmaker par l’éditeur de votre choix, Kile par exemple

Une fois l’installation de distro \LaTeX finie, nous allons nous intéresser au package moderncv, que vous allez téléchargez avant de passer à la suite (lien précédent)
Il s’agit d’une classe écrite par Xavier Danaud et disponible sous la Licence libre LPPL 1.3 permettant d’écrire un CV facilement
Une fois que vous aurez décompresser l’archive
Normalement chaque package met les différents fichiers dans leurs dossier qui sera situé là ou vous l’aurez décompressé, et non pas directement dans le dossier courant, ce qui évite de foutre le bordel dans ledit dossier
D’ailleurs c’est toujours le cas si vous utilisez la commande tar pour le décompresser

Repérez ensuite le dossier contenant les packages \LaTeX sous votre distrib, il doit normalement contenir des dossiers avec des noms tels que asymptote et beamer et des fichiers avec comme extension (entre autre, selon les packages) .sty

Mon installation de distribution \LaTeX à été faite sur une machine sous Mint, et le dossier que je cherche est /usr/share/texmf/tex/latex/

On va donc y mettre les le dossier moderncv (celui que vous aurez obtenu en décompressant l’archive précédemment téléchargée) grâce aux commande suivantes

Se logger comme root
$ su

Se placer dans le répertoire contenant le dossier moderncv, dans ce cas le répertoire Downloads de l’utilisateur connecté
# cd /home/$USER/Downloads

Mettre le dossier moderncv dans /usr/share/texmf/tex/latex/  (ou équivalent pour votre distro GNU/Linux)
# mv moderncv /usr/share/texmf/tex/latex/

Mettre à jour la base de données de kpathsea pour que \LaTeX prenne en compte les nouveaux packages, avec l’une des commandes suivantes, au choix
# mktexlsr
# texhash

On passe à la réalisation du CV (enfin !)

La classe moderncv offre 4 mises en pages différentes (casual, classic, oldstyle, et banking) que vous choisirez dans le champs qui va bien
Vous avez également un choix entre plusieurs formats de pages tel que a4, a5, format lettre…, plusieurs polices de caractères et 7 couleurs, bleu, orange, vert, rouge, violet, gris et noir (je pense qu’il vaut mieux éviter les couleurs trop tapageuses quand même… )
Et la plupart des commandes utilisent le moins d’arguments obligatoires possibles, ce qui veut dire que la plupart des champs sont optionnels et peuvent rester vides si vous ne souhaitez pas les utilisez, voire même ne pas utilisez du tout certaines commandes tel que les numéros de fax, comptes GitHub, Twitter, LinkedIn et info additionnels ou certaines parties du contenu même du CV

Vous allez utiliser une template (fichier squelette) avec tout le minimum de code nécessaire pour compiler le .tex sans erreur ni sans ajouter du code
La template est téléchargeable ici et contient des commentaires pour vous guider dans le remplissage des champs
Vous n’aurez qu’à paramétrer l’apparence de votre CV, traduire les titres et remplir les champs selon votre profil

Vous pouvez passer à la pratique maintenant, histoire de vous donnez un aperçu du résultat
Voici à quoi ressemble le fichier template.tex compilé sans modification du contenu et le résultat que j’ai obtenu en testant la classe moderncv

A noter que j’ai utiliser des packages supplémentaires et options suivantes pour la gestion de l’UTF8, pour la gestion les caractères accentués directement depuis le clavier sans devoir passer la syntaxe propre à \LaTeX (il fut un temps ou y avait pas cette possibilité) et pour la gestion des documents rédigées en français

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}