FontLab Forum
2012-05-22, 21:54:36 *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Welcome to the FontLab forum, read how to use it! Update: Archives from old MSN forums are now available on our forum.
 
   Home   Help Search Calendar Downloads Tags Login Register  
Del.icio.us Digg FURL FaceBook Stumble Upon Reddit SlashDot

Pages: [1]
  Print  
Author Topic: What glyph combinations ID CS3 is canonizing?  (Read 3107 times)
julehti
Full Member
***

Karma: +0/-0
Posts: 2



« on: 2009-11-08, 13:27:38 »

Maybe this should be asked directly from Adobe, but this might interest on OpenType designers generally.

Simple question: what rules different InDesign versions apply for automatic decomposing/composing of base glyph + combining diacritics?

I just fought with OpenType font, that contain quite large chaining contextual substitutions for placing proper alternative forms of diacritics by base letters and other diacritics. You'll see in this picture e.g. in blue color some different variants of combining acute accent [U+0301]: http://www.jltypes.com/Uvallanne/Malli_1.jpg

All alternatives are handled by glyph classes and contextual substitution rules made on FontLab Studio 5.0.4.

Everything worked fine on the best OpenType aware program Mellel. But on InDesign CS3 couple glyphs did not work well. If on the ID CS3 document there was l (U+006C) + [U+0301] or k (U+006B) + [U+0301], this font did not showed those glyph combinations, which are determined on font's OT features. E.g. l and U+0301 should show the base glyph for l and variant [uni0301.alt12], which you see in that picture after the letter l. Instead the poor ID CS3 had chosen automatically the glyph for "lacute" (U+013A), which looks quite different in this font. The same occurred with k and U+013A, which showed the glyph "uni1E31" i.e. for U+1E31.

I was quite upset, because I though that I had made some mistakes on glyph classes or GSUB features. I looked my code and did not find any mistakes. Also FontLab Studio's Preview Panel has always showed proper OT features faithfully. Then I opened my OT-font file on FontForge and regenerated OTF-font using it. Result was the same: Everything was OK on Mellel but those same couple glyphs failed on ID CS3. Then I picked my old faithful PowerBook Pismo, where is still Mac OS 10.4 and old Indesign 2.0 (not CS 2!) and tested my font. On ID 2.0 everything was OK and completely identical with Mellel's output.

So I was confident, that ID CS3 was making it's own - in this case poor - decisions. When I put something garbage on glyphs " lacute" and "uni1E31" and generated OT-fonts  I saw on ID CS3 this same garbage instead of l (U+006C) + [U+0301] or k (U+006B) + [U+0301].

I did so, that I reshaped the base glyphs for lacute and uni1E31, but generated new variants lacute.alt01 and uni1E31.alt01, which are only triggered, if the language is Czech or Slovak. In this case only lacute would be enough. Now the font work OK also on ID CS3, but is "hacked" on a very stupid way. I shame it.

If InDesign and other Adobe's application are automatically composing glyphs, also other font developers might be harmed, if the rules for glyph composing are not known. Dear Adobe, is there anywhere information available about glyph handling on Adobe's different CS product? It is hard to fight against ghost and study case by case, which glyph combinations are substituted and which are not.

[If you look at the linked picture, you'll easily find out, why I prefer GSUB instead of theoretically possible GPOS (maybe this would not work all): the accent shape and size alters on different contexts.]
« Last Edit: 2009-11-08, 14:18:47 by julehti » Logged
BobH
Sr. Member
****

Karma: +0/-0
United Kingdom United Kingdom

Posts: 18



« Reply #1 on: 2009-11-08, 14:10:28 »

Why not assume that the document might include either composed or decomposed sequences, and in your font use 'ccmp' feature to decompose anything that you want to be decomposed?

Bob
Logged
julehti
Full Member
***

Karma: +0/-0
Posts: 2



« Reply #2 on: 2009-11-08, 14:31:09 »

Why not assume that the document might include either composed or decomposed sequences, and in your font use 'ccmp' feature to decompose anything that you want to be decomposed?

That might be necessary in the future. As far as I know, the only applications that still support complex chaining OpenType substitutions are Adobe's CS applications and Redler's Mellel. In the past we managed with same features for both, but now we have to take into the consideration different behavior.
« Last Edit: 2009-11-08, 14:33:31 by julehti » Logged
Tags:
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!