Where is a Symbol Font supposed to be mapped to?

Hi there!

Mr. Denissen helped me a bit with this question. I need to clarify a few things however, and the forum is appropriate for this. He cleaned up myFont that I made. It is a Symbol font. But when he fixed it, he remapped the Microsoft Symbol platform to codepoints in the range of 61500. myFont has also a Macintosh platform mapped to the normal letters and numbers (to which I had originally also mapped the Symbol platform).

Two questions:

  1. Why map to those code points?
  2. I use Windows. Why when I use myFont, do my glyphs appear in the right keys? Does Windows recognize Macintosh mappings, or does the 61500 codepoint range map Symbols to normal keyboard letters?

Thanks!
Brother Gabriel-Marie

Take a good look at WingDings

Here is some more information taken from the user manual that should answer both questions:

  1. Why map to those code points?

Because some word processors and DTP applications depend on the Macintosh Roman mappings they should be included as well.

  1. I use Windows. Why when I use myFont, do my glyphs appear in the right keys? Does Windows recognize Macintosh mappings, or does the 61500 codepoint range map Symbols to normal keyboard letters?

Symbol character sets have a special meaning. All of the characters in the Unicode range 0xF000 - 0xF0FF (this is the Private Use Area of Unicode) will be used to enumerate the symbol character set. Microsoft suggests deriving the symbol encodings by simply adding 0xF000 to the Macintosh encodings.

The Private Use Area consists of 6400 codepoints located from U+E000 to U+F8FF inclusive. Its formal title is the primary Private Use Area. It is often known simply as the Private Use Area (PUA).

The Unicode Standard presently also contains two other Private Use Areas. The other two Private Use Areas are located in planes fifteen and sixteen, where they each occupy all but two codepoints of a whole plane. They are known as Supplementary Private Use Area-A and Supplementary Private Use Area-B respectively.

Section 16.5 of the Unicode Standard has a section about the Private Use Area.

http://www.unicode.org/versions/Unicode5.0.0/ch16.pdf

Please note particularly the following sentence in that section.

quote

No assignment to a particular standard set of characters will ever be endorsed or documented by the Unicode Consortium for any of these code points.

end quote

Well, that seems to extend to not documenting that Microsoft, a major platform manufacturer, uses U+F020 to U+F0FF for symbol fonts. That non-documentation is fine as a legal principle, they treat a large corporation the same as an individual. However, for people trying to learn what is going on when using the Microsoft platform for fonts it is very difficult to find out the facts: I struggled with learning about this matter some years ago because I could not find the information!

That chapter and other chapters are available from the following web page.

http://www.unicode.org/versions/Unicode5.0.0/

As far as I can tell, and I may perhaps not be right in this, is that the symbol font structure is a way of having fonts with characters which respond to ordinary letters of the English alphabet and the other characters present on an American keyboard whilst internally having all of the glyphs mapped to the Unicode Private Use Area.

I do not encode fonts like that. If I want a shape to be displayed when a letter E key is pressed then I encode the font as an ordinary font and have the glyph for a letter E as the shape which I want. I have never had any problems with doing that and have not as yet found a situation where not using a symbol font as such has caused me any problems. However, I only have my own rather limited experiences and some other readers might be able to show some advantage to encoding a font as a symbol font.

The Private Use Area consists of 6400 codepoints located from U+E000 to U+F8FF inclusive.

Those numbers are expressed in hexadecimal notation.

If one expresses them in decimal notation one has the codepoint range of 57344 to 63743.

Some readers might like to know that Microsoft Calculator used in View Scientific mode is ideal for making such conversion from hexadecimal to decimal calculations and indeed for decimal to hexadecimal calculations as well.

U+F020 to U+F8FF which are hexadecimal converts into 61472 to 63743 decimal.

Please note that one can use the Private Use Area in an ordinary Unicode font, nothing to do with Microsoft symbol fonts. However, even though I know of no reason why I should, I do avoid using the range U+F000 to U+F0FF for my own code point allocations, just in case the Windows operating system is making any presumptions about for what those codepoints are being used.

