[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