Differences between revisions 9 and 37 (spanning 28 versions)
Revision 9 as of 2009-12-28 12:18:08
Size: 5926
Editor: KaiJaeger
Comment:
Revision 37 as of 2017-11-21 10:08:49
Size: 1678
Editor: KaiJaeger
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<<TableOfContents>>
Line 5: Line 3:
== What it is == Note that this page is connected to the article [[ http://archive.vector.org.uk/art10500400 | Understanding Font Embedding]] on [[http://www.vector.org.uk/ | Vector]], the APL magazine of the British APL association. Everything that is subject to changes is on this page on the APL Wiki, and it 's going to be updated whenever needed.
Line 7: Line 5:
'''''Font embedding''''' simply means that when a web site is in need for a particular font to display a particular piece of text then this font is downloaded and installed temporarily by the browser. == Update 2014-01-14 ==
Line 9: Line 7:
From a designers point of view this is really nice, but there are important issues regarding licensing. Since the article was published on Vector things have improved. Internet Explorer now understands "local". All modern browsers (including IE 9, 10 & 11) on all platforms but Opera Mini at least pretend to support the relatively new WOFF font format - see http://caniuse.com/woff for details. For that very reason the APL Wiki is downloading the WOFF version of the APL385 Unicode font now.
Line 11: Line 9:
For APLers it's a chance to display APL code correctly on any machine even if that machine does not have an appropriate APL Unicode font installed. However, I found that Opera on Windows does not make use of the WOFF font. Therefore I've also added the TTF format; that fixed the problem. This is the only reason why the TTF font is still offered for download.
Line 13: Line 11:
== What it is not == == Web server issues ==
Line 15: Line 13:
This article assumes that you have sufficient skills in CSS. Because IE now supports WOFF we don't need the awkward EOT font anymore. That means we don't need to change anything on the web server side anymore.
Line 17: Line 15:
== History == == Linux ==
Line 19: Line 17:
Font embedding was introduced by Microsoft with Internet Explorer 4 a long long time ago. This was never adapted by other browsers, and there was a reason for that: IE only accepts so-called EOT-fonts. Now this format, although it has its merits, was owned by Microsoft, and Microsoft never even tried to make it a standard. For that reason other browser vendors stood away from this format.

In 2009, two things changed: Firstly, almost all other browsers (with the notable exception of Chrome) started to implement font embedding, although in a very different way. Secondly, Microsoft made the EOT-format public and at the same time started to make it a W3C-accepted standard.

That's good news, although for the time being it means that one has to provide different CSS rules for the IE and all the other browsers.

== IE and EOT ==

EOT, which stands for "Embedded Open Type", addresses two important issues:

 * It can be reduced to contain not all but only those characters of a particular font which got actually '''used''' on a particular web site.

 * It can be bound to a particular URL. In other words, only when the font is downloaded from a URL contained in the EOT file itself will IE make use of it. These allows to address licensing issues.

The way Microsoft has implemented it in terms of CSS rules is unfortunately different from all the other browsers: You cannot specify "Local" or "Format". If you are interested in details, this is the best source I managed to find: [[http://randsco.com/index.php/2009/07/04/p680|Embedding fonts: cross-browser problems]]

== TTF fonts ==

TTFs (True Type Fonts) are used by the rest of the world for embedding fonts. Unfortunately there is no way to address licensing issues. This is bad news because it means that strictly speaking one can use only free TTFs for embedding purposes. Good news is that thanks to Adrian Smith, the owner and originator of "APL385 Unicode", everybody is allowed to distribute the "APL385 Unicode" TTF freely.

== Converting a TTF font into EOT ==

In order to use the "APL385 Unicode" fonts for font embedding in IE we need to convert this font into an EOT file. Now if you are interested in how to do this, here are the details: <<SeeSaw(section="EOT", toshow="<<Show>>", tohide="<<Hide>>", bg="#FEE1A5", speed="Slow")>>
{{{{#!wiki seesaw/EOT/EOT-bg/hide

There is a tool available from Microsoft called WEFT that theoretically allows us to do this, but unfortunately IE won't use the resulting EOT file. The reasons are unknown.

However, there is a tool available that '''can''' create an EOT file that is used by IE8. Originally it was a UNIX/LINUX project:

http://code.google.com/p/ttf2eot/

This tool has a disadvantage: it does not allow us to bind the EOT-file to a particular URL. In our case, however, it doesn't matter.

The syntax to convert any font is easy; given you are in a directory where the exe as well as the font to be converted is located:

{{{
  ttf2eot.exe OLD-FONT.ttf NEW-FONT.eot
}}}
}}}}

But you don't have to: Instead you can download a zipped version of the EOT file from this page, see the "Downloads" section at the very end of the page.

== The CSS ==

Here is CSS code that defines a font "APLFont" from an embedded font. Note that IE '''must''' come first, and that the IE part '''must not''' contain "local" and "format" - IE doesn't understand them and as a result fails to process not only that CSS rule but the rest of the CSS file as well. Other browsers will try to understand the rule but finally ignore it because it's not referring to a TTF font. Then they will carry on to process the remaining parts of the CSS file.

Note that the link http://misc.aplteam.com/apl385.eot is a real one but of course you should '''not''' use it in your own CSS file.

{{{
/* IE first */
@font-face {
 font-family: 'APLFont';
 src: url("http://misc.aplteam.com/apl385U.eot");
}

@font-face {
 font-family: 'APLFont';
 src: url("http://misc.aplteam.com/apl385.ttf");
}

}}}

Now "APLFont" can be used in the same way as any other font-family in CSS. An example:
{{{
pre{
font-family:"APL385 Unicode","APLX Upright",APLFont,monospace;}
}}}

Note that this lets the browser try to use a locally installed "APL385 Unicode" font first. If there is no such font installed on the local machine, it tries to find a locally instakked "APLX Upright". Only when this fails, too, it makes use of "APLFont" which in turn is responsible for downloading the font in question.

== Performance considerations ==

Because the IE does not recognize the "Local" directive, there is no way to tell IE "download this font only if that font (''this'' and ''that'' may or may not be the same font) is '''not''' installed locally. Which mans that IE will '''always''' download the font.

This is not as bad as it sounds because the EOT version of a font is compressed anyway, so an EOT file will always be smaller than the corresponding TTF file. You you also savely assume that somebody interested in APL has a fast Internet connection, so downloading
All browsers under Linux should support the APL chars now. I've tested Firefox and Chrome with Ubuntu.
Line 96: Line 20:
 * [[attachment:apl385.woff.zip]] (The "APL385 Unicode" font as WOFF file; should suffice for all modern browsers)
 * [[attachment:apl385.ttf.zip]] (The "APL385 Unicode" font as TTF file; needed for Opera only)
 * [[attachment:fontface.zip]] (Sample CSS which should work with all modern browsers)
Line 97: Line 24:
 * [[attachment:apl385.eot.zip]] (The "APL385 Unicode" font as EOT file; needed for IE) Author: KaiJaeger
Line 99: Line 26:
Author: KaiJaeger
Line 101: Line 27:
CategoryUnicode CategoryUnicode 

UnderstandingFontEmbedding

Note that this page is connected to the article Understanding Font Embedding on Vector, the APL magazine of the British APL association. Everything that is subject to changes is on this page on the APL Wiki, and it 's going to be updated whenever needed.

Update 2014-01-14

Since the article was published on Vector things have improved. Internet Explorer now understands "local". All modern browsers (including IE 9, 10 & 11) on all platforms but Opera Mini at least pretend to support the relatively new WOFF font format - see http://caniuse.com/woff for details. For that very reason the APL Wiki is downloading the WOFF version of the APL385 Unicode font now.

However, I found that Opera on Windows does not make use of the WOFF font. Therefore I've also added the TTF format; that fixed the problem. This is the only reason why the TTF font is still offered for download.

Web server issues

Because IE now supports WOFF we don't need the awkward EOT font anymore. That means we don't need to change anything on the web server side anymore.

Linux

All browsers under Linux should support the APL chars now. I've tested Firefox and Chrome with Ubuntu.

Downloads

  • apl385.woff.zip (The "APL385 Unicode" font as WOFF file; should suffice for all modern browsers)

  • apl385.ttf.zip (The "APL385 Unicode" font as TTF file; needed for Opera only)

  • fontface.zip (Sample CSS which should work with all modern browsers)

Author: KaiJaeger


CategoryUnicode

UnderstandingFontEmbedding (last edited 2017-11-21 10:08:49 by KaiJaeger)