Some of my third party fonts don't show up in Yosemite Preview's font menu in the toolbox. I'm pretty sure that the only fonts available for Preview to use in annotation have to be in FontBook's default smart collection called "English," which cannot be edited. When I compare the information of fonts that appear in "English" vs. those that don't, the common thread is that English appears in the "Language" metadata field (under "information") in fonts that show up in the English smart collection. I've used several free font editors looking for a way to add language metadata to fonts I'd like to have available in Preview, but I can't figure out how to do what I want. Can anyone help?
With the help of Rob from Fontstruct.com, I figured it out.
The English smart collection depends on having a certain set of characters.
There are various "official" standards that tell people what characters have to be included in a font for what kind of language support, e.g. https://en.wikipedia.org/wiki/ISO/IEC_8859-1, but there's no single standard that absolutely every font foundry and font-vending website uses. I read a complaint that two foundries producing two fonts with the same set of glyphs can claim wildly different language support.
But there didn't seem to be an easy way (like a spreadsheet) of finding out the minimum number of characters needed for English support.
There are websites like FontDrop! https://fontdrop.info/ and tools built into font-designing software into which you can drop a font file and see what languages are supported, but you have to drill down to find out how those tools are determining language support. FontBook is more lax than FontDrop! about when it thinks there's English support, i.e., some fonts that don't show English support at Fontdrop! are listed by FontBook as having English language support.
Anyway, what I did is find one of my 3rd party fonts that FontBook included in its English smart collection that also had relatively few glyphs. This font has all the characters in Unicode's "Basic Latin" set plus Ä, Å, ä, å, Ö, ö and ¨ (that's A/a with a diaresis and circle, O/o with a diaresis, plus the diaresis itself). On fontdrop.info, this font shows as having only Zulu language support, but in FontBook it has more, including Cornish, English, Indonesian, Malay, Somali, Swahili and a bunch of others I've never heard of (Asu, Bemba, Bena, Chiga, Congo Swahili, Gusii, Kalenjin, Kinyarwanda, Luo, Luyia, Machame, Makhuwa-Meetto, Makonde, Morisyen, North Ndebele, Nyankole, Oromo, Rombo, Rundi, Rwa, Samburu, Sangu, Shambala, Shona, Soga,Taita, Teso, Vunjo).
I took one of my own custom fonts, which is meant to have only a few glyphs, and added dummy glyphs as needed for everything in Basic Latin + the diaresis (figuring that the other characters might not be needed if I had the diaresis) and voilà - the font appears in FontBook's English smart collection and can be used to annotate things in Preview.
To make life complicated, I've got another 3rd party font that FontBook put into the English smart collection that has only the 26 letters (caps and lowercase), numbers and an asterisk, but if you make a custom font that has everything in Basic Latin and nothing else (so the letters, numbers and an asterisk plus a bunch of other stuff), FontBook says the only language supported is Zulu - go figure.
I made a test font that had just upper and lower case letters, numbers and an asterisk and FontBook put my test font into the English smart collection - but as I said, a test font with everything in Basic Latin, which actually has more characters, didn't go into the smart collection.
Of course, Apple could make life simpler and make Preview able to "show all fonts" the way every other Mac app can, but...
BTW, if anyone knows of a site that shows what characters are needed for what language support, I'd love to know about it.
More info: Someone asked Apple how FontBook determines what languages are supported by a font and this is what Apple said:
We compare the [font's] cmap [character to glyph mapping table] to the ICU exemplar strings [provided by Unicode's CLDR project] for each language. We just pick up the latest copy of the open source ICU database for each system release.
Maybe Yosemite's FontBook is buggy, but that wouldn't explain why FontBook thought a font with a just 52 letters and 10 numerals and an asterisk supported English whereas one with the same characters plus more didn't.
It was suggested that we look at the exemplarCharacters tag in the Unicode CDLR XML files.
Here's what the relevant section for English is in the most recent release (which might not be what was in the XML file when Yosemite was released)
Exemplar characters: a b c d e f g h i j k l m n o p q r s t u v w x y z Exemplar characters, type auxillary: á à ă â å ä ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū ÿ Exemplar characters, type Index: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Numbers and punctuation: - , . % ‰ + 0 1 2 3 4 5 6 7 8 9 - ‐ – — , ; \: ! ? . … ' ‘ ’ " “ ” ( ) [ ] § @ * / & # † ‡ ′ ″
I know my older version of FontBook isn't using this data set, but (even ignoring the auxillary characters) I don't see how this information corresponds to what FontBook is telling me are supported languages because FontBook has lots of fonts in the English collection that don't have all the punctuation.
I think one might be stuck doing what I did - determining what your particular version of FontBook thinks are English-supporting fonts by trial and error. If you really want to use a particular font for Preview annotations, adding dummy glyphs or maybe merging your font with a few characters from a related font.
For me, this was an interesting academic exercise. Having learned all this, I think I'll just do my annotations in a Mac app that can "show all fonts"