[luatex] Adobe-Identity-0 fonts in LuaTeX
Kazuki Maeda
kmaeda at users.sourceforge.jp
Mon Nov 5 20:01:27 CET 2012
Hello.
On Mon, 29 Oct 2012 10:53:21 +0100
Taco Hoekwater <taco at elvenkind.com> wrote:
> There is a bug in the luatex file search routine that is the cause of
> this: it fails to find Adobe-Identity-0.cidmap (because it is not using
> kpathsea for discovery of that file). As it stands, luatex will only
> find .cidmap files in the current directory. This is definitely a bug.
Thanks. I confirmed what you said. If luatex fails to find the cidmap file,
the cache file kentengeneric.tma has entries as follows:
["descriptions"]={
[0]={
["boundingbox"]={ 100, -120, 900, 880 },
["cidindex"]=1,
["index"]=0,
["name"]=".notdef",
["width"]=1000,
},
{
["boundingbox"]=1,
["cidindex"]=1,
["index"]=1,
["name"]="Identity.1",
["slookups"]={
["ss_l_0_s"]=12,
["ss_l_1_s"]=12,
},
["width"]=1000,
},
...
I removed kentengeneric.tma, copied the cidmap file to the current directory,
and rerun context. Then I got:
["descriptions"]={
[0]={
["boundingbox"]={ 100, -120, 900, 880 },
["cidindex"]=1,
["index"]=0,
["name"]=".notdef",
["width"]=1000,
},
{
["boundingbox"]=1,
["cidindex"]=1,
["index"]=1,
["name"]="uni0001",
["slookups"]={
["ss_l_0_s"]=12,
["ss_l_1_s"]=12,
},
["width"]=1000,
},
...
The "name" of each glyph changed from "Identity.x" to "uni000x".
I see, but this does not resolve the problem.
> > By the way, test-xetex.pdf looks fine, but I found a problem.
> > I tried to copy the text in the PDF, then I got:
> > "<U+0002><U+0003><U+0004><U+0005><U+0006><U+0007><U+0008> <U+000B>".
>
> Adobe Identity maps Kenten Generic exactly like that, and if luatex
> would be able to find the cidmap, you would get the same result.
>
> There is something odd going on with the font's cmap table in that
> it seems to have an internal table that maps the values to the
> \char"2022 etc. but then it says 'Adobe-Identity-0' which seems
> to overrule those, both in ICU and in luatex.
I think that luatex should ignore the cidmap file and use the internal cmap table
when the font is an Adobe-Identity-0 CID-keyed font. This is an exception.
Could luatex's fontloader interpret the internal table?
The latest fontforge (20120731) *without* Adobe-Identity-0.cidmap can recognize
Unicode code point of glyphs in KentenGeneric.otf, e.g.:
(0x0002) U+2022 Identity.2 BULLET
The previous version of fontforge (20110222) can't recognize it:
(0x0002) U+???? Identity.2
Therefore, the latest fontforge might help to resolve this problem.
Best regards,
Kazuki Maeda
More information about the luatex
mailing list