[Top][All Lists]
[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