cmap table

I recieved this request from a client
"Note this will require the font file contain a ‘cmap’ table that supports 32-bit codepoints (formats 8, 10, 12, 13 or  14)."

I've never recieved a request 
like  this so any guidance would be appreciated.

Comments

  • Hi James,
    the easiest way to implement cmap tables in a font is with Dtl Otmaster 8.9.
    The cmap table instructions: https://learn.microsoft.com/en-us/typography/opentype/spec/cmap
    You also can open different kind of Microsoft fonts and see how Microsoft does.
    I hope it helps.
    Sami
  • Does your font contain any glyphs for characters outside the Basic Multilingual Plane? That could be characters with a Unicode value greater than U+FFFF (which would be written with more than four digits after the + sign, like U+104B0).

    If so, your font editor will add a 32-bit compatible cmap table for you on export. And if your font does not include such a character, I am not sure why the client would be requesting such a cmap table in the first place.
  • James Montalbano
    James Montalbano Posts: 101
    edited January 30
    That is the scenario @Florian Pircher Thanks for the advice.

    The proper tables were included upon export
  • John Hudson
    John Hudson Posts: 3,227
    Note that format 14 is a special case: this would only be needed if the font supported Unicode variation selector sequences. This format is not supported by common font tools and not automatically exported.
  • John mentioned format 14 as a special case; format 13 also is a special case, intended for "last resort" fonts that use a single glyph for entire ranges of characters.

    Format 12 is recommended for supporting Unicode supplementary-plane characters, which require a 32-bit cmap format.
  • So what would the procedure be to add Formats 13 and 14 to the cmap table?
  • FontCreator supports these formats.

    It has a dialog that allows you to add, edit, and delete Unicode Variation Sequences (cmap format 14).



    The option to mark a font as last resort (cmap format 13) is on the Font Properties panel.



    Note: last resort fonts are not supported by Windows. The format is not meant for regular fonts.
  • John Hudson
    John Hudson Posts: 3,227
    On Mac, I currently use DTL OTMaster to manage cmap format 14. It isn’t ideal, because it means having to maintain a TTF/OTF source specifically for that subtable, and remembering to copy over and possibly update the subtable every time I generate a new version of my font.

    At the moment, we only have a couple of fonts that employ variation selectors—both math fonts—so it isn’t a big deal, but I’m considering adding a cmap format 14 config option to our build tool, so we don’t have to copy and paste the subtable.
  • k.l.
    k.l. Posts: 109
    edited January 31
    The client’s request, as initially cited, does not ask for format 13 and 14 subtables specifically, it merely points out that any of the listed formats might be needed. Possibly the client read this somewhere, tried to be helpful, yet missed that font editors would care anyway.
    While additional notes on format 13 and 14 subtables are interesting, they are besides the point, given the actual request.
  • John Hudson
    John Hudson Posts: 3,227
    they are besides the point, given the actual request
    Agreed, which is why I pointed out that format 14 would only be needed in specific circumstances that James’ project probably doesn’t involve.

  • Thomas Phinney
    Thomas Phinney Posts: 2,896
    What Karsten said.

    Presumably, the font spec involves one or more supra-BMP characters. That is, characters whose codepoints lie outside the Basic Multilingual Plane a.k.a. beyond the double-byte (~ first 64K codepoints) portion of Unicode.

    Somebody on the client side read enough to understand that most fonts do not employ a 'cmap' table that supports that, and decided to put something in their spec for James to specifically request it.

    But what the client didn’t realize is, the tools do all this automatically, and have done for quite a long time now. If James specifies any supra-BMP codepoints in his font editor, at export time the font editor just does the right thing and includes any needed cmap subtable(s).
  • I heard back from the client and the delivered font without the 13 and 14 table format was excepted as correct. So thanks for all the advice.