I am using unicode-math with XeTeX and XITS fonts.

Instead of writing \mathcal, I want to use the unicode characters 𝓐, 𝓑, …, 𝓩 and have them render like \mathcal A, \mathcal B, …, \mathcal Z. These have codes U+1D4D0–U+1D4E9 and are named "MATHEMATICAL BOLD SCRIPT CAPITAL A–Z". Despite their names, they display just like the regular calligraphic characters rendered through \mathcal, at least in the Free Serif font I am using.

I have been successful at having XeTeX render them as bold calligraphic characters rendered through \mathbfcal:

\setmathfont[range={"1D4D0-"1D4E9},StylisticSet=1]{XITS Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
$ 𝓐, \mathcal A, \mathbfcal A, \quad
  𝓓, \mathcal D, \mathbfcal D, \quad
  𝓛, \mathcal L, \mathbfcal L, \quad
  𝓟, \mathcal P, \mathbfcal P $

rendering of unicode characters against \mathcal and \mathbfcal

What can I do to remove their bold attribute, i.e., have XeTeX render them as regular, non-bold calligraphic letters, as if I were using \mathcal rather than \mathbfcal?

EDIT: I do not want to use 𝒜 instead of 𝓐. I want to be able to access the math script alphabet through the unicode characters 𝒜, ℬ, …, 𝒵, rendered as \mathscr A, \mathscr B, …, \mathscr Z while accessing the math calligraphic alphabet with StylisticSet=1 through 𝓐, 𝓑, …, 𝓩, without the bold attribute.

  • 1
    You should be using 𝒜 not 𝓐 U+1D49C not U+1D4D0 – David Carlisle Oct 10 '13 at 15:58

The Unicode math script alphabet starts at 𝒜 not 𝓐 (U+1D49C not U+1D4D0) see for example the tables in the XML entities spec

Beware of the "holes" highlighted in those tables, where the script character is taken from the Basic plane, not 1Dxxx.

enter image description here






  • Thank you, but I do not have any trouble using the math script alphabet. It is the math calligraphic alphabet, accessible with StylisticSet=1, that I am trying to map 𝓐, 𝓑, …, 𝓩 to. EDIT: I still want to be able to use the math script alphabet with 𝒜,…,𝒵. – Munger Oct 10 '13 at 17:58
  • @Munger ah sorry I misread the question then, although arguably you are not supposed to do that (Unicode opting not to distinguish between calligraphic and script) so by design if you choose the script stylistic variant you are supposed to use the non-bold slots. It would be easy to do the remapping just by setting the (extended) mathcodes of the bold script alphabet to \mathcal, I may do that later if no one else has answered – David Carlisle Oct 10 '13 at 18:03
  • Oh, I didn't realize what I was trying to do might be a bad idea. In any case, I'd like to work it out. If you do not wish to spend too much time on this, I'd appreciate if you could point me to an example of how to do such mappings. I should then be able to work it out and post the solution here. – Munger Oct 10 '13 at 18:14
  • @Munger well internally of course uniocde-math is doing something like that but its coding is a bit opaque last time I looked:-) I'd just do the classic tex thing, to make x be a sans-serif y you can do \mathcode`\x="8000 then {\catcode`\x\active\gdef x{\mathsf{y} and then just do that in a loop for teh whole alphabet – David Carlisle Oct 10 '13 at 18:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.