• 2/8/2018 • 9 minutes to read • Contributors • • In this article Developing OpenType Fonts for Thai Script This document presents information that will help font developers create or support OpenType fonts for all Thai script languages covered by the Unicode Standard. Thai script is used to write Thai, as well as other Southeast Asian languages such as Pali and Sanskrit. Introduction Font developers will learn how to encode complex script features in their fonts, choose character sets, organize font information, and use existing tools to produce Thai fonts. Registered features of the Thai script are defined and illustrated, encodings are listed, and templates are included for compiling Thai layout tables for OpenType fonts. This document also presents information about the Thai OpenType shaping engine of Uniscribe, the Windows component responsible for text layout. In addition to being a primer and specification for the creation and support of Thai fonts, this document is intended to more broadly illustrate the OpenType Layout architecture, feature schemes, and operating system support for shaping and positioning text.
Download 100 Dotted Fonts. 1001 Free Fonts offers a huge selection of Dotted Fonts for Windows, Macintosh and Linux. Jun 25, 2014 - Looking around for all the available Khmer Unicode fonts can be time. Hi, Do you have a khmer dotted font for tracing worksheets for kids?
Glossary The following terms are useful for understanding the layout features and script rules discussed in this document. Base Glyph - Any glyph that can have a diacritic mark above or below it. Layout operations are defined in terms of a base glyph, not a base character, as a ligature may act as the base.
Character - Each character represents a Unicode character code point. For example, the 'ko kai' character is U+0E01. Combining Mark - A vowel sign or tone mark, positioned above or below a character to provide pronunciation guidance. Cluster - The effective 'unit' of Thai writing systems, consisting of a consonant, vowel signs, combining tone marks, and independent vowel letters.
Glyph - A glyph represents a form of one or more characters. Shaping Engine. • • • • The Uniscribe Thai shaping engine processes text in stages. The stages are: • Analyze characters for valid diacritic combinations • Shape (substitute) glyphs with OTLS (OpenType Library Services) • Position glyphs with OTLS The descriptions which follow will help font developers understand the rationale for the Thai feature encoding model, and help application developers better understand how layout clients can divide responsibilities with operating system functions. Analyze Characters The unit that the shaping engine receives for the purpose of shaping is a string of Unicode characters, in a sequence. The contextual analysis engine verifies valid diacritic combinations.
For additional information, see. Shape Glyphs with OTLS The first step Uniscribe takes in shaping the character string is to map all characters to their nominal form glyphs.
Next, Uniscribe calls OTLS to apply the features. All OTL processing is divided into a set of predefined features (described and illustrated in the section). Each feature is applied, one by one, to the appropriate glyphs in the syllable and OTLS processes them. Uniscribe makes as many calls to the OTL Services as there are features. This ensures that the features are executed in the desired order.
The steps of the shaping process are outlined below. Not all of the features listed apply to all Thai script languages. Shaping features: • Language forms • Apply feature ' ccmp' to preprocess any glyphs that require composition or decomposition. Position Glyphs with OTLS Uniscribe next applies features concerned with positioning, calling functions of OTLS to position glyphs. Positioning features: • Kerning • Apply feature ' kern' to provide pair kerning between base glyphs requiring adjustment for better typographical quality. • Mark to base • Apply feature ' mark' to position diacritic glyphs to the base glyph.
• Mark to mark • Apply feature ' mkmk' to position diacritic glyphs to other diacritic glyphs. Invalid Combining Marks Combining marks and signs that appear in text not in conjunction with a valid consonant base are considered invalid. Uniscribe displays these marks using the fallback rendering mechanism defined in the Unicode Standard (section 5.12, 'Rendering Non-Spacing Marks' of the Unicode Standard 3.1), i.e. Positioned on a dotted circle. Please note that to render a sign standalone (in apparent isolation from any base) one should apply it on a space (see section 2.5 'Combining Marks' of Unicode Standard 3.1).
Uniscribe requires a ZWJ to be placed between the space and a mark for them to combine into a standalone sign. For the fallback mechanism to work properly, a Thai OTL font should contain a glyph for the dotted circle (U+25CC). In case this glyph is missing from the font, the invalid signs will be displayed on the missing glyph shape (white box).