Les outils pour retrouver un symbole LaTeX existent parce que les listes de symboles sont devenues trop longues à parcourir. Detexify, le service de reconnaissance où l’on dessine le signe, le dit lui-même dans sa présentation : chercher dans symbols-a4.pdf un symbole que l’on n’arrive pas à mémoriser prend trop de temps. Ce symbols-a4.pdf, c’est The Comprehensive LaTeX Symbol List ; la version fournie avec TeX Live 2024 compte 481 pages et 20 323 symboles. Cette page n’est pas une table de symboles de plus. C’est la boîte à outils qui répond à « quelle est la commande LaTeX du caractère que j’ai sous les yeux ? », rangée dans l’ordre où l’on s’en sert : amssymb, la liste Comprehensive, Detexify et, pour XeLaTeX et LuaLaTeX, unicode-math.
Dans quel paquet se trouve ce symbole ? D’abord amssymb
Pour un symbole mathématique absent du LaTeX standard, la réponse tient le plus souvent en une ligne : \usepackage{amssymb}. C’est un paquet de l’American Mathematical Society (AMS), et l’ouvrir a quelque chose de décevant : amssymb.sty (v3.01, 2013) n’est guère plus que deux cents lignes de \DeclareMathSymbol — un fichier dont tout le travail consiste à donner des noms à des glyphes déjà présents dans les polices de symboles de l’AMS. C’est aussi ce qui le distingue de amsmath, avec lequel on le confond sans cesse. amsmath s’occupe de la structure des formules (l’environnement align, la mécanique des fractions) ; amssymb ajoute les symboles eux-mêmes. Si le problème est « ce signe n’existe pas », c’est amssymb ; si c’est « mes équations ne s’alignent pas », c’est amsmath.
Si le fichier ne fait que distribuer des noms, où sont les glyphes ? Charger amssymb déclenche en interne \RequirePackage{amsfonts}, qui enregistre deux polices de symboles pour le mode mathématique : AMSa (nom NFSS U/msa, police msam10) et AMSb (U/msb, msbm10). amssymb.sty se contente ensuite de déclarer à quelle position de laquelle de ces deux polices renvoie chaque commande. L’intérêt pratique de cet enchaînement : \usepackage{amssymb} seul apporte aussi tout ce que fournit amsfonts — \mathbb (blackboard bold), \mathfrak (Fraktur), \hbar, \checkmark et \dashrightarrow sont à proprement parler définis du côté de amsfonts.sty, mais il n’est jamais nécessaire d’écrire \usepackage{amsfonts} en plus.
Quant à savoir si ce que l’on cherche a des chances de se trouver dans amssymb, cinq familles suffisent à trancher. Si la forme visée n’entre dans aucune d’elles — un signe de musique, un élément de circuit, une pièce d’échecs —, parcourir amssymb est du temps perdu : mieux vaut passer directement à la Comprehensive LaTeX Symbol List de la section suivante.
- Relations supplémentaires. Variantes et cousines des relations standard :
\leqslant(« inférieur ou égal » incliné) et\geqslant,\lesssimet\gtrsim, les\subseteqqet\supseteqqà double barre. - Relations niées. Glyphes dédiés dont la barre oblique est déjà tracée :
\nleq(non inférieur ou égal),\ngeq,\nsim,\nsubseteq,\nmid(ne divise pas). - Flèches supplémentaires. Flèches décoratives comme
\twoheadrightarrow(à deux têtes = surjection),\rightrightarrows(paire côte à côte),\rightsquigarrow(ondulée) et\dashrightarrow(en pointillés). - Symboles divers.
\varnothing(ensemble vide arrondi),\square/\blacksquare,\complement(complémentaire),\nexists,\circledast, entre autres. - Lettres hébraïques.
\beth,\gimelet\daleth, employées pour les cardinaux. Seul\alephfigure déjà dans le LaTeX standard.
\usepackage{amssymb} % extra relations, negations, arrows, misc symbols, Hebrew
% ...
\[ 0 \leqslant x \lesssim 1, \qquad a \nmid b, \qquad A \subseteqq B \]
\[ f \colon X \twoheadrightarrow Y, \qquad \varnothing \ne S, \qquad \aleph_0 < \beth_1 \]\leqslant et \nleq : relations et négations dans amssymb
Des cinq familles, ce sont les variantes de relations et les négations que l’on emploie tous les jours. Le \leqslant incliné (⩽) est la forme que beaucoup d’ouvrages de mathématiques préfèrent au \leq horizontal (≤) ; une fois le choix fait, il doit rester constant dans tout le document — un article où ≤ et ⩽ cohabitent se lit comme si l’on distinguait deux relations différentes. Même discipline pour les négations : lorsqu’un glyphe dédié existe, on l’utilise. Le tableau ci-dessous est représentatif et non exhaustif (tout y nécessite amssymb).
| Commande | Glyphe | Sens (toutes nécessitent amssymb) |
|---|---|---|
\leqslant | ⩽ | inférieur ou égal (variante inclinée) |
\geqslant | ⩾ | supérieur ou égal (variante inclinée) |
\lesssim | ≲ | inférieur ou similaire à |
\gtrsim | ≳ | supérieur ou similaire à |
\subseteqq | ⫅ | sous-ensemble, avec barre d’égalité doublée |
\nleq | ≰ | non inférieur ou égal |
\ngeq | ≱ | non supérieur ou égal |
\nsim | ≁ | non similaire à |
\nsubseteq | ⊈ | non sous-ensemble ou égal |
\nmid | ∤ | ne divise pas |
\nparallel | ∦ | non parallèle |
Une relation sans forme niée dédiée se nie sur place en la préfixant par \not (comme \not\equiv). Mais \not ne fait que superposer une barre de taille et de pente fixes : sur certains glyphes, le trait se décale du centre et le résultat est disgracieux — c’est exactement pour cela que des glyphes dédiés comme \nleq existent. À l’inverse, \ne (≠) et \notin (∉) possèdent leurs propres commandes dans le LaTeX standard et ne demandent ni amssymb ni \not. La manière dont les relations réservent de l’espace de part et d’autre, ainsi que le comportement fin de \not, sont traités dans la page « Symboles de relation ».
\varnothing, \twoheadrightarrow, ℶ : flèches et divers d’amssymb
Dans les trois familles restantes, l’œil s’arrête sur les glyphes dont la forme énonce déjà le sens. Le \twoheadrightarrow (↠) à double pointe désigne une surjection, le \rightarrowtail (↣) à queue une injection : « recouvre tout » et « se glisse par en dessous », dessinés tels quels. Parmi les divers, l’ensemble vide arrondi \varnothing (∅) est souvent préféré au \emptyset standard, et une démonstration se clôt par \square (□) ou \blacksquare (■).
| Commande | Glyphe | Sens / notes (toutes nécessitent amssymb) |
|---|---|---|
\twoheadrightarrow | ↠ | flèche droite à deux têtes ; surjection |
\rightarrowtail | ↣ | flèche droite avec queue ; injection |
\rightrightarrows | ⇉ | deux flèches droites côte à côte |
\rightsquigarrow | ⇝ | flèche droite ondulée |
\varnothing | ∅ | ensemble vide arrondi (variante de \emptyset) |
\square | □ | carré blanc / fin de preuve (QED) |
\blacksquare | ■ | carré noir |
\complement | ∁ | complémentaire d’un ensemble |
\nexists | ∄ | n’existe pas (négation de ∃) |
\checkmark | ✓ | coche (depuis amsfonts) |
\beth | ℶ | beth hébreu (cardinaux) |
\gimel | ℷ | gimel hébreu |
\daleth | ℸ | daleth hébreu |
Les lettres hébraïques servent de cardinaux (cardinalités infinies) en théorie des ensembles. Seul \aleph (ℵ) appartient au LaTeX standard ; \beth, \gimel et \daleth réclament amssymb. Les variantes grecques \digamma (ϝ) et \varkappa (ϰ) viennent de la même source et sont traitées dans la page « Lettres grecques ». On l’aura remarqué : chaque tableau de cette page n’est qu’un échantillon. Les listes exhaustives des flèches, des symboles divers et des relations se trouvent sur les pages de catégorie correspondantes ; le rôle de cette page méta est d’indiquer où chercher.
The Comprehensive LaTeX Symbol List : trouver un symbole parmi 25 000
Lorsque le symbole n’est même pas dans amssymb, ou qu’il faut déterminer quel paquet le contient, la réponse définitive est The Comprehensive LaTeX Symbol List de Scott Pakin. Sur CTAN, le paquet s’appelle comprehensive et il est diffusé sous LPPL. Son effectif croît d’édition en édition : d’après CTAN, la version 16.0, parue en avril 2026, a franchi les 25 000 symboles. Même l’édition présente dans une installation TeX Live 2024 en aligne 20 323 sur 481 pages — soit précisément le luxueux problème d’un catalogue devenu trop vaste pour être feuilleté.
Deux portes d’entrée empêchent ce volume d’intimider. La première est la section « Frequently Requested Symbols » placée tout au début : si le glyphe cherché s’y trouve, l’affaire est réglée en quelques secondes. La seconde est le découpage en chapitres, qui taille la matière par domaine : symboles de texte courant, symboles mathématiques, symboles scientifiques et techniques, dingbats, langues anciennes, symboles musicaux, symboles de jeux, symboles géographiques. Apprendre qu’un répertoire de symboles LaTeX comporte un chapitre sur les langues anciennes et un autre sur les jeux a l’air d’une plaisanterie ; mais cette édition puise ses glyphes dans 225 fontes distinctes, et cette ampleur en découle. Cerner le domaine, puis confirmer la commande dans les tables par paquet : c’est le chemin le plus court.
# open the copy already installed with TeX Live / MiKTeX -- no network needed
texdoc comprehensive
# or name the PDF directly (symbols-letter for US Letter paper)
texdoc symbols-a4La liste est fournie avec TeX Live comme avec MiKTeX : on l’ouvre localement, sans réseau. Mais y figurer n’est pas être utilisable tout de suite : beaucoup de ces symboles ne se composent qu’après installation d’une police ou d’un paquet dédié, et le document le précise dès l’ouverture. Une autre section fait ses preuves au quotidien : « Symbol Name Clashes », vers la fin. Quand on charge deux paquets de symboles à la fois et que surgit ! LaTeX Error: Command \... already defined, c’est le seul endroit qui indique quel paquet revendique quel nom.
Detexify : dessiner le symbole, obtenir la commande LaTeX
On ne connaît ni le nom ni le domaine d’un symbole et l’on n’en connaît que la forme — la situation où un découpage par domaine ne sert à rien. C’est pour elle qu’a été construit Detexify. On dessine le signe dans un cadre, à la souris ou au doigt, et l’outil classe les commandes LaTeX dont la forme s’en rapproche le plus. L’idée revient à Philipp Kühl, la réalisation à Daniel Kirsch. Detexify expose lui-même sa motivation, et le coupable est justement le PDF de 481 pages de la section précédente : chercher dans symbols-a4.pdf un symbole que l’on ne retient pas prend trop de temps. La liste de symboles a tellement enflé qu’elle a fini par engendrer un outil permettant de ne pas la consulter.
Sous le capot, l’apprentissage automatique est sans prétention. Selon les explications de Kirsch lui-même, un dessin arrive sous forme de traits — des suites de points portant une position et un horodatage — dont on extrait des caractéristiques comme le nombre de traits, la densité de points et l’information directionnelle. La classification est ensuite celle des k plus proches voisins : les échantillons manuscrits accumulés sont triés par proximité dans cet espace de caractéristiques, et l’on compte les voisins jusqu’à ce que cinq symboles distincts soient apparus. Étant statistique, l’outil ne tombe pas juste à tous les coups ; l’atout pratique est que chaque candidat affiche le paquet requis, si bien qu’identifier le glyphe règle du même coup la ligne \usepackage. Le site est detexify.kirelabs.org ; les données d’entraînement sont publiques, et chaque bonne réponse confirmée améliore un peu la suivante.
Quand surgit Too many math alphabets used in version normal
À force d’ajouter des paquets de symboles, la composition finit par s’arrêter sur ! LaTeX Error: Too many math alphabets used in version normal. La cause n’est pas le nombre de symboles mais le nombre d’emplacements pour polices mathématiques. LaTeX ne peut en tenir que seize (\e@mathgroup@top, dans le fichier noyau latex.ltx, vaut 16), et amssymb à lui seul en consomme deux — AMSa et AMSb —, tandis que \mathfrak en prend un de plus et que le \tcdigitoldstyle de mathcomp, vu plus bas, en prend encore un. Le chiffre seize vient directement de la conception de TeX : TeX encode un caractère mathématique en classe, emplacement de police et position, et l’emplacement de police a reçu quatre bits — soit seize possibilités.
Deux issues. La première : charger moins de paquets. Les paquets de symboles se disputent non seulement les emplacements mais aussi les noms de commandes, et amssymb s’efface de lui-même si stix a été chargé avant, en avertissant qu’il est redondant et ne se chargera pas. La seconde : changer de moteur. XeLaTeX et LuaLaTeX portent la limite à 256 emplacements, et avec unicode-math de Will Robertson et de ses collaborateurs le calcul change du tout au tout : une seule police mathématique OpenType porte des milliers de glyphes, si bien qu’on ne dépense plus un emplacement à chaque nouvel apport de symboles. Le fichier unicode-math-table.tex qui l’accompagne associe un nom de commande à 2 448 caractères mathématiques Unicode — U+2200, par exemple, correspond à \forall. L’inconvénient : unicode-math ne fonctionne pas avec pdfLaTeX.
% XeLaTeX or LuaLaTeX only -- one OpenType font carries thousands of glyphs
\usepackage{unicode-math}
\setmathfont{latinmodern-math.otf}
% ...
\[ \forall \varepsilon > 0,\ \exists \delta > 0 \]Composer ℃, Ω et µ droits dans une formule (mathcomp / textcomp)
Mêler des unités aux mathématiques soulève un problème sans rapport avec la recherche d’un symbole : en mode mathématique, un µ est composé comme une variable inclinée, alors que le préfixe micro d’une unité doit être droit. Le petit paquet qui corrige cela s’appelle mathcomp. Avec \usepackage{mathcomp}, \tcmu (µ), \tcohm (Ω), \tccelsius (℃) et compagnie deviennent disponibles en mode mathématique. La règle de nommage est simple : on prend l’équivalent du mode texte, \textmu ou \textdegree, et l’on remplace text par tc (text companion).
Le tc vient de l’encodage TS1 (Text Companion). Il fut un temps où \usepackage{textcomp} était obligatoire pour obtenir \textdegree (°) ou \textperthousand (‰) dans le texte courant ; mais, comme le consigne LaTeX News 31, la version de 2020 a intégré les symboles TS1 au noyau, et ils fonctionnent désormais dans le texte sans charger textcomp. textcomp conserve toutefois une utilité : écrit \usepackage[error]{textcomp} ou avec [warn], il signale par une erreur ou un avertissement LaTeX toute glyphe absente de la police et remplacée d’office. Le mode mathématique, en revanche, n’a pas été automatisé de la même façon : pour des symboles d’unités droits dans une formule, mathcomp reste nécessaire.
| Commande (mathcomp) | Glyphe | Sens |
|---|---|---|
\tcohm | Ω | ohm (unité de résistance) ; droit |
\tcmu | µ | signe micro (le µ de µm) ; droit |
\tcdegree | ° | signe degré |
\tccelsius | ℃ | degrés Celsius (\tccentigrade est synonyme) |
\tcperthousand | ‰ | pour mille |
\tcpertenthousand | ‱ | pour dix mille (point de base) |
\usepackage{mathcomp} % loads textcomp and adds the \tc... commands for math mode
% ...
\[ R = 4.7\,\mathrm{k}\tcohm, \qquad d = 25\,\tcmu\mathrm{m}, \qquad T = 37\,\tccelsius \]mathcomp fournit exactement ces six symboles, plus \tcdigitoldstyle{0} … \tcdigitoldstyle{9} pour les chiffres elzéviriens, et une option choisit la fonte (\usepackage[ppl]{mathcomp} pour les polices TC de Palatino). Une mise en garde : \tcohm (Ω) est un caractère différent de la capitale grecque \Omega, et c’est le premier qui constitue le symbole d’unité correct. Le calcul des emplacements vu plus haut s’applique ici aussi : \tcdigitoldstyle occupe un emplacement de police mathématique et peut, dans un document déjà chargé de paquets de symboles, être la goutte de trop. Et pour composer des unités sérieusement, confier le travail à siunitx va plus vite que de glaner les symboles un à un : il gère aussi l’espace entre la valeur et l’unité ainsi que l’assemblage des unités composées (voir la page « Unités (siunitx) »).