Tibetan Unicode Test Page: Difference between revisions

From Rangjung Yeshe Wiki - Dharma Dictionary
Jump to navigation Jump to search
mNo edit summary
Line 10: Line 10:
The OpenType features Microsoft has specified for Tibetan are
The OpenType features Microsoft has specified for Tibetan are


ccmp  Composition Decomposition  
*ccmp  Composition Decomposition  
blws  Below Base Substitution
*blws  Below Base Substitution
abvs  Above Base Substitution
*abvs  Above Base Substitution
calt  Contextual Alternatives
*calt  Contextual Alternatives
aalt  access all alternatives
*aalt  access all alternatives
blwm  Below Base Mark Positioning
*blwm  Below Base Mark Positioning
abvm  Above base Mark Positioning
*abvm  Above base Mark Positioning
kern  Kerning
*kern  Kerning


All but calt and kern are  features used  in Microsoft Himalaya font. Paul Nelson (Microsoft) says calt &  kern are also supported by Word 2003 sp2, Word 2007 & Windows Vista versions of Uniscribe. (I've used these two features in Jomolhari and they work with Uniscribe)  
All but calt and kern are  features used  in Microsoft Himalaya font. Paul Nelson (Microsoft) says calt &  kern are also supported by Word 2003 sp2, Word 2007 & Windows Vista versions of Uniscribe. (I've used these two features in Jomolhari and they work with Uniscribe)  
Line 27: Line 27:
====Uniscribe Win XP====
====Uniscribe Win XP====
According to Sergey Malkin [Microsoft] Uniscribe shipped with XP SP2 had no specific support for Tibetan but applied "generic" features to Tibetan including
According to Sergey Malkin [Microsoft] Uniscribe shipped with XP SP2 had no specific support for Tibetan but applied "generic" features to Tibetan including
locl Localized Forms
*locl Localized Forms
ccmp Composition / Decomposition  
*ccmp Composition / Decomposition  
liga Standard Ligatures
*liga Standard Ligatures
calt Contextual Alternatives
*calt Contextual Alternatives
mark Mark Positioning  
*mark Mark Positioning  
"etc." - [probably rlig, mkmk, kern as well]  
*"etc." - [probably rlig, mkmk, kern as well]  
 
There was no script-specific logic for Tibetan in XP Uniscribe
There was no script-specific logic for Tibetan in XP Uniscribe


Line 44: Line 45:
Pango  2007-05-15  
Pango  2007-05-15  


ccmp Composition / Decomposition
*ccmp Composition / Decomposition
locl Localized Forms
*locl Localized Forms
blws  Below Base Substitution
*blws  Below Base Substitution
abvs  Above Base Substitution  
*abvs  Above Base Substitution  
psts  Post-base Substitutions
*psts  Post-base Substitutions
clig  Contextual Ligatures
*clig  Contextual Ligatures
calt  Contextual Alternative
*calt  Contextual Alternative
dist  Distances  
*dist  Distances  
blwm  Below Base Mark Positioning
*blwm  Below Base Mark Positioning
abvm  Above Base Mark Positioning
*abvm  Above Base Mark Positioning
kern  Kerning Positioning
*kern  Kerning Positioning
mark  Mark to base positioning
*mark  Mark to base positioning
mkmk  Mark to mark Positioning
*mkmk  Mark to mark Positioning


Previous to this revision ccmp,locl, calt, kern, mark, mkmk were not supported  
Previous to this revision ccmp,locl, calt, kern, mark, mkmk were not supported  
Line 66: Line 67:


mark and mkmk not necessary as functionality covered by blwm & abvm -  
mark and mkmk not necessary as functionality covered by blwm & abvm -  
mark and mkmk also not used in any Tibetan fonts
mark and mkmk also not used in any Tibetan fonts


Line 75: Line 77:
As far as I can make out for Tibetan QT (KDE) supports only  
As far as I can make out for Tibetan QT (KDE) supports only  


ccmp  
*ccmp  
blws
*blws
abvs
*abvs


No GPOS features
No GPOS features
Line 87: Line 89:
has the following OT features defined for Tibetan script
has the following OT features defined for Tibetan script


ccmp Composition / Decomposition
*ccmp Composition / Decomposition
blwf Below-base Forms  
*blwf Below-base Forms  
pres Pre-base Substitutions  
*pres Pre-base Substitutions  
blws Below Base Substitutions
*blws Below Base Substitutions
abvs Above Base Substitutions
*abvs Above Base Substitutions
psts Post-base Substitutions
*psts Post-base Substitutions
blwm Below Base Mark Positioning
*blwm Below Base Mark Positioning
abvm Above Base Mark Positioning  
*abvm Above Base Mark Positioning  
dist Distance
*dist Distance
pref Pre-base Forms  
*pref Pre-base Forms  
abvf Above base forms
*abvf Above base forms
clig Contextual Ligatures
*clig Contextual Ligatures
mkmk Mark to mark positoning / attachment
*mkmk Mark to mark positoning / attachment


? no kern, calt, aalt  
? no kern, calt, aalt  
Line 114: Line 116:
According to <http://www.typotheque.com/fonts/opentype_feature_support/>
According to <http://www.typotheque.com/fonts/opentype_feature_support/>


Adobe InDesign CS3  support:  
Adobe InDesign CS3  supports:  
*ccmp  Composition / Decomposition   
*ccmp  Composition / Decomposition   
*liga  Standard Ligatures  
*liga  Standard Ligatures  
Line 138: Line 140:
====OSX 1.5====
====OSX 1.5====


Peter Lofting said that OpenType support in Leopard does no pre-processing for Tibetan and suggested that features that work in Adobe apps should work under  
Peter Lofting said that OpenType support in Leopard does no pre-processing for Tibetan and suggested that features that work in Adobe apps should work under Leopard and...
Leopard and...


"To clarify OT support further: there is complete GSUB and GPOS support except for contextual alternate lookups. Simple substitutions - such as those required for Tibetan stacking, are fully supported.
''"To clarify OT support further: there is complete GSUB and GPOS support except for contextual alternate lookups. Simple substitutions - such as those required for Tibetan stacking, are fully supported.''


The main issue you face is the absence of Unicode pre-processing, so you need to know what pre-processing Windows does to Tibetan and add the equivalent in the form of GSUB actions. "
''The main issue you face is the absence of Unicode pre-processing, so you need to know what pre-processing Windows does to Tibetan and add the equivalent in the form of GSUB actions."''


When I asked him about support for specific OT features used for Tibetan Peter said he didn't have time to look into this until after Leopard release.
When I asked him about support for specific OT features used for Tibetan Peter said he didn't have time to look into this until after Leopard release.

Revision as of 11:29, 7 September 2007

A rough draft summary outlining current state OpenType support for Tibetan script in various OT layout engines:

(I compiled this in order to try and work out whether it is practical to make a truly "Platform Independent Tibetan Unicode Font")


UNISCRIBE (usp10.dll)

Uniscribe Word 3003, 2007, Win Vista

The OpenType features Microsoft has specified for Tibetan are

  • ccmp Composition Decomposition
  • blws Below Base Substitution
  • abvs Above Base Substitution
  • calt Contextual Alternatives
  • aalt access all alternatives
  • blwm Below Base Mark Positioning
  • abvm Above base Mark Positioning
  • kern Kerning

All but calt and kern are features used in Microsoft Himalaya font. Paul Nelson (Microsoft) says calt & kern are also supported by Word 2003 sp2, Word 2007 & Windows Vista versions of Uniscribe. (I've used these two features in Jomolhari and they work with Uniscribe)

These versions of Uniscribe also do some re-ordering (pre-processing) of Tibetan marks. (need to get specific details of this re-ordering)

[Do features which the OT spec says "applies to all scripts" or "script sensitivity: none" *and* "should be on by default" work too?]

Uniscribe Win XP

According to Sergey Malkin [Microsoft] Uniscribe shipped with XP SP2 had no specific support for Tibetan but applied "generic" features to Tibetan including

  • locl Localized Forms
  • ccmp Composition / Decomposition
  • liga Standard Ligatures
  • calt Contextual Alternatives
  • mark Mark Positioning
  • "etc." - [probably rlig, mkmk, kern as well]

There was no script-specific logic for Tibetan in XP Uniscribe

<http://www.microsoft.com/typography/otfntdev/tibetot/features.htm> lists only ccmp, blws, abvs, blwm, and kern - but that document is unfinished and appears not to have been updated since March 2002

PANGO

(Used in Gnome desktop, Inkscape, Mozilla etc. on Linux)

<http://svn.gnome.org/viewcvs/pango/trunk/modules/tibetan/tibetan-fc.c?view=markup&pathrev=2307> Pango 2007-05-15

  • ccmp Composition / Decomposition
  • locl Localized Forms
  • blws Below Base Substitution
  • abvs Above Base Substitution
  • psts Post-base Substitutions
  • clig Contextual Ligatures
  • calt Contextual Alternative
  • dist Distances
  • blwm Below Base Mark Positioning
  • abvm Above Base Mark Positioning
  • kern Kerning Positioning
  • mark Mark to base positioning
  • mkmk Mark to mark Positioning

Previous to this revision ccmp,locl, calt, kern, mark, mkmk were not supported lack of ccmp support was a big problem.

[psts & dist seem redundant for Tibetan script - and not used in any fonts. Seem to be leftovers from Khmer shaping engine on which Tibetan shaping was based]

if aalt is added then all features supported by Uniscribe would be in Pango.

mark and mkmk not necessary as functionality covered by blwm & abvm -

mark and mkmk also not used in any Tibetan fonts


QT

Used in KDE desktop and applications

<http://websvn.kde.org/trunk/qt-copy/src/gui/text/qscriptengine.cpp?revision=700774&view=markup> As far as I can make out for Tibetan QT (KDE) supports only

  • ccmp
  • blws
  • abvs

No GPOS features

(Enough features for a minimal Tibetan font but needs support of positioning features for good shaping)

ICU

<http://source.icu-project.org/repos/icu/icu/trunk/source/layout/TibetanReordering.cpp> has the following OT features defined for Tibetan script

  • ccmp Composition / Decomposition
  • blwf Below-base Forms
  • pres Pre-base Substitutions
  • blws Below Base Substitutions
  • abvs Above Base Substitutions
  • psts Post-base Substitutions
  • blwm Below Base Mark Positioning
  • abvm Above Base Mark Positioning
  • dist Distance
  • pref Pre-base Forms
  • abvf Above base forms
  • clig Contextual Ligatures
  • mkmk Mark to mark positoning / attachment

? no kern, calt, aalt

seems to have redundant features (blwf psts dist pref) left over from Khmer shaping engine - not needed for Tibetan

ICU4J

??? Don't know

COOLTYPE

(Adobe's own cross platform OT Shaping Engine - used in CS3)

According to <http://www.typotheque.com/fonts/opentype_feature_support/>

Adobe InDesign CS3 supports:

  • ccmp Composition / Decomposition
  • liga Standard Ligatures
  • rlig Required ligatures
  • mark Mark Positioning
  • mkmk Mark to Mark Positioning

(I've only included those features that may be usable for normal Tibetan shaping here) While there is no specific support for Tibetan I'm assuming that these generic features probably do get applied to Tibetan (need to test to confirm this)as people from Adobe have told me "generic features should work"

There may be proper support (matching Microsoft's feature set) for Tibetan in CS4.

Meliell supports same features as Indesign CS3 - a Tibetan font which worked with Cooltype might also work with Meliell.

Apple

OSX 1.4.8

According to <http://rywiki.tsadra.org/index.php/Platform_Independent_Tibetan_Unicode_Font> Mac OSX 10.4.9 supports rlig and to get a Tibetan font to work - ligature lookups (normally under ccmp or blws) should be duplicated under rlig.

That would be enough *only* in fonts that had complete ligatures for all the stacks you want to support. You'd still need something like calt as well to contextually substitute vowel forms. (This may work - I haven't tried it yet)

OSX 1.5

Peter Lofting said that OpenType support in Leopard does no pre-processing for Tibetan and suggested that features that work in Adobe apps should work under Leopard and...

"To clarify OT support further: there is complete GSUB and GPOS support except for contextual alternate lookups. Simple substitutions - such as those required for Tibetan stacking, are fully supported.

The main issue you face is the absence of Unicode pre-processing, so you need to know what pre-processing Windows does to Tibetan and add the equivalent in the form of GSUB actions."

When I asked him about support for specific OT features used for Tibetan Peter said he didn't have time to look into this until after Leopard release.

Notes

Lookups under one feature can often be moved to another feature (or reduplicated under another feature) - provided that feature supports the same type of lookup and the lookup gets processed in the proper sequence.

Decomposition is a bit of a problem as ccmp is about the only feature that seems to support one to many (decomposition) GSUB lookups. This mainly effects pre-composed vowels (U+0F73,

Stacks can be composed using ccmp, blws, rlig, liga ...

Contextual vowel forms can be shaped using features that support contextual substitution (blws, abvs, calt) - provided you have enough contextual forms you can get away without positioning lookups. Though positioning, character spacing might be less than ideal

Features supported by up-to-date versions of Uniscribe, Pango & ICU are fairly consistent.

Supporting XP Uniscribe would require moving formation of all stack ligatures to ccmp and reduplicating vowel substitutions under calt (this would cause problems with all but latest versions of Pango & ICU - since older versions lacked ccmp support)

Supporting Apple OSX may require reduplicating ligature lookups under rlig and possibly using calt for vowel substitution.

For list of individual OT features and lookup types supported under each see: <http://www.microsoft.com/typography/otspec/featuretags.htm>

Chris 12:23, 7 September 2007 (EDT)