monaspace icon indicating copy to clipboard operation
monaspace copied to clipboard

Suggestion: Add double-struck R and C

Open cionx opened this issue 4 months ago • 3 comments

The five essential double-struck letters in mathematics are ℕ, ℤ, ℚ, ℝ and ℂ (representing the natural, integral, rational, real, and complex numbers respectively).[^1] The Monaspace fonts usually don’t have glyphs for double-struck letters, but they were added for ℕ, ℤ and ℚ in version 1.3. I’d therefore suggest that glyphs for ℝ (U+211D) and ℂ (U+2102) are also added, so that all five essential letters are covered.

(I also looked through all other fonts installed on my system, and all of them that have glyphs for ℕ, ℤ and ℚ also have glyphs for ℝ and ℂ.[^2])

[^1]: There are also other important double-struck letters and digits, arguably 𝔸, 𝔻, 𝔼, 𝔽, ℍ, 𝕀, 𝕂, 𝕃, ℙ, 𝕊, 𝕋, 𝕜, 𝟙, but the above five are distinctively above these in importance. [^2]: As well as ℍ and ℙ, probably because these are the seven double-struck uppercase letters contained in the Unicode block “Letterlike Symbols”.

cionx avatar Aug 25 '25 19:08 cionx

Sure, I can definitely add these for the next release! I know there are Unicode codepoints for doublestruck versions of the full Latin alphabet, so is there a point at which the full set would be a useful addition?

heathercran avatar Aug 26 '25 18:08 heathercran

I thought about this for a bit and I think that there isn’t necessarily one specific point. Instead, I’d say that double-struck characters may come in coverage groups of increasing size.

As far as I’m aware, Unicode currently contains the following double-struck letters:

Double-struck Unicode characters (grouping and labelling by me)
Label Block Characters / description Unicode version Unicode codepoints
L1 Letterlike Symbols ℂ, ℍ, ℕ, ℙ, ℚ, ℝ, ℤ 1.x 2102, 210D, 2115, 2119, 211A, 211D, 2124
L2 ℽ (gamma), ℾ (Gamma), ℿ (Pi) 3.2 213D213F
L3 ⅅ, ⅆ, ⅇ, ⅈ, ⅉ (italic) 21452149
L4 ⅀ (summation sign) 2140
L5 ℼ (pi) 4.1 213C
M1 Mathematical Alphanumeric Symbols Remaining Capital Latin 3.1 1D5381D550
M2 Small Latin 1D5521D56B
M3 Digits 1D7D817DE1
A1 Arabic Mathematical Alphabetic Symbols Arabic Letters 6.1 1EEA11EEBB

I think that the following would be natural groups of characters that a (non-Arabic) font could cover:

Possible coverage groups
Characters Coverage covered Unicode version
(None)
Essential letters ℕ, ℤ, ℚ, ℝ, ℂ partially L1 partially 1.x
Upright capital Latin letters in LetterLike Symbols: ℕ, ℤ, ℚ, ℝ, ℂ, ℍ, ℙ L1 1.x
Capital Latin letters L1, M1 1.x, partially 3.1
Capital Latin letters, digits L1, M1, M3 1.x, partially 3.1
Capital Latin letters, small Latin letters, digits L1, M1–M3 3.1
Non-Arabic L1–L5, M1–M3 4.1
  • One could argue that L2–L5 should be included earlier since they are in the block LetterLike Symbols, which is “more fundamental” than Mathematical Alphanumeric Symbols. But these characters have been added only after M1–M3, and also don’t seem to be particularly important: Unicode 3.2 and 4.1 came out in 2000 and 2002 respectively, and no further double-struck Greek letters (L2, L5) or italic double-struck letters (L3) have been added since them.
  • Both small Latin letters and digits contain only one actually significant character (𝕜 and 𝟙 respectively). So it’s a bit hard to say which one is more important. I’d say digits because 𝟙 has a wider range of usage.
  • Another approach would be to add both 𝟙 and 𝕜 after the capital Latin letters, even if no other small Latin letters or digits are added.

Which of these groups to implement probably depends on the intended usage of a font, as well as the amount of work that one can put into it.

PS. For the Monaspace fonts, a possibly interesting point of reference is Lean’s mathlib4 library.

Frequencies of double-struck letters in mathlib4 (counted by lines in which they appear)
𝔸 544
𝔹 11
ℂ 5678
𝔻 62
𝔼 208
𝔽 14
𝔾 1
ℍ 640
𝕀 16
𝕁 0
𝕂 511
𝕃 0
𝕄 22
ℕ 26159
𝕆 78
ℙ 306
ℚ 3383
ℝ 25686
𝕊 101
𝕋 3
𝕌 9
𝕍 0
𝕎 299
𝕏 0
𝕐 0
ℤ 9814

𝕒 0
𝕓 0
𝕔 0
𝕕 0
𝕖 4
𝕗 0
𝕘 0
𝕙 0
𝕚 0
𝕛 0
𝕜 19953
𝕝 141
𝕞 4
𝕟 0
𝕠 0
𝕡 0
𝕢 29
𝕣 0
𝕤 0
𝕥 0
𝕦 0
𝕧 0
𝕨 0
𝕩 0
𝕪 0
𝕫 0

𝟘 0
𝟙 4444
𝟚 0
𝟛 0
𝟜 0
𝟝 0
𝟞 0
𝟟 0
𝟠 0
𝟡 0

ℽ 0
ℾ 0
ℿ 0
ⅅ 0
ⅆ 0
ⅇ 0
ⅈ 0
ⅉ 0
⅀ 0
ℼ 0

The following can be seen:

  • Out of the capital Latin letters, 21/26 are in use, with 12/26 appearing more than a hundred times. The five essential letters are also by far the most used ones.
  • Out of the small capital letters, only five are used: 𝕖 (4 times), 𝕜 (19953 times), 𝕝 (414 times), 𝕞 (4 times), 𝕢 (29 times).
  • Out of the digits, only 𝟙 is used (4444 times).
  • The characters in L2–L5 are never used.

cionx avatar Sep 01 '25 17:09 cionx

very interesting! thanks so much, this is really useful information.

heathercran avatar Sep 02 '25 18:09 heathercran