The tools for finding LaTeX symbols exist because the symbol lists grew too long to search. Detexify, the draw-it-and-find-it recogniser, says exactly that in its own blurb: hunting through symbols-a4.pdf for a symbol you cannot memorise eats time. That symbols-a4.pdf is The Comprehensive LaTeX Symbol List, and the copy bundled with TeX Live 2024 runs to 481 pages listing 20,323 symbols. This page is not another symbol table. It is the toolkit for answering “what is the LaTeX command for the character in front of me right now,” arranged in the order you should reach for it — amssymb, the Comprehensive list, Detexify, and, for XeLaTeX and LuaLaTeX, unicode-math.
Which package has that symbol? Start with amssymb
For a mathematical symbol that standard LaTeX lacks, the answer is usually the single line \usepackage{amssymb}. It is a package from the American Mathematical Society (AMS), and opening it up is almost an anticlimax: amssymb.sty (v3.01, 2013) is little more than two hundred \DeclareMathSymbol lines — a file whose whole job is to give names to glyphs that already sit in the AMS symbol fonts. That is also the difference from amsmath, which people constantly conflate with it. amsmath handles the structure of mathematics (the align environment, the fraction machinery); amssymb adds the symbols themselves. If your problem is “this symbol does not exist,” reach for amssymb; if it is “these equations will not line up,” reach for amsmath.
If the file only hands out names, where do the glyphs live? Loading amssymb runs \RequirePackage{amsfonts} internally, which registers two symbol fonts for math: AMSa (NFSS name U/msa, font msam10) and AMSb (U/msb, msbm10). amssymb.sty then declares which slot in which of those two fonts each command points at. The practical payoff of that chain is that \usepackage{amssymb} alone also drags in everything amsfonts provides — \mathbb (blackboard bold), \mathfrak (Fraktur), \hbar, \checkmark and \dashrightarrow are strictly defined on the amsfonts side, but you never need to write \usepackage{amsfonts} separately.
And whether your quarry is likely to be in amssymb at all can be judged from five families. If the shape you want fits none of them — a musical sign, a circuit element, a chess piece — then scanning amssymb is wasted time, and you should jump straight to the Comprehensive LaTeX Symbol List in the next section.
- Extra relations. Variants and cousins of the standard relations:
\leqslant(slanted “less-or-equal”) and\geqslant,\lesssimand\gtrsim, the double-barred\subseteqqand\supseteqq. - Negated relations. Dedicated glyphs with the slash already drawn through them:
\nleq(not less-or-equal),\ngeq,\nsim,\nsubseteq,\nmid(does not divide). - Extra arrows. Decorative arrows such as
\twoheadrightarrow(two-headed = surjection),\rightrightarrows(side-by-side pair),\rightsquigarrow(squiggly) and\dashrightarrow(dashed). - Miscellaneous symbols.
\varnothing(rounded empty set),\square/\blacksquare,\complement,\nexists,\circledast, and more. - Hebrew letters.
\beth,\gimeland\daleth, used for cardinals.\alephalone is already in standard LaTeX.
\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 and \nleq: relations and negations in amssymb
Of the five families, the relation variants and negations are the ones you reach for daily. The slanted \leqslant (⩽) is the shape many mathematics books prefer over the horizontal \leq (≤), and once you pick one, use it consistently throughout the document — a paper in which ≤ and ⩽ both appear reads, to the reader, as though two different relations were being distinguished. The same discipline applies to negations: where a dedicated glyph exists, use it. The table below is representative rather than exhaustive (everything in it needs amssymb).
| Command | Glyph | Meaning (all need amssymb) |
|---|---|---|
\leqslant | ⩽ | less than or equal (slanted variant) |
\geqslant | ⩾ | greater than or equal (slanted variant) |
\lesssim | ≲ | less than or similar to |
\gtrsim | ≳ | greater than or similar to |
\subseteqq | ⫅ | subset, with doubled equals bar |
\nleq | ≰ | not less than or equal |
\ngeq | ≱ | not greater than or equal |
\nsim | ≁ | not similar to |
\nsubseteq | ⊈ | not a subset-or-equal |
\nmid | ∤ | does not divide |
\nparallel | ∦ | not parallel |
A relation with no dedicated negated form can be negated on the spot by prefixing \not (as in \not\equiv). But \not merely overlays a slash of fixed size and slope, so on some glyphs the stroke sits off-centre and looks wrong — which is precisely why dedicated glyphs like \nleq exist. Conversely, \ne (≠) and \notin (∉) have their own commands in standard LaTeX and need neither amssymb nor \not. How relations claim space on either side, and the finer behaviour of \not, are covered on the “Relation symbols” page.
\varnothing, \twoheadrightarrow, ℶ: amssymb arrows and odds and ends
In the remaining three families, the eye is drawn to glyphs whose shape states their meaning. The double-barbed \twoheadrightarrow (↠) is a surjection and the tailed \rightarrowtail (↣) an injection — “covers everything on top” and “slips in from below” drawn as pictures. Among the odds and ends, the rounded empty set \varnothing (∅) is often preferred to the standard \emptyset, and a proof is closed with \square (□) or \blacksquare (■).
| Command | Glyph | Meaning / notes (all need amssymb) |
|---|---|---|
\twoheadrightarrow | ↠ | two-headed right arrow; surjection |
\rightarrowtail | ↣ | right arrow with tail; injection |
\rightrightarrows | ⇉ | two right arrows side by side |
\rightsquigarrow | ⇝ | squiggly right arrow |
\varnothing | ∅ | rounded empty set (variant of \emptyset) |
\square | □ | white square / end-of-proof (QED) |
\blacksquare | ■ | black square |
\complement | ∁ | set complement |
\nexists | ∄ | does not exist (negation of ∃) |
\checkmark | ✓ | check mark (from amsfonts) |
\beth | ℶ | Hebrew beth (cardinals) |
\gimel | ℷ | Hebrew gimel |
\daleth | ℸ | Hebrew daleth |
The Hebrew letters serve as cardinals (infinite cardinalities) in set theory. Only \aleph (ℵ) is in standard LaTeX; \beth, \gimel and \daleth need amssymb. The Greek variants \digamma (ϝ) and \varkappa (ϰ) come from the same place and are covered on the “Greek letters” page. By now you will have noticed that every table on this page is a sampler. The exhaustive listings for arrows, miscellaneous symbols and relations live on their own category pages; the job of this meta page is to tell you where to look.
The Comprehensive LaTeX Symbol List: finding one symbol among 25,000
When the symbol is not even in amssymb, or when you need to pin down which package contains it, the definitive answer is The Comprehensive LaTeX Symbol List by Scott Pakin. On CTAN the package is called comprehensive and it is distributed under the LPPL. Its count has grown edition after edition: according to CTAN, version 16.0, released in April 2026, passed 25,000 symbols. Even the edition sitting in a TeX Live 2024 installation holds 20,323 of them across 481 pages — which is exactly the luxurious problem of a catalogue too big to browse.
Two entry points keep that size from being intimidating. The first is the “Frequently Requested Symbols” section right at the front — if your glyph is there, you are done in seconds. The second is the chapter structure, which cuts the material by field: body-text symbols, mathematical symbols, science and technology symbols, dingbats, ancient languages, musical symbols, gaming symbols, geographical symbols. Being told that a LaTeX symbol reference has chapters on ancient languages and on games sounds like a joke, but this edition draws its glyphs from 225 separate typefaces, so that breadth follows. Narrow down by field, then confirm the command in the by-package tables: that is the shortest route.
# 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-a4The list ships with both TeX Live and MiKTeX, so you can open it locally with no network. But being listed is not the same as being usable: many of these symbols only typeset once you install a dedicated font or package, and the document says so up front. One more section earns its keep in daily work — “Symbol Name Clashes” near the back. When you load two symbol packages at once and hit ! LaTeX Error: Command \... already defined, this is the one place that tells you which package is claiming which name.
Detexify: draw the symbol, get the LaTeX command
You know neither the name nor the field of a symbol and only know its shape — the situation in which chapters-by-field are no help at all. Detexify was built for exactly that. Draw the symbol in a box with a mouse or a finger and it ranks the LaTeX commands whose shapes come closest. The idea was Philipp Kühl’s; Daniel Kirsch built it. Detexify states its own motivation, and the culprit is precisely the 481-page PDF from the previous section: searching symbols-a4.pdf for a symbol you cannot memorise takes too long. The symbol list grew so large that it produced a tool for not reading it.
Under the hood it is unpretentious machine learning. By Kirsch’s own account, a drawing arrives as strokes — sequences of points carrying a position and a timestamp — from which features such as the number of strokes, point density and directional information are extracted. Classification is then k-nearest neighbour: the stored handwriting samples are ranked by closeness in that feature space, and neighbours are counted until five distinct symbols have turned up. Being statistical, it does not always hit on the first try, but the practical gift is that each candidate shows the package it needs, so identifying the glyph settles the \usepackage line at the same moment. The site is detexify.kirelabs.org; the training data is public, and every time somebody confirms the right answer the next lookup gets a little better.
When you hit Too many math alphabets used in version normal
Keep adding symbol packages and sooner or later typesetting stops at ! LaTeX Error: Too many math alphabets used in version normal. The cause is not the number of symbols but the number of slots for math fonts. LaTeX can hold only sixteen of them (\e@mathgroup@top in the kernel file latex.ltx is set to 16), and loading amssymb alone consumes two — AMSa and AMSb — while using \mathfrak takes another, and mathcomp’s \tcdigitoldstyle, discussed below, takes one more. The number sixteen comes straight from TeX’s design: TeX packs a math character into a class, a font slot and a position, and the font slot got four bits — sixteen possibilities.
There are two ways out. One is to load fewer packages. Symbol packages fight over command names as well as slots, and amssymb itself steps aside if stix was loaded first, warning that it is redundant and will not load. The other is to change engine. XeLaTeX and LuaLaTeX raise the ceiling to 256 slots, and with unicode-math by Will Robertson and collaborators the whole calculus changes: a single OpenType math font carries thousands of glyphs, so you stop spending a slot every time you want more symbols. Its bundled unicode-math-table.tex maps 2,448 Unicode math characters to command names — U+2200, for instance, is \forall. The catch is that unicode-math does not work with 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 \]Upright ℃, Ω and µ inside math mode (mathcomp / textcomp)
Mixing units into mathematics raises a problem quite separate from finding a symbol: in math mode a µ is set as a slanted variable, whereas the micro prefix of a unit must be upright. The small package that fixes this is mathcomp. Write \usepackage{mathcomp} and \tcmu (µ), \tcohm (Ω), \tccelsius (℃) and friends become available in math mode. The naming rule is simple: take the text-mode \textmu or \textdegree and swap text for tc (text companion).
The tc comes from the TS1 (Text Companion) encoding. There was a time when \usepackage{textcomp} was mandatory to get \textdegree (°) or \textperthousand (‰) in running text, but as LaTeX News 31 records, the 2020 release folded the TS1 symbols into the kernel, and they now work in text without loading textcomp at all. textcomp still has a job, though: written as \usepackage[error]{textcomp} or with [warn], it reports a LaTeX error or warning whenever a glyph is missing from the font and gets substituted. Math mode, by contrast, was not automated in the same way, so mathcomp is still what you need for upright unit symbols inside a formula.
| Command (mathcomp) | Glyph | Meaning |
|---|---|---|
\tcohm | Ω | ohm (unit of resistance); upright |
\tcmu | µ | micro sign (the µ in µm); upright |
\tcdegree | ° | degree sign |
\tccelsius | ℃ | degrees Celsius (\tccentigrade is a synonym) |
\tcperthousand | ‰ | per mille (per thousand) |
\tcpertenthousand | ‱ | per ten thousand (basis point) |
\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 provides just those six symbols plus \tcdigitoldstyle{0} … \tcdigitoldstyle{9} for old-style figures, and an option chooses the typeface (\usepackage[ppl]{mathcomp} for Palatino’s TC fonts). One caution: \tcohm (Ω) is a different character from the Greek capital \Omega, and the former is the correct unit symbol. The slot arithmetic from earlier applies here too — \tcdigitoldstyle claims one math font slot, so in a document already stacked with symbol packages it can be the straw that breaks the camel’s back. And if you are typesetting units in earnest, handing the job to siunitx beats picking symbols one at a time: it also manages the space between quantity and unit and the assembly of compound units (see the “Units (siunitx)” page).