How to add characters defined in the Supplementary Planes...
Posted: Mon Dec 01, 2003 11:42 pm
[updated February 24, 2010]
Note: This tutorial has specific parts for the two editions of FontCreator. In the Professional Edition, you can insert characters through the Insert Character feature. This ensures all required mappings and platforms are automatically updated. You can accomplish the same with the Home Edition, but it requires more steps.
[updated September 21, 2009]
How to add characters defined in the Supplementary Planes to an existing font?
Within a font the glyphs are mapped to characters. Almost all Unicode fonts have their glyphs assigned to code points from 0x0000 to 0xFFFF. This range is called the Basic Multilingual Plane (BMP) or Plane 0. Another 16 planes have been defined to include other scripts. All planes contain 16 bits of code points, thus Unicode characters may be encoded at any code point from U+0000 to U+10FFFF.
Plane 1 (0x010000 to 0x01FFFF) is the Supplementary Multilingual Plane (SMP) for scripts and symbols. Plane 2 (0x020000 to 0x02FFFF) is the Supplementary Ideographic Plane (SIP)
Planes 3 to 13 are reserved for future allocations
Plane 14 (0x0E0000 to 0x0EFFFF) is the Supplementary Special-purpose Plane (SSP)
Planes 15 and 16 are reserved for private use
The Unicode Consortium has defined several blocks inside the planes:
http://www.unicode.org/Public/UNIDATA/Blocks.txt
More information about SMP, SIP and SSP can be found here:
http://www.unicode.org/roadmaps/
There are only a few fonts that contain characters from planes 1 to 16. Here are a few fonts available for download that contain characters from plane 1:
Code2001 from James Kass
http://code2000.net/
James Kass has made his own software to generate his fonts.
ALPHABETUM from Juan José Marcos
http://guindo.pntic.mec.es/~jmag0042/alphaeng.html
Juan José Marcos used FontCreator to create this font
Andagii and Penuturesu created by Mark Williamson
http://www.i18nguy.com/unicode/unicode-font.html
Finally after this (long) introduction let’s explain how to map glyphs to the Supplementary Multilingual Plane.
The first step is to decide which character we want to add. I randomly picked a character: OSMANYA LETTER GA. Of course the outlines should look like the character we want to add, so we need an example. Fortunately the Unicode Consortium has code charts:
http://www.unicode.org/charts/
For the OSMANYA LETTER GA character we need to go to the Osmanya code chart:
http://www.unicode.org/charts/PDF/U10480.pdf
Besides the outline we also see it's code point: 1048C
Now we have enough information to actually add the character.
Steps for FontCreator Home Edition
Add a glyph to the font (Insert -> Glyphs). Create the outlines in the Glyph Edit window. Add the Windows Unicode UCS-4 platform through the Platform Manager (Format -> Platform Manager).
UCS-4 is a a four-byte per character encoding defined in ISO-10646; UCS stands for Universal Character Set which encompasses most of the world's writing systems. Press the 'Add' button, select 'Windows Unicode UCS-4' and press the 'OK' button. Note: no naming fields are needed for this platform.
From the ‘Character to Glyph Index Mappings’ window (select Format from the main menu then click Mappings), select the press the 'Windows Unicode UCS-4' platform. Before adding the mapping, make sure the encoding format is set to ‘Segmented coverage’. Now select the glyph we just created and add code point $1048C (decimal value is 66700). There are two ways to add the mapping:
1) put this value in the value edit field and press the ‘Add’ button. 2) press the ‘Select’ button and then successively select the appropriate block (Osmanya), the character (OSMANYA LETTER GA) and finally press the ‘Ok’ button.
Steps for FontCreator Professional Edition
Select Insert Characters from the Insert menu, and then in the bottom line enter the codepoint for the character (OSMANYA LETTER GA):
Remaining steps; equal for both editions of FontCreator
Now open the Font Settings window (Format -> Settings) to update the range settings. First (on the Header page) set the Contents and Layout version to 3 or higher.
Then on the Ranges tab, select the 'Calculate' button within the Unicode Character Ranges area. This should check range named 'Non-Plane 0 - implies that...'. Press the 'OK' button to return to the main window. Finally your font can be saved and installed. You should be able to test your font with applications that support planes 1 to 16.
To me it is unclear what applications (and even what operating systems) have support for these planes. Microsoft Word 2002 and higher have support for these planes. To add a character into a document, Type the character code (1048C) directly into a document, and then press ALT+X.
Let me know if you have more information about this topic, so I can keep this document up to date.
Note: This tutorial has specific parts for the two editions of FontCreator. In the Professional Edition, you can insert characters through the Insert Character feature. This ensures all required mappings and platforms are automatically updated. You can accomplish the same with the Home Edition, but it requires more steps.
[updated September 21, 2009]
How to add characters defined in the Supplementary Planes to an existing font?
Within a font the glyphs are mapped to characters. Almost all Unicode fonts have their glyphs assigned to code points from 0x0000 to 0xFFFF. This range is called the Basic Multilingual Plane (BMP) or Plane 0. Another 16 planes have been defined to include other scripts. All planes contain 16 bits of code points, thus Unicode characters may be encoded at any code point from U+0000 to U+10FFFF.
Plane 1 (0x010000 to 0x01FFFF) is the Supplementary Multilingual Plane (SMP) for scripts and symbols. Plane 2 (0x020000 to 0x02FFFF) is the Supplementary Ideographic Plane (SIP)
Planes 3 to 13 are reserved for future allocations
Plane 14 (0x0E0000 to 0x0EFFFF) is the Supplementary Special-purpose Plane (SSP)
Planes 15 and 16 are reserved for private use
The Unicode Consortium has defined several blocks inside the planes:
http://www.unicode.org/Public/UNIDATA/Blocks.txt
More information about SMP, SIP and SSP can be found here:
http://www.unicode.org/roadmaps/
There are only a few fonts that contain characters from planes 1 to 16. Here are a few fonts available for download that contain characters from plane 1:
Code2001 from James Kass
http://code2000.net/
James Kass has made his own software to generate his fonts.
ALPHABETUM from Juan José Marcos
http://guindo.pntic.mec.es/~jmag0042/alphaeng.html
Juan José Marcos used FontCreator to create this font
Andagii and Penuturesu created by Mark Williamson
http://www.i18nguy.com/unicode/unicode-font.html
Finally after this (long) introduction let’s explain how to map glyphs to the Supplementary Multilingual Plane.
The first step is to decide which character we want to add. I randomly picked a character: OSMANYA LETTER GA. Of course the outlines should look like the character we want to add, so we need an example. Fortunately the Unicode Consortium has code charts:
http://www.unicode.org/charts/
For the OSMANYA LETTER GA character we need to go to the Osmanya code chart:
http://www.unicode.org/charts/PDF/U10480.pdf
Besides the outline we also see it's code point: 1048C
Now we have enough information to actually add the character.
Steps for FontCreator Home Edition
Add a glyph to the font (Insert -> Glyphs). Create the outlines in the Glyph Edit window. Add the Windows Unicode UCS-4 platform through the Platform Manager (Format -> Platform Manager).
UCS-4 is a a four-byte per character encoding defined in ISO-10646; UCS stands for Universal Character Set which encompasses most of the world's writing systems. Press the 'Add' button, select 'Windows Unicode UCS-4' and press the 'OK' button. Note: no naming fields are needed for this platform.
From the ‘Character to Glyph Index Mappings’ window (select Format from the main menu then click Mappings), select the press the 'Windows Unicode UCS-4' platform. Before adding the mapping, make sure the encoding format is set to ‘Segmented coverage’. Now select the glyph we just created and add code point $1048C (decimal value is 66700). There are two ways to add the mapping:
1) put this value in the value edit field and press the ‘Add’ button. 2) press the ‘Select’ button and then successively select the appropriate block (Osmanya), the character (OSMANYA LETTER GA) and finally press the ‘Ok’ button.
Steps for FontCreator Professional Edition
Select Insert Characters from the Insert menu, and then in the bottom line enter the codepoint for the character (OSMANYA LETTER GA):
Remaining steps; equal for both editions of FontCreator
Now open the Font Settings window (Format -> Settings) to update the range settings. First (on the Header page) set the Contents and Layout version to 3 or higher.
Then on the Ranges tab, select the 'Calculate' button within the Unicode Character Ranges area. This should check range named 'Non-Plane 0 - implies that...'. Press the 'OK' button to return to the main window. Finally your font can be saved and installed. You should be able to test your font with applications that support planes 1 to 16.
To me it is unclear what applications (and even what operating systems) have support for these planes. Microsoft Word 2002 and higher have support for these planes. To add a character into a document, Type the character code (1048C) directly into a document, and then press ALT+X.
Let me know if you have more information about this topic, so I can keep this document up to date.