The CFF specification Chapter 11 to Chapter 13 gives a rough description of what encodings and charset data are organized in a file. CFF Specification. Here are some questions.
Considering the possible existence of multi-font file, and that charstrings are accessed in a per-font manner, the corresponding index should also be meaningful only for each font. However, is there only at most one encoding and one charset table for the file? If so, how are the glyph indices correspond to the ones for the charstrings? If not, do they appear multiple times in the TopDict from where they are accessed? (Resolved. See answer below.)
It seems that charsets give names to each glyph. How about encoding? What is that Card8 data stored in each array element? Given its 256 limit, wouldn't the encoding be very restrained? And why in the supplement format the data come via SID? What is the designed method to access glyphs through encodings (In a hybrid string/code way)? And why again are these data strings when it comes to predefined encodings?
Thanks
Here is an answer to questions 1:
It is a mistake thinking that there is only one
TopDict
in a single font file.TopDict
is an index structure, which contains possibly multiple top table for each font in the FontSet. Therefore the definition ofencoding
andcharset
is naturally per-font. It is a little bit confusing that in the specification's Data Layout, thatName
andTopDict
are not marked with "per-font". See Section 8.