As a side note, nothing to do with symbol fonts as far as I know, Microsoft used to use U+F001 and U+F002 for glyphs for the ligatures fi and fl in fonts. That started before U+FB01 and U+FB02 were assigned in regular Unicode. I read somewhere that Microsoft has formally stopped using those codepoints for those ligature glyphs. There are nonetheless a lot of fonts already in use where those codepoints are used for those ligature glyphs, sometimes the glyphs being mapped to both the Microsoft private codepoint allocations and the regular Unicode codepoint allocations in the same font.

William Overington

9 October 2007

Greetings all!

Thank you all for being so prompt! I have to say that I ALWAYS get answers at this forum!

I am glad to learn that you can convert hexadecimal to decimal on the Windows calculator! That explains why I couldn’t find 61500 in the codepoint charts - and it tells me how I CAN find it.

I figure that Windows normally reads Macintosh mappings for symbol fonts? (Forgive me for asking so many newbie questions).

Brother Gabriel-Marie

The Microsoft Unicode platforms are all meant to support the character coding system known as the Unicode Standard. The Microsoft Symbol platform is not related to Unicode.

In FontCreator you can switch between Decimal and Hexadecimal notation, through the Options dialog. Just select Options from the Tools menu, and you’ll see it on the General page.

No, for symbol fonts the Microsoft Windows O.S. uses the Microsoft Symbol platform.

Previously I wrote as follows.

However, for people trying to learn what is going on when using the Microsoft platform for fonts it is very difficult to find out the facts: I struggled with learning about this matter some years ago because I could not find the information!

I now realize that I have not correctly expressed my intended meaning.

The following is my intended meaning.

However, for people trying to learn what is going on when using fonts on the Microsoft Windows platform it is very difficult to find out the facts regarding which Unicode Private Use Area codepoints are used by Microsoft for symbol fonts: I struggled with learning about this matter some years ago because I could not find the information!

William Overington

10 October 2007

Greetings all!

Can anyone provide me with a code-chart of points which Microsoft uses for each symbol in their Symbol Platform?

I understand they are in the Private use sector range of U+F020 to U+F0FF.

I am wanting a chart that shows each code-point in that range and the usual key mappings. (I already have the Unicode charts in pdf, but they don’t tell me what I want to know).

Thanks

Brother Gabriel-Marie

Disclaimer: I’m pretty sure the information below is correct, however use at your own risk and do let me know if I’m wrong!

You probably couldn’t find an answer, because it all depends on the system settings on your computer. More specific it depends on the current code page.

Let’s assume your system is set to use code page 1252 (Latin I).
When you create a new symbol font and the font overview window shows a grid with 16 columns, this symbol to character table might help.

I’m positive the ASCII character set (the green cells) is always the same on every Windows computer, as those are equal for all Windows code pages. Other code pages supported by Windows:
http://www.microsoft.com/globaldev/reference/wincp.mspx

One more thing; although I do it all the time like everyone else, it is not the correct way to add characters from a symbol font through the characters on your keyboard. You should either use Windows CharMap or MainType to insert characters from a symbol font. Then you can also reach the symbols behind the empty cells (except for the first 3 ones) in the above chart.

Mr. Denissen, you are a great help - God bless you.

Okay, I see the glyph chart, I assume the first box is U+F020 and the last box is mapped to U+F0FF?

Now how would I know whether my system (XP) is set to use code page 1252 (Latin I), as you said?

Here is the result when you create a new Symbol font. The glyph caption is set to Microsoft Mappings, and the number of columns is set to 16.




Now how would I know whether my system (XP) is set to use code page 1252 (Latin I), as you said?

I guess the most easy way to find out is to type:
ALT-0221
Your system uses CP 1252 if you see this character:
Ý

Thank you again!
Sorry to put you through that trouble: I figured this out just before you posted it! Thanks for your time!

Brother Gabriel-Marie