freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Is FT_CharMap enough? Re: [Devel] CMap support for CID driver.


From: mer
Subject: Is FT_CharMap enough? Re: [Devel] CMap support for CID driver.
Date: Sun, 09 Sep 2001 23:16:27 +0900 (JST)

Hello,

From: Werner LEMBERG <address@hidden>
Subject: Re: [Devel] CMap support for CID driver (Do not commit it!)
Date: Sun, 02 Sep 2001 22:26:19 +0200 (CEST)

> What exactly do you mean (besides CMap selection)?

In writing CID CharMap program, I think FT_CharMap is not enough
to handle CIDCMap files.

The CIDCMap files uses as following cases.

a. convert a charcode to CID.
b. convert a charcode to multipile charcodes. (liguature. See below)
c. character enconding conversion. (e.g. Shift_JIS -> UCS2)
d. convert a charcode to a glyph name
e. convert a charcode to a charcode (or a glyph name)
   with another font. (Rearrange Font).

And OpenType/CFF CID files have registry, encoding and supplement.
So We can use CIDCMap with OpenType/CFF-CID.

I have some questions.
* Do you think FreeType should support ALL CIDCMap files?
* Is there good way to use CIDCMap files with OpenType/CFF CID files?
* Is FT_CharMap enough for other drivers like winfont or pcf?

And I think we had better to update psaux API.  
(e.g. Add HexToInt,
better handling literal object... # Is cmap name "/EUC-H" or "EUC-H"? )

> > * Improve charmap selection routine. (platform, encoding is not
> >   enough)
> 
> Please make suggestions.

We may introduce charmap->ident and add FT_Select_CharMap_By_Ident.
charmap->ident = "EUC-H", "SYMBOL", "iso8859-1", "UCS2, synthesized by FT2",...

> > * composite glyphs support (emulate GSUB???)
> 
> Can you give examples?

We can find an example in Resources/CMap/90pv-RKSJ-UCS2.
(This file bundled with the Adobe Acrobat reader.
 90pv-RKSJ is the CMap for Macintosh KanjiTalk 7,
 Character set: JIS X 0208:1990 (+ external charcters "Apple Gaiji")
 Encoding: Shift_JIS)

---- 90pv-RKSJ-UCS2
(snip)

/90pv-RKSJ-UCS2C usecmap

(snip)

18 beginbfrange
<8591>  <8591>  <f8600030002e>
(snip)
<87fc>  <87fc>  <f8628ca156e36cd54eba>
endbfrange

(snip)
----- 90pv-RKSJ-UCS2C
(snip)

5 begincodespacerange
  <00>   <80>
  <8140> <9FFC>
  <A0>   <DF>
  <E040> <FCFC>
  <FD>   <FF>
endcodespacerange

(snip)
-----

The codepoint, 0x8591, is a glyph "0." and is in the external charcters
area.
And <f8600030002e> defines the composite glyph, 'f860, 0030, 002e'.
So we can convert 0x8591 to 'U+f860(??indicate PUA??), "0", "."'

---- YAMANO-UCHI, Hidetoshi



reply via email to

[Prev in Thread] Current Thread [Next in Thread]