FontRevealer is a simple application to explore Unicode font substitution behavior and diagnose troublesome font issues in macOS Cocoa applications. It requires macOS 10.9 or later and is a 64-bit Universal Binary, built with Apple’s Hardened Runtime, sandboxed, signed and notarized.
When you launch FontRevealer you should see a window similar to the following:
Initially the top portion of the window is populated with some sample text in 15-point Lucida Grande font. Some of the characters in the sample text are not available in Lucida Grande, so the macOS Cocoa font rendering mechanism will have automatically fetched those characters from some other font in which they are available. In the table underneath the sample text you can see which font each character was drawn from.
The table reveals how a Unicode text string is represented internally in a Cocoa application. Generally it will contain one row for each character; however, a so-called composed character is represented internally as a sequence of codes and occupies multiple rows. You might see this with emojis or Asian text, for example.
Your results may differ from the image shown above, depending on the fonts that are installed on your system. However, if the sample text looks significantly different, it may be that you have a corrupted or incompatible font that will cause problems with Unicode-aware applications.
You can change the sample text to explore how font substitution behavior varies depending on the particular characters you’re using and the order in which they are written. You can also select some or (most usefully) all of the sample text and change its font using the Font menu.
Text can be selected either in the sample box or in the table. Use control-tab to switch back and forth between the two.
Your screenshot shows the first character to be from a Hiragino font; why don't I see that on my system?
You might not have the Hiragino fonts on your system. In that case, some other font (perhaps Zapf Dingbats) will be used to render the ‘pointing hand’ character.
I select one character in the sample text, and two rows in the table are highlighted; what gives?
You have selected a Unicode composed character that is represented internally using multiple consecutive codes, each shown as a line in the table.
I select one row in the table, and an adjacent row gets highlighted too; what gives?
The rows representing a Unicode composed character are automatically selected as a group.
What are these strange arcs and lines I see in the sample text box?
If you’re seeing that sort of thing then you might have LaTeX fonts installed on your system. These can prevent proper rendering of Unicode characters due to incompatibilities with the Unicode character set used in macOS.
What can I do about these LaTeX fonts?
The LCIRCLE10, LCIRCLEW10, LINE10 and LINEW10 fonts (in the ‘LaTeX screen fonts’ suitcase file) are the usual culprits. You might be able to disable them without loss of functionality if you don't need to render arcs, circles and lines in your LaTeX application.
Can I change the textured window appearance?
Why yes, yes you can. Control-click in the textured border area of the window and you’ll see a popup context menu. Select an alternate texture from the menu. (‘Aqua’ is the default macOS window appearance.)
Version 1.4, 1 January 2021
Version 1.3, 25 October 2009
Version 1.2, 26 March 2005