When you need an ornamental letter inside a formula — the 𝒜 of a family of sets, the 𝔤 of a Lie algebra, the ℝ of a number set — this page lets you look up quickly which command and which package to reach for. There are four: calligraphic \mathcal, script \mathscr, Fraktur \mathfrak, and blackboard bold \mathbb. For each we note what it looks like, the package it needs, and the range of characters it covers. The machinery of switching typefaces itself (how to make bold, unicode-math) is left to another page — this one is for looking things up.
The four decorative alphabets
Letters in math mode are math italic by default, but many fields call for a fixed ornamental face — calligraphic, script, Fraktur, or blackboard bold. Each is a command that takes a letter (or a few) as its argument and sets just that span in a different math typeface, as in \mathcal{A}. Note that the argument is treated as a run of mathematical symbols, not as a word (\mathcal{Hom} is three ornate letters in a row, not the word).
Here is the whole picture at a glance. The table below sums up the four commands with the package each needs, the range of characters covered, and a typical use. The fine print follows, one alphabet at a time.
| Command | Look | Package needed | Coverage |
|---|---|---|---|
\mathcal | Flowing calligraphic capitals | Built in (none) | Uppercase A–Z only |
\mathscr | A more flowing script | mathrsfs (or euscript) | Uppercase only in practice |
\mathfrak | Angular blackletter | amssymb / amsfonts | Upper- & lowercase, digits |
\mathbb | Doubled-stroke bold | amssymb / amsfonts | Uppercase A–Z only |
Two things stand out at once. First, **only \mathcal is built in; the other three need a package loaded. Second, most are uppercase-only** — lowercase and digits are not provided (in the standard fonts). The exception is \mathfrak, which covers both upper- and lowercase.
Calligraphic \mathcal & script \mathscr
\mathcal (calligraphic) gives flowing, ornamented capitals. It is built in (no package) and covers uppercase A–Z only**. Marked by decorative descending tails and curves, it is used for families of sets (\mathcal{A}), the Fourier transform (\mathcal{F}), the names of categories and sheaves, and sigma-algebras (\mathcal{F}, \mathcal{B}). Passing a lowercase letter or digit does not yield the ornate glyph you expect (there is none in the standard font), so keep the argument to capitals.
\mathscr (script)** is an even more flowing, strongly slanted face than \mathcal. It is not built in; loading the **mathrsfs package** makes the \mathscr command available. It calls up Ralph Smith’s Formal Script (RSFS, font rsfs10), a highly oblique, heavily ornamented hand. For example \mathscr{L} gives the ornate L used for the Laplace transform. This too is essentially a capitals alphabet and is used for uppercase in practice.
If RSFS feels too oblique, the **rsfso package** offers a gentler-sloped version of the same family (usable as \mathscr via its scr option). Another route to \mathscr, from a different family, is euscript, touched on in the next section.
\usepackage{mathrsfs} % \mathscr(RSFS)
% ...
\[
\mathcal{F} \subset \mathcal{P}(X), \qquad
\mathscr{L}\{f\}(s) = F(s).
\]Here \mathcal{F} and \mathcal{P} are set in the built-in calligraphic, while \mathscr{L} is the more flowing RSFS script. Using both together lets you visually distinguish a “calligraphic F” from a “script L.”
RSFS and Euler Script are different
There is more than one route to \mathscr, and knowing there are two visually distinct families avoids confusion. One is mathrsfs (Ralph Smith’s Formal Script, RSFS) from the previous section. The other is the **euscript package, which calls up Euler Script** (font eusm10, in AMSFonts), designed by Hermann Zapf. Where RSFS is a strongly slanted, ornate hand, Euler Script is a calmer, textbook-like, upright-ish script. The same \mathscr produces quite different letterforms.
The euscript package (and its sibling eucal) change behavior by option. Per the official documentation’s table, **euscript with the mathcal option** replaces \mathcal with Euler Script, while **eucal with the mathscr option** leaves \mathcal alone and adds \mathscr. In short, the option lets you choose whether to “swap \mathcal to Euler Script” or “add it separately as \mathscr.” (The bare \EuScript command is an old form, now deprecated.)
| How you load it | Command you get | Typeface |
|---|---|---|
\usepackage{mathrsfs} | \mathscr | RSFS (strongly slanted, ornate) |
\usepackage[mathcal]{euscript} | \mathcal (replaced by Euler) | Euler Script (calmer script) |
\usepackage[mathscr]{eucal} | \mathscr (\mathcal unchanged) | Euler Script (calmer script) |
A common mistake here is to **load two script packages at once and lose track of which one defines \mathscr**. Load both mathrsfs and eucal (with the mathscr option) and the one loaded later overwrites \mathscr, giving an unintended face. It is safest to settle on a single script family; if you want two distinguishable ornamental alphabets, pair “\mathcal (built in) with \mathscr (one source only).”
Fraktur \mathfrak
\mathfrak (Fraktur) is an angular, ornate face descended from old German type. Loading amssymb (or amsfonts)** makes it available (internally pulling in eufrak, font eufm10). Its big distinction from the other three is that it covers both upper- and lowercase, and digits too.
Fittingly, lowercase often plays the lead role. Lie algebras are written in lowercase Fraktur — \mathfrak{g}, \mathfrak{h}, \mathfrak{sl} — to distinguish them from the corresponding Lie groups set as upright capitals G, H. Ideals of a ring also use lowercase: \mathfrak{p} (a prime ideal), \mathfrak{q}, \mathfrak{m} (a maximal ideal). Uppercase Fraktur turns up for the names of sets and fields.
\usepackage{amssymb} % \mathfrak(と \mathbb)
% ...
\[
\mathfrak{g} = \operatorname{Lie}(G), \qquad
\mathfrak{p} \subset \mathfrak{m} \subset \mathcal{O}.
\]Here \mathfrak{g} is an angular lowercase Fraktur, \mathfrak{p} and \mathfrak{m} are the lowercase letters for a prime and a maximal ideal, and \mathcal{O} is a calligraphic capital for a ring of integers. Fraktur is busy and hard to read when small, so use it sparingly where type gets tiny, such as deep inside a subscript.
Blackboard bold \mathbb & number sets
\mathbb (blackboard bold) is a distinctive bold whose strokes are doubled. It comes from how one writes boldface on a blackboard by drawing a stroke twice (since “one cannot get bold chalk”). It needs amssymb (or amsfonts)** (font msbm10) and covers uppercase A–Z only. Its use is all but fixed: the number sets.
\mathbb{R}— the reals ℝ.\mathbb{C}— the complex numbers ℂ.\mathbb{Z}— the integers ℤ (from German *Zahlen*).\mathbb{Q}— the rationals ℚ (from *Quotient*).\mathbb{N}— the naturals ℕ.
\mathbb is uppercase-only, so a lowercase letter or digit will not come out blackboard bold. The one exception is that amssymb provides a blackboard-bold lowercase k through a dedicated command, \Bbbk (handy for a field k). Note that it is its own symbol, written \Bbbk rather than \mathbb{k}.
For other lowercase letters or digits (a blackboard-bold 1 or 2, a lowercase h), use a separate font package. **dsfont** offers uppercase, lowercase h and k, and the digit 1 via \mathds; **bbold** redefines \mathbb to include lowercase and digits; **bbm** provides lowercase and digits via \mathbbm (the fourier fonts also include blackboard-bold capitals, the digit 1, and lowercase k). Be aware, though, that combining such a package with amssymb can clash over the definition of \mathbb, so keep clear which package owns which command.
\usepackage{amssymb} % \mathbb と \Bbbk
% ...
\[
\mathbb{N} \subset \mathbb{Z} \subset \mathbb{Q}
\subset \mathbb{R} \subset \mathbb{C}, \qquad
\Bbbk = \overline{\Bbbk}.
\]Here the chain ℕ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ is all set in blackboard-bold capitals, and the final \Bbbk is the blackboard-bold lowercase k (an algebraically closed field, say). On XeLaTeX or LuaLaTeX with unicode-math, by the way, you obtain all these decorative alphabets from a single OpenType math font and use \symbb and friends in place of \mathbb — that mechanism is covered on the “Math fonts” page.