SymbolFYI

Mathematical Alphanumeric Symbols

Unicode Standard
定義

Unicode block (U+1D400–U+1D7FF) containing styled letters and digits used in mathematical notation (bold, italic, script, etc.).

What Is the Mathematical Alphanumeric Symbols Block?

The Mathematical Alphanumeric Symbols block, located at U+1D400U+1D7FF in Unicode Plane 1 (SMP), contains styled variants of Latin and Greek letters and digits specifically intended for use in mathematical and scientific notation. These include bold, italic, bold italic, script, bold script, fraktur, bold fraktur, double-struck, and sans-serif variants.

This block was added to provide a way to represent the rich typographic tradition of mathematical writing in plain Unicode text — for contexts where full LaTeX or MathML rendering is unavailable, such as plain-text chat, email subject lines, or social media posts.

Style Families in the Block

Style Example Unicode Start
Bold 𝐀𝐁𝐂 U+1D400
Italic 𝐴𝐵𝐶 U+1D434
Bold Italic 𝑨𝑩𝑪 U+1D468
Script 𝒜ℬ𝒞 U+1D49C
Bold Script 𝓐𝓑𝓒 U+1D4D0
Fraktur 𝔄𝔅ℭ U+1D504
Bold Fraktur 𝕬𝕭𝕮 U+1D56C
Double-Struck 𝔸𝔹ℂ U+1D538
Sans-Serif 𝖠𝖡𝖢 U+1D5A0
Sans-Serif Bold 𝗔𝗕𝗖 U+1D5D4
Sans-Serif Italic 𝘈𝘉𝘊 U+1D608
Monospace 𝙰𝙱𝙲 U+1D670

The block also contains styled digits: bold digits (𝟎𝟏𝟐), double-struck digits (𝟘𝟙𝟚), sans-serif digits, and monospace digits.

Gaps and Compatibility Characters

Not every position in the block is filled. Several common mathematical letters were already encoded elsewhere for historical reasons and are mapped via NFKC compatibility:

  • ℝ (real numbers) → U+211D (already in Letterlike Symbols block)
  • ℂ (complex numbers) → U+2102
  • ℕ (natural numbers) → U+2115
  • ℤ (integers) → U+2124
  • ℚ (rationals) → U+211A
  • ℋ (Hamiltonian) → U+210B
import unicodedata

# Mathematical alphanumeric characters have general category 'Ll', 'Lu', etc.
# but their names indicate they are mathematical variants
bold_a = '\U0001D400'  # MATHEMATICAL BOLD CAPITAL A
print(unicodedata.name(bold_a))     # 'MATHEMATICAL BOLD CAPITAL A'
print(unicodedata.category(bold_a)) # 'Lu'

# NFKC normalization maps styled variants to base characters
print(unicodedata.normalize('NFKC', bold_a))  # 'A'
print(unicodedata.normalize('NFKC', '\U0001D49C'))  # 'A' (Script A)
// Generate a bold math string (for demonstration)
function toBoldMath(str) {
  return [...str].map(c => {
    const cp = c.codePointAt(0);
    if (cp >= 0x41 && cp <= 0x5A) {  // A-Z
      return String.fromCodePoint(0x1D400 + (cp - 0x41));
    }
    if (cp >= 0x61 && cp <= 0x7A) {  // a-z
      return String.fromCodePoint(0x1D41A + (cp - 0x61));
    }
    return c;
  }).join('');
}
console.log(toBoldMath('Hello'));  // '𝐇𝐞𝐥𝐥𝐨'

Accessibility and Semantic Concerns

While math alphanumeric characters are visually striking, their use in non-mathematical contexts (social media bios, usernames) creates significant accessibility problems. Screen readers often read these characters as their full Unicode names ("MATHEMATICAL BOLD CAPITAL H") rather than pronouncing them normally. Search engines may fail to index them correctly. NFKC normalization is needed to recover the base Latin text for search and sorting purposes.

関連記号

関連用語

関連ツール