When to embed fonts in ePub files

by Liza Daly

First, let’s be perfectly clear:

  1. The ePub specification supports embedded fonts.
  2. Embedded fonts are supported through use of the CSS2 @font-face rule.

Reading system support

As of September 2009, the following readers do support @font-face:

  • Adobe Digital Editions
  • Sony Reader

Implicitly, any reading device which uses the Adobe reading SDK should have the same behavior, though I have not confirmed this with actual devices.

The following readers do not support @font-face:

We haven’t added @font-face to Bookworm yet because web browsers started supporting it in a predictable way only recently (Firefox at 3.5, and Safari 3+). Internet Explorer has supported embedded fonts for some time but not in a standards-compliant manner. It’s confusing and unpredictable which font types will work and which won’t. (ePub Zen Garden does use some embedded fonts, but selecting those was difficult and not all web browsers will show them.) If you would like to contribute to the discussion of embedded font support in Bookworm, use the official ticket for that issue.

Note also that the ePub specification does not require @font-face support:

It is advisable for a Reading System to support the OpenType font format, but this is not a conformance requirement; a reading system may support no embedded font formats at all.

Why embed fonts?

There are two reasons:

  • Design: The book designer has chosen a particular font to reflect the style and content of the work
  • Content: The document has particular characteristics that require a specific font

I’m not going to address aesthetics here except to say that my general recommendation is to not embed fonts in an attempt to mimic the print edition. Not all fonts look good on screen, and not all are going to scale well to a greyscale eink reader or a 2″ smartphone display. If you want to embed a font to achieve a particular design, you must test the book on a variety of platforms.

However, there is one case in which embedding a font is critical: foreign languages. Adobe Digital Editions and the Sony Reader have poor out-of-the-box support for diacriticals and other foreign characters in their default fonts. You may also run into trouble with non-Roman character sets.

If your book is absent its accent marks or contains lots of w??rds miss?ng le??ers, you’re going to need to embed a font. In the next post in this series, I’ll show you how.