Skip to content

Understanding IE, its many modes, and the trouble it causes

dpvc edited this page Apr 9, 2013 · 2 revisions

Thanks again, Davide. I am still puzzled why the WOFF fonts were preferred on some pages and not others.

By the way, I just installed the OTF "local TeX fonts" locally, by taking them from Mathjax and unblocking by right-clik/properties, and installing them by right-click, and they seem to work great. And they're as pretty as I am used to, not as the uglier STIX fonts. Why isn't this step and local TeX fonts recommended to Mathjax clients? I think that there should even be an automatic script for that and it should be offered in the right-click menu of Mathjax when it shows a formula. It would save a second of loading every time someone (who followed the instructions) visits a page using Mathjax.


Thanks again, Davide. I am still puzzled why the WOFF fonts were preferred on some pages and not others.

IE can operate in a number of different modes, and only its IE9 mode can handle WOFF fonts. Because your site is on the "requires compatibility" list, that triggers IE8 mode, which doesn't allow WOFF fonts, and MathJax uses EOT for that. On the MathJax site, IE can use IE9 mode, and so can take advantage of WOFF fonts.

The compatibility list is stored locally, and so needs to be updated from Microsoft periodically. I don't know how often that is done, and I think you can disable it, which could account for your personal laptop being in IE9 mode (with WOFF fonts) while other users (like me) get IE8 mode (with EOT fonts).

By the way, I just installed the OTF "local TeX fonts" locally, by taking them from Mathjax and unblocking by right-clik/properties, and installing them by right-click, and they seem to work great. And they're as pretty as I am used to, not as the uglier STIX fonts. Why isn't this step and local TeX fonts recommended to Mathjax clients? I think that there should even be an automatic script for that and it should be offered in the right-click menu of Mathjax when it shows a formula. It would save a second of loading every time someone (who followed the instructions) visits a page using Mathjax.

There are several reasons this hasn't been done. First, there are 26 MathJax fonts (did you get them all), and they all show up individually in font menus, which makes some people unhappy, and it introduces a possible source of trouble (with not all fonts being installed, or not installed correctly) that we don't currently have to deal with. Second, the fonts currently are fairly limited in scope (of characters included) and I expect to be adding to them in the future; this is harder to do if people have copies installed locally, as that means we need to be able to detect the version in use, and have extra data to cover both the old and the new versions. But the real reason is that on Windows, IE doesn't seem able to access the Greek letters from an OTF font, but only from TTF fonts (which is what EOT fonts are). That means if you install the MathJax fonts locally on Windows, IE won't be able to access the Greek letters properly (sometimes you will get the characters from other fonts, but not always). If I remember correctly, there was also a problem with the bold fonts being doubly bold when used locally (Windows was applying an algorithmic bolding to the already bold fonts), but I think that I may have cleared that up. At the time I was doing the fonts, Safari on Windows couldn't access the OTF fonts locally at all (but could do web fonts), and so would have required a full set of TTF fonts, but we weren't creating TTF versions. While we could have provided TTF versions for IE and Safari, they produced lower-quality results (TTF doesn't include hinting or something -- I don't recall the details any longer). But as I remember, TTF didn't work well with Opera at the time. In any case, there were incompatible requirements for fonts for the various browsers on Windows, and it was more complicated than I wanted to try to explain to your run-of-the-mill user. It would have caused more problems than it was worth. It is possible that the situation is better now, but the IE problem has not gone away, and so it is still a complicated situation for Windows users.


Thanks for your detailed explanations, Davide! I didn't know that websites like my blog could have been natively IE9-incompatible and this classification is even being stored somewhere. This explains a lot.

The Greek letter story with local OTF fonts is interesting. But I seem to be getting the Greek letters with MSIE9 and local TeX fonts at http://motls.blogspot.com/2012/04/royal-status-of-11-dimensional.html

although some of them have a slightly wrong size... In my opinion, if you will be extending fonts, maybe you should just create new ones with the additional characters and kind of keep the fonts as of now as a separable Mathjax 2.0 "core", but you know what you're doing...


although some of them have a slightly wrong size...

As I mentioned, the browser can sometimes find the character in ANOTHER font, so it may LOOK like you are getting the right characters, but they may not be the ones from the MathJax fonts. That could account for them being the wrong size, for example. It may be that IE9 does a better job of this (even in its emulation modes) than the original browsers, and it may also be that it depends on the version of Windows. I checked with IE7 in Windows XP with local MathJax fonts, and the greek letters were NOT from the MathJax fonts (they did show up, but from another font, so it was not terrible, but definitely not the MathJax fonts). IE9 in IE9 standards mode on Windows 7 did seem to be able to access the greek letters.

In my opinion, if you will be extending fonts, maybe you should just create new ones with the additional characters and kind of keep the fonts as of now as a separable Mathjax 2.0 "core", but you know what you're doing...

Yes, that is one way to go, and I've thought of that, but then those of you who have installed local copies will need to get the new fonts as well. We haven't many any final decisions yet.

Clone this wiki locally