Dear Alexei,
Umm, TN#5092 is a document in the world of pure CID-keyed font,
so it does not care about the mapping between the CID and
TrueType (or CFF) GID, so I'm unsure if it is a solid footstone
to exclude the unordered CIDs.
For example, "GB1 represents the first version of the ordering
based on the Chinese GB 2312-80 character set" describes
"how CID numbers are assigned to the characters? It is based
on the order of GB 2312-80", it might be independent with
the internal of CID-keyed font.
But anyway, yet I have no concrete example to justify my
concern about "zig-zag" mapping between GID and CID.
OK, so I propose - I'll rework my patch based on the assumption
"the larger GID is mapped to the larger CID, no zig-zag
mapping from GID to CID", to avoid 64kByte array allocation.
Then, when ftdump receives a font breaking this assumption,
ftdump aborts with an error, and indicates an email address
(or website?) to report the issue. Is it acceptable workaround?
Regards,
mpsuzuki
On 2023/04/20 11:08, Alexei Podtelezhnikov wrote:
Dear Suzuki,
Indeed. If GID-CIDs are already sorted, it's easy to dump the
available CIDs in a compressed syntax. Although I have no sample
font including unsorted CIDs, I'm unsure whether it is required
in some specifications.
The order of CIDs is in "registry, *ordering*, and supplement". Also
it is mentioned in the specs (5092): "A character collection consists
of an ordered set of all characters". I think we can rely on that.
If there is a CID to glyph index mapping in each file, why doesn't
FreeTyope generate a cmap?
Thanks,
Alexei