Table des matières

Comment éviter les conflits de noms de commande de symbole?

Les polices de symboles sont souvent fournies avec une extension qui définit des commandes pour chaque symbole de la police. Bien que cela soit pratique, cela peut entraîner des difficultés, en particulier avec des conflits de noms lorsque vous chargez des extensions qui couvrent des polices qui dupliquent des symboles ou qui définissent de grands nombres de symboles. Voici quelques exemples de méthode pour éviter ce type de situation.

Une solution générale

Cette solution évitant les conflits de noms est présentée dans la question « Que signifie l'erreur « command already defined » ? ».

La mécanique de l'extension “pifont”

L'extension pifont, initialement conçue pour utiliser la police Adobe Zapf Dingbats, évite ce problème. Elle vous oblige pour cela à connaître la position dans la police de tout symbole que vous souhaitez utiliser (la documentation fournit des tableaux de polices). La commande de base est ainsi \ding{numéro de symbole}. Cette extension fournit par ailleurs d'autres commandes pour des utilisations plus sophistiquées et vous permet également de sélectionner d'autres polices, pour un usage similaire.

\documentclass{article}
  \usepackage{pifont}
 
\begin{document}
\ding{252} Voici un exemple de symbole: \ding{166}. 
\end{document}

\documentclass[12pt]{article}
  \usepackage{pifont}
  \usepackage[french]{babel}
  \pagestyle{empty}

\begin{document}
\ding{252} Voici un exemple de symbole: \ding{166}. 
\end{document}

La mécanique de l'extension “yagusylo”

L'extension yagusylo se décrit comme « une version étendue de pifont en technicolor ». Elle fournit toutes les fonctionnalités de pifont, mais vous permet en plus de créer vos propres noms mnémotechniques pour les symboles. Ainsi, alors que vous pouvez utiliser la commande \yagding[famille]{numéro de symbole}[couleur], vous pouvez également définir les noms de symboles avec la commande \defdingname, puis les utiliser avec la commande \yagding*{nom de symbole} (le nom défini porte la famille de polices et la couleur spécifiées dans les arguments de \defdingname).

\documentclass{article}
  \usepackage{yagusylo}
 
\begin{document}
Une planète Terre appelée par une commande générique: \yagding[marvosym]{109}[black].
 
\defdingname[marvosym][global]{109}{terre}[black]
Une planète Terre appelée par une nouvelle commande personnelle: \yagding*{terre}.
\end{document}

\documentclass[12pt]{article}
  \usepackage{yagusylo}
  \usepackage[french]{babel}
  \pagestyle{empty}

\begin{document}
Une planète Terre appelée par une commande générique: \yagding[marvosym]{109}[black].

\defdingname[marvosym][global]{109}{terre}[black]
Une planète Terre appelée par une nouvelle commande personnelle: \yagding*{terre}.
\end{document}


Les familles possibles sont:

Package Famille
pifont pifont
ifsym ifsym
ifsymgeo
ifsymgeonarrow
ifsymgeowide
ifsymweather
ifsymclock
marvosym marvosym
fourier fourier
wasysym wasysym
bbding bbding
dingbat dingbat
ark
L'extension yagusylo est sans doute un peu compliquée mais sa documentation est claire (et disponible en français). C'est probablement le meilleur outil à utiliser pour sélectionner et choisir des symboles parmi plusieurs familles de polices.

Source: Using symbols