Page 1 of 1

Private Use characters

Posted: Wed Mar 22, 2017 3:06 pm
by Dennis
One of the font sites I submit to recently rejected a font temporarily. It was a pretty straight forward serif with ligatures and 80% small caps. This was their exact request:

" Your latest font doesn't appear to be PUA encoded and has a number of SMCP characters - Could you PUA encode this for us please?"

I didn't know that this was a standard for small caps as it was my first font featuring them. Normally I will just use the "insert glyphs" until I have the correct amount. I tried adding some empty glyphs from the private use block using "insert characters" and then pasting the glyphs but this didn't work. I tried special paste with every codepoint option and nothing worked. In fact, no matter what I do with any of the characters in the Private Use section it always shows up as blank after it's been saved. Please help me figure this out.

Re: Private Use characters

Posted: Wed Mar 22, 2017 4:01 pm
by Bhikkhu Pesala
It's not standard for Small Capitals or any other glyphs used by OpenType features. See this contribution by Thomas Pinney to a discussion on the topic on Typedrawers.

Having said that, there is no great harm in encoding these glyphs in the Private Use Area. FontCreator uses specific code-points in the PUA to generate Small Capitals when you use the Transform script. If you have the Professional Edition you can run the Transform script "Small Capitals in PUA." This will generate scaled capitals and map them to the PUA.

You can then use copy and paste special to copy your own glyphs to the appropriate code-points, overwriting the outlines, metrics, and glyph names, but leaving the code-points.

Work on a copy of your font in case something goes wrong.

See the PDF Tutorials on working with Transform Scripts and Complete Composites. FontCreator encodes a lot of glyphs to the PUA only so that it can partially automate the process of adding Petite Capitals, Small Capitals, etc. The latest version FC10.1 includes some Transform scripts for creating unmapped glyphs that rely on glyph names instead of code-points.