Tibetan Unicode Test Page: Difference between revisions
m (→COOLTYPE) |
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 | 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)