Naming conventions for PUA?

matteson's picture

Is there a generally accepted convention for naming glyphs relegated to the Unicode Personal Use Area? I.e., when I automatically generate names in FL, I get stuff like '_14' as opposed to 'uniF701'. Is that OK, or should they be in the form 'uniXXX'?

twardoch's picture

Nathan,

as the name says, the Priavte Use Area is for private use. So there is no, and should be no "generally accepted convention". I strongly advise agains using uniXXXX for PUA.

http://partners.adobe.com/asn/tech/type/unicodegn.jsp#4 says

"This specification supports the mapping of glyph names to strings that contain private use area scalar values. For example, the names "Ogoneksmall" and "uniF6FB" both map to the string U+F6FB.

This specification does not include, imply nor assume any particular usage of the PUA; it merely permits to name glyphs such that the restored character strings include PUA code points. It is up to the producers and consumers of glyph names to establish an agreement on the PUA usage.

Font designers should note that establishing this agreement with users of general purpose fonts can be difficult. It is likely that not all tools manipulating character strings built from glyph names will correctly implement the PUA usage, and this can lead to incorrect functionality. It is therefore recommended, for general purpose fonts, that all glyph names convert to strings that do not contain PUA characters."

However, http://partners.adobe.com/asn/tech/type/unicodegn.jsp#6 says: "For glyphs which do not correspond to any character in the Unicode standard, the name will not have any technical usefulness."

The idea behind the uniXXXX convention is, among others, that people who use the font can consult the Unicode Standard to find out what the particular character "means". For example, uni0105 can be deciphered as "LATIN SMALL LETTER A WITH OGONEK".

Since the Private Use Area mappings do not correspond to characters that are permanently encoded in Unicode, it doesn't make sense to call them uniXXXX, since the Unicode standard does not contain any "resolution" on what XXXX means in this case. So it's better to use a meaningful, human-readable name such as "arrowup" or "smallbird".

Adam

matteson's picture

Adam, thanks for that explication. It makes much more sense now.

Cheers

Syndicate content Syndicate content