Lorsque vous générez un PDF avec LaTeX, les
petits détails visuels comptent énormément. La classe
moderncv ajoute des icônes à côté des champs
de contact (téléphone, email, site web, etc.), ce qui donne un rendu soigné, mais
certaines personnes préfèrent un en-tête plus minimaliste. D’autres doivent
respecter des modèles d’entreprise qui interdisent les pictogrammes. Cet article
explique ce qu’est moderncv, quelle bibliothèque d’icônes elle utilise, comment
les masquer, et comment le macro LaTeX \renewcommand rend cela possible.
1. Qu’est-ce que moderncv ?
moderncv est une classe de document LaTeX
spécifiquement conçue pour les CV et les résumés professionnels. Elle fournit
une mise en page cohérente et professionnelle, ainsi qu’un ensemble de macros de
haut niveau pour formater les éléments classiques d’un CV : nom, titre,
coordonnées, titres de sections et entrées de parcours. Comparée à un document
LaTeX brut, moderncv offre un système de mise en forme prêt à l’emploi, avec
plusieurs variantes de style (comme banking, classic ou casual) et une
hiérarchie visuelle adaptée aux CV d’une page.
Un en-tête moderncv typique ressemble à ceci :
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}La classe interprète ces commandes et affiche un en-tête propre. Par défaut,
moderncv affiche également des icônes à côté de chaque élément, ce qui facilite
la lecture rapide des informations de contact.
2. Quelle bibliothèque d’icônes utilise moderncv ?
moderncv fournit des icônes via le package
fontawesome5. Font
Awesome est un ensemble d’icônes très populaire, et
fontawesome5 le rend accessible dans LaTeX avec des commandes comme
\faEnvelope, \faMobileAlt et \faGlobe. Dans moderncv, ces icônes sont
câblées à des macros de “symbole” comme \emailsymbol et \homepagesymbol.
Quand vous utilisez \email{...} ou \homepage{...}, la classe préfixe le
symbole correspondant, qui utilise un glyphe Font Awesome.
Comme les icônes passent par ces macros, vous pouvez les remplacer ou les supprimer sans modifier le contenu de contact. Cette séparation entre contenu et décoration permet d’obtenir un style plus épuré avec quelques redéfinitions.
3. Comment masquer les icônes dans moderncv
La méthode la plus propre consiste à redéfinir les macros de symbole en chaînes
vides. En LaTeX, \renewcommand permet de remplacer une macro existante par un
nouveau comportement. Si vous définissez chaque symbole moderncv à vide, les
libellés restent, mais les icônes disparaissent.
Voici le fragment minimal à placer dans le préambule, après le chargement de
moderncv :
% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}C’est exactement l’approche utilisée par le renderer moderncv de
YAMLResume. Dans YAMLResume
v0.10, le préambule LaTeX
insère optionnellement
ces lignes \renewcommand* lorsqu’une option de layout dans advanced, appelée
showIcons, est définie sur false. Ainsi, la sortie PDF peut activer ou
masquer les icônes sans toucher au contenu du CV.
Voici le CV moderncv sans icônes :
![]()
Le bloc LaTeX pertinent ressemble à ceci :
Si vous utilisez YAMLResume, vous pouvez piloter ce comportement via la configuration de layout et laisser le renderer injecter ces overrides automatiquement. Si vous écrivez du LaTeX à la main, copiez simplement le fragment dans votre préambule. Dans les deux cas, le résultat est le même : le texte reste, mais les pictogrammes disparaissent.
Pourquoi cela fonctionne
moderncv définit un ensemble de macros pour chaque icône. Par exemple,
\emailsymbol sert à afficher l’icône email. Lorsque vous redéfinissez ce macro
avec {}, LaTeX l’expand toujours, mais n’imprime rien. Vous ne supprimez pas
l’email ; vous supprimez uniquement la décoration qui le précède.
Astuce : masquer les icônes sociales
Si vous ajoutez des icônes manuellement dans des champs personnalisés (par
exemple avec \faGithub ou \faTwitter), vous pouvez aussi les supprimer en ne
les appelant pas. Dans le renderer YAMLResume, cela se fait en vérifiant un
drapeau showIcons avant d’insérer les glyphes Font Awesome pour les profils
sociaux. Le principe est identique : conserver le contenu du \href et omettre
le préfixe d’icône.
4. Qu’est-ce que le macro \renewcommand ?
LaTeX utilise des macros pour définir le comportement des commandes. Le macro
\newcommand crée une nouvelle commande, tandis que \renewcommand redéfinit
une commande existante. Pensez-y comme à “remplacer cette commande par une
nouvelle implémentation”.
La syntaxe est :
\renewcommand{\commandname}{replacement}La version étoilée \renewcommand* se comporte de manière similaire, mais elle
indique à LaTeX de ne pas autoriser de saut de paragraphe dans le texte de
remplacement. Pour des macros de symbole courts comme \emailsymbol, l’étoile a
peu d’impact pratique, mais elle est fréquente dans les classes et modèles.
Dans moderncv, les macros d’icône sont déjà définis, donc vous devez utiliser
\renewcommand plutôt que \newcommand. Si vous tentez de redéfinir une macro
existante avec \newcommand, LaTeX renverra une erreur. C’est pourquoi le patch
utilise :
\renewcommand*{\emailsymbol}{}Cette ligne signifie : “remplacer la définition existante de \emailsymbol par
une chaîne vide”. Le reste de la classe fonctionne toujours, car \email{...}
continue de s’étendre correctement ; il n’ajoute simplement plus l’icône.
Pour résumer
moderncvest une classe LaTeX pour CVs avec des macros structurés et de bons réglages par défaut.- Elle utilise le package
fontawesome5pour les icônes, exposés via des macros comme\emailsymbolet\homepagesymbol. - Vous pouvez masquer les icônes en redéfinissant ces macros en chaînes vides
avec
\renewcommand*. \renewcommandest le mécanisme LaTeX pour surcharger des macros existants.
Si vous voulez un en-tête minimaliste sans pictogrammes, cette approche est la
plus robuste. Elle reste aussi compatible avec l’avenir : si vous changez de
style ou ajoutez de nouveaux champs, il suffit de redéfinir les symboles
correspondants. Et au passage, cette option advanced.showIcons fonctionne pour
le moteur HTML comme pour le moteur
LaTeX.
Written by
Xiao HanyuAt
Wed Jan 21 2026