Since embedding fonts (especially for running text) is highly controversial I came up with the idea of just using some of the built-in fonts of different e-readers.
I saw that my Kindle Paperwhite comes with Bookerly, Baskerville, Amazon Ember, Caecilia etc. and my Tolino Page has built-in Bitter, Fira Sans, SourceSans etc.
So the idea was instead of embedding fonts or assigning just generic font names like "sans-serif", I could use some of the existing font names:
Code:
font-family: "Bitter"; "Caecilia"; serif;
When opened on a Tolino reader, the font "Bitter" should be used. When opened on a Kindle reader (where Bitter isn't available) it would be "Caecilia" instead. And as a fallback for other readers there still is the generic "serif".
Nice plan. Just doesn't work.
In Sigil I created a test epub file containing short texts formatted with different font names, just to see which ones would be displayed correctly on what reader. (I also made a mobi version using the KindleGen plugin.)
In addition to the e-reader's built-in font names I also used common Windows font names like Arial and Times New Roman, and I also embedded three less common fonts to see how they are displayed.
My Kindle Paperwhite seem to show most of it as intended. The built-in fonts like Caecilia or OpenDyslexic are used correctly. The missing fonts are replaced by a sans-serif font (I assume it's Helvetica). The embedded fonts are also shown correctly.
Arial ist replaced by Helvetica - but since every unknown font is replaced by Helvetica it doesn't mean that Kindle really recognizes Arial. (Times New Roman and Courier New are also replaced by Helvetica.)
My Tolino Page shows almost everything in it's own standard font (which is an extra serif font that doesn's show up among the fonts I can select manually). That means, on Tolino you cannot use the built-in fonts by assigning their font names via css (which makes my initial idea obsolete). The only way to use these fonts is manually selecting one of them at a time in the settings.
Only the generic names "monospace" and "sans-serif" lead to different fonts, and also the three embedded fonts are shown correctly.
Now I wanted to know what happens when I change the standard font settings of each reader.
Tolino is first set at "Publisher's font". When I select one of the alternative fonts, the whole text is shown in this newly selected font. Neither the embedded fonts nor the generic font names are used any more.
Kindle is also set to "Publisher Font" as a default and behaves just like Tolino: When I select any new font, all the existing fonts get replaced by the new one.
But then I wanted to know if it can make a difference if the ebook files contains embedded fonts or not. So I created an extra "nef" Version (No Embedded Fonts) of my test file.
For Tolino it doesn't make a difference. As soon as I switch off "Publisher's font" and select any other font in the list, no css font definition is respected any more. So there is no way to just select a different "running text font" and leave all the assigned fonts untouched.
Kindle on the other hand shows a Difference. When I open the version without the embedded fonts, there isn't even a "Publisher Font" option any more, and the pre-selected choice is now Bookerly. All the other fonts are shown with the css assigned typeface, just like the other version when "Publisher Font" is enabled. The difference is that I can now choose which font to use as a replacement for missing font files - a choice that Kindle doesn's give me any more as soon as the ebook file also contains some embedded fonts. Strange.
----------------------
I hope this wasn't too confusing.
Maybe people who own some other e-readers can try out my test files as well and post their experiences here.