These pages are now out-of-date Bookmarks / SGML / Maths and SGML/HTML |
The real issue here (for me at least) is rendering
equations within an HTML document. There are several tools available
which can do that with different trade-offs. The most popular method
is to write the equations in a LaTeX document, process it, and then howk
the equations out of the resulting DVI file somehow (typically using
dvips
and a postscript to gif converter), and display them
on the web as gifs. The big disadvantage with this is that you get an
awful lot of gifs, and the conversion is rather inefficient.
All this hassle should become irrelevant once we get browsers which can render MathML directly.
There are reviews of the problems, and some of the tools, in articles
Maths Typesetting for the Internet,
and
Comparative Review of World-Wide-Web Mathematics Renderers.
LaTeX2HTML is the granddaddy of these translators - it
parses the LaTeX using Perl, and spits out HTML, turning maths into
gifs. It's very robust by now.
John Walker's
textogif
is a Perl program which orchestrates the various tools to do the
conversion via postscript, once you've generated the DVI file.
TeX4ht (TeX for Hypertext) uses TeX's own
parser, but still produces equations as gifs.
TeX4ht can produce
XML and MathML from LaTeX. The TeX4ht documentation has
a useful collection of resources.
There's an alternative location for TeX4ht
at TUG.
The package's
unix installation instructions provide notes on the
commands you might use to convert DVIs to gifs.
tth: TeX to HTML translator
(
manual).
tth
translates LaTeX maths directly to HTML,
with remarkable success, and with good failure strategies. It works
very sweetly, but (a) requires you to tweak your browser to have it
map the symbol font appropriately, and (b) the resulting HTML can't be
printed legibly. From the same source is
TtHMML, which translates (La)TeX to HTML plus MathML.
nDVI is a DVI viewer plugin for Unix Netscape. This
addresses the problem at the client end.
Wolfram Research has produced a
plugin for MathML rendering in
IBM techexplorer 3.0 (older details about
Mathematica and MathML).
A quite different approach is to use a different markup for maths, possibly requiring specialised client software. These other notations typically use semantic markup - expressing the structure of the maths. At first sight, this seems preferable to LaTeX's presentational markup, but its weaknesses for authoring are exposed (I feel) when you realise that maths is not as closed and unambiguous a language as computer scientists feel it ought to be. Semantic markup's strength is in interfaces with computer algebra systems, and databases - Abramowitz and Stegun would be ideal in this form! The major dislocation between the two approaches is what makes conversion from presentational to semantic markup so easy. In passing, I'll note that MathML has both a presentational and a semantic variant.
MINSE
uses a server to render maths into gifs on the fly. It seems to work
rather nicely, but works with its own semantic maths notation.
There is (was?) a project called
Euromath, which includes a structured SGML editor. This
project included a converter which could transform
LaTeX to Euromath SGML.
OpenMath might be a successor to Euromath. It's an
EC Esprit project which `proposes to develop standards for the
semantically-rich representation of mathematics'.
GELLMU
is a LaTeX-like markup language, intended to be easy to convert to
SGML. Specifically, it is intended to support maths (and hence
conversion to MathML) well.
The following are specifically concerned with maths in SGML, using either MathML or other maths DTD fragments.
WebEQ
is a suite of Java programs which implement MathML. It's commercial.
TeXML is a gadget from IBM which converts XML to TeX via
a DTD fragment. You transform your XML to an equivalent document
marked up in TeXML, which you then separately transform to TeX.
EzMath is a Dave Raggett proposal for producing maths on
the web. It uses yet another notation, and converts it to online
form using a plugin (no printing, and Windows only, as of
April 1999).
![]() |
Norman 1 January 2001 |