Chapter 3

Chapter 3 | Journey With Opentype

A.Opentype
Opentype always refer to Microsoft and Adobe joint development. But I would ping to Microsoft Opentype spec webpage for most references. You should also check out Adobe Opentype page. Here, i would pick out the fundamental requirement and opentype which tie to burmese script on UniMM.
Opentype Feature tags specification for Burmese is not officially released either Microsoft or Adobe yet.

B.CMAP Index
In fontforge, this has automatically taken out by creating new unicode bmp. In details, Encoding > Reencode > ISO 10646-1(Unicode, BMP). CMAP is drawn both Opentype and Truetype. Therefore, it needs to point Truetype specification as well.

  1. Character codes that do not correspond to any glyph in the font should be mapped to glyph index 0.
  2. No character code should be mapped to glyph index -1.
  3. If the 'cmap' table contains encoding subtables of types 8.0 or higher, the version number would then be set to 1.

C.GSUB Table Summary

Value Type Description
1 Single Replace one glyph with one glyph
2 Multiple Replace one glyph with more than one glyph
3 Alternate Replace one glyph with one of many glyphs
4 Ligature Replace multiple glyphs with one glyph
5 Context Replace one or more glyphs in context
6 Chaining Context Replace one or more glyphs in chained context
7 Extension Substitution Extension mechanism for other substitutions (i.e. this excludes the Extension type substitution itself)
8 Reverse chaining context single  Applied in reverse order, replace single glyph in chaining context
9+ Reserved For future use

D.GDEF Glyph Classes

  1. simple glyphs or base glyphs
  2. ligature glyphs (glyphs representing two or more glyph components)
  3. combining mark glyphs (glyphs that combine with other classes)
  4. glyph components (glyphs that represent individual parts of ligature glyphs)

E.Burmese OpenType Layout Tag Registry

  1. Language System Tag = Burmese
  2. Language System = BRM
  3. Script = Myanmar
  4. Script Tag = mymr

F.OTL Suggested Glyphs

  1. General punctuation and ‘Latin’ numbers
  2. The euro
  3. Suggested glyphs for Microsoft Office
  4. Suggested glyphs for complex scripts
  5. Suggested glyphs for right-to-left scripts

G.OTL Specification

Glyph ID Glyph name Unicode value
0 .notdef undefined
1 .null U+0000
2 CR U+000D
3 space U+0020

H.Shape of .notdef glyph

I.Feature tags*

  1. pref
  2. ccmp
  3. rlig
  4. liga
  5. clig
  6. calt
  7. http://www.microsoft.com/typography/OpenType%20Dev/standard/intro.mspx

J.Character Re-Order
{This is the final moment. I'm still working on this issue. I can't say much here. Please read on.}
Renderer Vs smartFont

  1. #reor
  2. AAT indic rearrange
  3. AAT re-order
  4. state tables
  5. 'mort' table

K.Fontforge
If you were a fontforge user, the following pages must be your references to implement Opentype:

  1. Tutorial #7
  2. lookups.html
  3. contextchain.html
  4. statemachine.html
  5. gposgsub.html
  6. TrueOpenTables.html


Footnote:
* Note that Opentype Feature tags specification for Burmese is not officially released either Microsoft or Adobe yet. The listed feature tags are working tag along the way of UniMM implementation. These feature tags specification might be changed in future.
^ Disclaimer: Opentype (c) by Microsoft and read Terms of use. Opentype (c) by Adobe and read Terms of use. Truetype (c) by Apple and read Terms of use.