Skip to the Main Content

Note:These pages make extensive use of the latest XHTML and CSS Standards. They ought to look great in any standards-compliant modern browser. Unfortunately, they will probably look horrible in older browsers, like Netscape 4.x and IE 4.x. Moreover, many posts use MathML, which is, currently only supported in Mozilla. My best suggestion (and you will thank me when surfing an ever-increasing number of sites on the web which have been crafted to use the new standards) is to upgrade to the latest version of your browser. If that's not possible, consider moving to the Standards-compliant and open-source Mozilla browser.

June 18, 2006

itex2MML 1.1.5

Bugs, bugs, bugs. It seems there’s always something to fix.

Since itex2MML 1.1.3, I’ve fixed the following:

  • \backslash, \setminus and \smallsetminus were defined in funny and inconsistent ways. In AMSLaTeX, \setminus and \smallsetminus correspond to different glyphs. In MathML, they’re both mapped to U+2216. After some struggle, I eventually settled on \smallsetminus = U+FE68 and \setminus = U+2216 (\backslash is U+05C), which seem to be the best match for the corresponding glyphs in LaTeX. In both MathML and TeX, \setminus is stretchy, but, at least in Mozilla/Firefox, the MathML version is not as stretchy as in TeX. Sigh.
  • Fixed some miscellaneous bugs in \tensor, \multiscripts and \over.
  • Fixed a really annoying regression that had the effect of rendering arrows non-stretchy. As a byproduct, there are now fewer superfluous <mrow>s in the output of itex2MML (not that anyone but the truly anal-retentive cares).
  • Added \stackrel as a synonym for \overset.
  • Added \big,\Big,\bigg,\Bigg, \bigl,\Bigl,\biggl,\Biggl and \bigr,\Bigr,\biggr,\Biggr, which create large fixed-size delimiters (for those occasions when \left and \right don’t give you fine-enough control)1.

Enjoy the new, improved, release.

On a related note, Ian Hickson suggests allowing MathML in text/html, as part of HTML5. This is an excellent idea, which will considerably ease the barrier to entry on the authoring side.

Producing XHTML is hard, and most existing tools are not up to the task of doing so reliably. On the other hand, MathPlayer 2.0 is an existence proof that well-formed MathML fragments (as produced by tools like itex2MML) can live happily in tag-soup HTML documents. MathPlayer demands2 that the document be served as application/xhtml+xml, but only the MathML fragments need to be well-formed. The rest of the document is happily handled by Internet Explorer’s tag-soup parser.

On the reader’s side, rendering bugs like this one will persist as long as browsers have to grab glyphs willy-nilly from whatever mathematical fonts happen to be installed3 on the system (and even that seems to require an annoying popup to prompt the user to install something). As long as I’ve been running this weblog, the Stix fonts have been 6 months away from release. So I expect the problem will not be cured anytime soon.

1 This required yet another tweak to our sanitize spec.

2 As far as I can tell, the only reason for this is to piggy-back on the fact that Mozilla/Firefox actually parses the whole document as XML, and so authors go to pains to ensure that their documents (and hence the MathML fragments therein) are well-formed. Not having to think about error-correction is a saving, but not that big a saving.

3 The current best-case scenario, font-wise is

IE + MathPlayer
Use the fonts installed with the plugin + install Code2001.
Mozilla/Firefox on Windows
Install the MathML fonts package (instructions) + Code2001.
Mozilla/Firefox on Linux
  1. If you have a Pango-enabled build, make sure you disable Pango.
  2. Install the Bakoma CM fonts and Code2001.
Mozilla/Firefox/Camino on MacOSX
Install the Mathematica 4.1 fonts (instructions) + Code2001.

which is not pretty.

Note that, theoretically, you ought to have good enough glyph coverage with just the Computer Modern fonts. Unfortunately, for reasons that are not entirely transparent, Mozilla’s lack of support for Plane-1 characters is not easily worked-around. Hence the need for the not-very-pretty, but serviceable, Code2001 font.

Note also that, on MacOSX, you are still missing some important glyphs, like \star=⋆ (U+22C6). At first, I suggested installing Code2000, but that causes problems with \overline. Really, if you’re running MacOSX 10.3 or later, these glyphs would not be missing at all, were it not for this bug.

Posted by distler at June 18, 2006 11:17 PM

TrackBack URL for this Entry:

2 Comments & 1 Trackback

Read the post links for 2006-07-21
Weblog: take one onion
Excerpt: itex2MML 1.1.5 | Musings tex to MathML plugin for movabletype (tags: movableType tex mathml)...
Tracked: July 20, 2006 8:17 PM

Re: itex2MML 1.1.5

The URL references to Code2001 should be corrected to

Posted by: Joćo P Matos on October 5, 2006 6:43 AM | Permalink | Reply to this

Re: itex2MML 1.1.5

I guess his old AT&T page became too popular…

Fixed, thanks.

Posted by: Jacques Distler on October 5, 2006 9:39 AM | Permalink | PGP Sig | Reply to this

Post a New Comment