This isn’t really intended as a formal support request, but more a matter of trying to figure something out. Hopefully, I’m not the only one who has experienced this (otherwise this will be a very short-lived discussion thread) and if any answers can be found, then that would be great, too.
Let me add some screenshots so I can make it abundantly clear to everyone what specifically I’m talking about:
The font menu from Microsoft Word 365 in Windows 11:
The font menu from LibreOffice Writer in Linux Mint 21.1:
The font menu from LibreOffice Writer in openSUSE Leap 15.4/Gnome 3:
As you can see, most of the fonts in Word’s font menu are rendered as bitmaps or pseudo-bitmaps, with fonts that you can optionally download rendered from outline data. Conversely, those same font files are rendered from outline data universally in LibreOffice in both openSUSE and Linux Mint. However, before we proceed any further and you try to formulate a theory, I need to explain exactly what data is being used here on the back end.
A few years ago when I was working at another job that necessitated I regularly trade back and forth in MS Office documents with co-workers and higher-ups, I noticed that some of the fonts I’d pulled over from my Windows installation didn’t render correctly within the documents I was using. I was kind of bummed about that and sought about finding the root cause. Eventually I discovered what was going on, which I will explain in sufficient detail in the next two paragraphs. Suffice it to say, I resolved the issue.
There are essentially two kinds of TrueType files: the standard TrueType File, or “xyz.ttf”, and the TrueType Collection file, or “xyz.ttc”. If there is anyone here who, like me, has in-depth experience with Classic Mac OS (i.e. Mac OS 1.0 → 9.2.2), you will remember the olden days when we used these font “suitcase” files which contained strictly bitmap data for each typeface. That is, Times Roman, or Times Italic, or Times Bold, or Times Bold Italic. One would typically find bitmaps ranging from 7 or 8 point up through 24 point. PostScript (either Type 1 or Type 3) would be contained separately in individual PostScript outline files. Well, “.ttc” files are kind of like Classic Mac OS font suitcases, except that in addition to bitmap data, they can contain outline data. .ttc files are capable of containing just bitmap data, just outline (.ttf) data, or both. If you use a utility like FontForge to explore various Microsoft-generated .ttc files, you will find that some but not all contain both bitmap and outline data. You’ll also find that most of the Microsoft-supplied TrueType fonts are in .ttf files, and just a few are in .ttc to begin with.
Frankly, I have absolutely no idea why Microsoft did this, nor do I have any idea why they continue to ship the same files, other than laziness and a lack of the perception to do anything about it. Anyhow…
I have not conducted an exhaustive test of all or even most desktop environments, but what I have determined is that both KDE and Gnome (and therefore Cinnamon) will prefer the bitmap data to the outline data for on-screen display (printing is unaffected as far as I know) when presented a .ttc with both types. The solution I came up with is to use FontForge to extract just the outlines from a .ttc (this is a one-at-a-time laborious process) and then construct a new .ttc file with just the outline data. There’s a specific sequence of steps to perform this which I am not going to detail here in this post. Once you provide KDE, Gnome, or Cinnamon a .ttc with ONLY outline data in it, it will render the font correctly in all instances (menus and document contents). I have therefore created a separate and distinct library of my fonts but with the outline-only .ttc files instead of the originals.
I happened to notice today as I was messing around with MS Word in Windows 11 that it didn’t render the fonts in the Font menu correctly, either, and thought that was a bit curious. So, I replaced the .ttc files I knew were involved, and it still refused to render the fonts correctly. Moreover, I have a number of OpenType fonts installed (I have no idea if there is an OTF equivalent to .ttc and if there is I don’t have any such files) and they are rendered, again, as though there were some bitmap data being used. In the case of my OpenType files, they only contain outline data, and PostScript data at that (OTF allows for the use of either PostScript or TrueType outline data).
Now, before you start jumping to any hasty conclusions, let me state the following: I have all of Windows 11’s ClearType font technology enabled and it’s up and running. I’ve gone through and ensured that everywhere there’s a ClearType-related toggle, it’s “on”, and all optimizations are there and working, insofar as I can tell, exactly the way they’re supposed to.
This has been a real head-scratcher for me, and I’m curious if anyone here has any suggestions or comments on the topic.
Thanks in advance!