[Dev-luatex] fontforge library can't load OpenType file correctly

Hans Hagen pragma at wxs.nl
Mon Mar 2 09:29:10 CET 2009


luoyi wrote:
> could you tell me where  can I find the document about the structure
> of the subfonts table ?  I  can't fullly understand your example code
> without know the exactly structure of the table.
> 
> thank you

Subfonts is just a way of having more fonts in one file; the subtables 
and the cidinfo table has the info that points to a cid vector (in your 
case an adobe gb one). What you do with these subtables is up to youself 
(or the macro package): use only one, merge them, merge a few etc

This is a subfonts entry

  ["subfonts"]={
   {
    ["ascent"]=800,
    ["cidinfo"]={
     ["supplement"]=0,
     ["version"]=0,
    },
    ["creationtime"]=1235924579,
    ["descent"]=200,
    ["design_range_bottom"]=0,
    ["design_range_top"]=0,
    ["design_size"]=0,
    ["encodingchanged"]=0,
    ["extrema_bound"]=0,
    ["fontname"]="AdobeSongStd-Light-Alphabetic",
    ["fontstyle_id"]=0,
    ["glyphcnt"]=700,
    ["glyphmax"]=700,
    ["glyphs"]={
     [0]={},
     {},

["fontname"]="AdobeSongStd-Light-Alphabetic",
["fontname"]="AdobeSongStd-Light-Dingbats",
["fontname"]="AdobeSongStd-Light-Generic",
["fontname"]="AdobeSongStd-Light-HRoman",
["fontname"]="AdobeSongStd-Light-HRomanRot",
["fontname"]="AdobeSongStd-Light-Hanzi",

etc. Shapes can be shared which makes the font more compact. Cid fonts 
are currently somewhat inefficient, mostly because the vectors have many 
empty entries

    ["glyphs"]={
     [0]={},
     {},
     {},
     {},
     {},

so future releases of luatex miight use the

    ["glyphs"]={
     [12345]={...},
     {...},
     {...},
     {...},
     [23456={...},

syntax

In practice you can just overlay these subfonts and then use the info 
from the external cid vector

from the manual: "The cidinfo will be used as the character set (the CID 
/Ordering and /Registry keys)."

once the font table structure is 'frozen' we will add some more detailed 
  info to the manual

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the dev-luatex mailing list