Script and Font Support in Windows

by Michael S. Kaplan, published on 2007/10/31 12:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/10/31/5800258.aspx


This is some info that Peter Constable put together which I am re-posting with permission... good stuff! :-)

Script and Font Support In Windows

Since before Windows 2000, new script support has been added in each major release of Windows. The following describes changes made in each major release.

Note that support for a script may require certain changes to text stack components as well as changes to fonts. Windows has many different text stack components: GDI, Uniscribe, GDI+, WPF, RichEdit, ComCtl32… The information provided here pertains to GDI and Uniscribe.

Comments on language usage are included in cases in which associations between scripts and languages may not be well known. The list of languages for any given script is not necessarily exhaustive.

 

Windows 2000

This was the first version of Windows that included the Uniscribe component (usp10.dll). Functional benefits included: 

Support for basic Latin, Greek and Cyrillic (without combining marks) existed with W APIs in Windows NT 4 and Windows ME. In relation to complex scripts, support for Arabic, Hebrew and Thai existed in previous versions and was consolidated in Windows 2000 in the Uniscribe component. The following are new scripts supported in Windows 2000 and associated fonts:

New scripts

Region where script is from
Fonts
Comments on language usage
Armenian Eurasia
Sylfaen
Devanagari South Asia Mangal Used for many langauges including Hindi, Marathi, Sanskrit.
Georgian Eurasia Sylfaen
Tamil South Asia Latha

 

Windows XP

New scripts supported and associated fonts:

New scripts
Region where script is from
Fonts
Comments on language usage
Gujarati South Asia Shruti
Gurmukhi South Asia Raavi Used in India for the Punjabi language.
Kannada South Asia Tunga
Syriac Middle East Estrangelo Edessa
Telugu South Asia Gautami
Thaana
South Asia
MV Boli
Used for the Divehi language.

A surrogates shaping engine was also added to Uniscribe to allow display of Unicode supplementary-plane characters in the GDI text stack. (GDI supports wide characters, but does not understand UTF-16 surrogate pairs.) Also, Uniscribe's font fallback mechanism was extended to support fallback for Unicode supplementary planes: for each plane from 1 to 16, a single fallback font can be specified in the registry.

The changes in Uniscribe to support supplementary-plane characters allow Windows XP to support CJK Extension B characters.

 

Windows XP SP2

New scripts supported and associated fonts:

New scripts
Region where script is from Fonts Comments on language usage
Bengali South Asia Vrinda Used for the Assamese language as well as Bengali.
Malayalam South Asia Kartika

 

Windows Vista

New scripts supported and associated fonts:

New scripts
Region where script is from
Fonts
Comments on language usage
Canadian Syllabics North America Euphemia Used for several languages including Inuktitut and Cree.
Cherokee North America Plantagenet
Ethiopic Africa Nyala Used for Amharic and other languages.
Khmer Southeast Asia

DaunPenh
MoolBoran

Lao Southeast Asia DokChampa
Mongolian
North Asia
Mongolian Baiti
Oriya South Asia Kalinga
Sinhala South Asia Iskoola Pota
Tibetan Central Asia Microsoft Himalaya
Yi China Microsoft Yi Baiti

Character coverage for several already-supported scripts was extended to Unicode 4.1 or 5.0. Several fonts were updated accordingly. In particular, support for Latin, Greek, Cyrillic, Hebrew and Arabic was extended in the following fonts:

The new Aero-theme UI font, Segoe UI, also provides Unicode 5.0 support for Latin, Greek, Cyrillic and Arabic.

Extension B fonts for the SimSun and MingLiU families were added, as well as a variation of MingLiU with HKSCS support.

The Uighur language uses Arabic script, which was already supported. However, a different font is required for Uighur typography. The Microsoft Uighur font was added to support this.

Uniscribe's font fallback mechanism for Unicode supplementary planes was enhanced to support different fallback fonts depending on the starting font. In this way, fallback for CJK Extension B characters uses appropriate fonts for the given language. For example, for UI displayed using the SimSun font (Simplified Chinese), the fallback font for Extension B is SimSun-ExtB.

New APIs were added to Uniscribe to support OpenType advanced typographic functionality in non-complex scripts. This provides a way for clients to expose advanced font capabilities such as language-specific glyphs; discretionary ligatures; true typographic small caps, superscripts and subscripts; old-style as well as tabular digits.

Windows Vista includes the Cambria Math font, which has additional tables used to support layout of mathematical formulas. Special software support is also required to render math formulas, however. This is provided in Office 2007, but not in Windows Vista text-stack components.

Of course the obvious question is what's coming next, but it is a bit early for that at the moment.

We should spend at least a little time revelling in what we have, right? :-)

 

This post brought to you by(U+0f02, a.k.a. TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA)


# Mihai on 31 Oct 2007 8:26 PM:

Great summary, nice to have it all in one place (forward thanks to Peter :-)

But "of course the obvious question is": where can we see samples of the "new APIs ... added to Uniscribe to support OpenType advanced typographic functionality in non-complex scripts."

See, it was not that obvious :-)

# Michael S. Kaplan on 3 Nov 2007 10:02 AM:

I think I just lost some comments. Grrrr.

Tom, if you wanted to re-post your comment I'll do my best to make sure I do not over-prune spam again....

# Peter Constable on 5 Nov 2007 11:06 PM:

Re Mihai's question: The following Uniscribe APIs were added in Vista to support OpenType functionality:

# Mangat Bhardwaj on 21 Apr 2008 7:58 AM:

I have no experience of Microsoft Office 2008 for Mac. But no other Mac software, including Apple's own iWork, can properly handle (compose words from) the excellent Unicode fonts of Indian scripts freely downloadable from ildc.gov.in. On the other hand, even the FREE Windows program Open Office can do this.

Jan Kučera on 22 Aug 2011 4:06 AM:

Should not be that early now, any summary of what has come next? :-)


go to newer or older post, or back to index or month or day