Chris Pollett > Students >

    ( Print View )

















CS297 Proposal

LaTeX and MathML without Plugins using VML and SVG

Namon Nuttayasakul (

Advisor: Dr. Chris Pollett

Description: The standard way to view math on the web is to write the mathematical document using LaTeX and use a conversion program such as latex2html [D96], WebEQ [D02], TtH [H01], or HeVeA [M02]. The first two of these programs generate graphic images (WebEQ can output MathML and applet code) for each mathematical formula on the page. This makes such web-documents both slow to load and hard to maintain as they now consist of many files, one for each formula. The latter two programs convert LaTeX directly into a single HTML file and try to draw the equations as best as possible given the limitations of HTML. These programs are very fast and often produce reasonable results. However, picture environments and the like still must be output using graphics images. MathML is an XML based mark-up language for displaying math on the web and there exist programs to convert both TeX and LaTeX to this format. Unfortunately, neither Netscape nor Internet Explorer natively support language. SVG [W3C01] and VML [W3C98b] are XML-defined vector mark-up languages in which both math notations and picture environments could easily be rendered. Currently, VML is natively supported in Internet Explorer and it looks like SVG will soon be supported by Netscape. The goal of this master's project is to develop stylesheet transformations from MathML and small blocks of LaTeX into SVG and VML.

Style-sheet transformations are rules which are applied by the browser or by the server to a tag when it is read or before it is transmitted. They basically provide a mechanism by which a document can be ``compiled'' into a format displayable by a browser. Netscape currently supports CSS2 (cascading style sheets level 2) [W3C98a] with the intention to have built in support for XSLT (eXtensible Stylesheet Language Transformations) [W3C99], the latter being stronger and more flexible. Internet Explorer supports XSLT. CSS2 has some support for tag-replacement by hypertext. This allows tags to be replaced by ECMAscript (aka Javascript) code [ECMA99] which can in theory output SVG code. Thus, in both Netscape and Internet Explorer clients it should be feasible produce style-sheet transformations from MathML to the target language. Nevertheless, such a translation would be difficult to perform and is worthy of a masters.

To make this more evident though we will consider and do some comparisons on client versus server-side translations to the target languages. Recently, in 2002, SchemaSoft came up with an XSLT translation from MathML [S01] to SVG which is done on the server-side using Java. As SVG is currently not supported without a plug-in this solution will not work as well as ours under Internet Explorer. Our intention is also to allow direct translation of small blocks of LaTeX directly to HTML and SVG or HTML and VML to handle environments not specified in MathML. Finally, if the translation is done client-side then one is essentially sending the compiler along with the document, which makes it hard to sell this kind of product. To handle this issue, we will investigate ways to make the stylesheets sent only applicable to the given document requested.


Week 1 & 2: Jan 23 - Feb 1Scan [W3C01] + SVG +VML handout.
Week 3: Feb 4-8Deliverable (1) due.
Week 4 & 5: Feb 11-22Read first 150 pages of [KD99].
Week 6: Feb 25-Mar 1Deliverable (2) due.
Week 7-8: Mar 4-Mar 15Read XML-XSLT handout
Week 9: Mar 18, Mar 20, Mar 22Deliverable (3) due.
Week 10: Mar 25, Mar 27, Mar 29Spring Recess
Week 11 - 14: Apr 3-Apr 24 Study [W3C98b] site.
Week 15: Apr 29-May 3Deliverable (4) due.
Week 16 -17: May 6-May 15Deliverable (5) due.


1. Become reasonably proficient at  VML and SVG. This will be demonstrated by creating an image of a sunset in both these languages.

2. Become reasonably proficient at MathML and LaTeX. This will be demonstrated by reproducing by hand pages in these languages pages 130 and 131 of A Guide to LaTeX2e.

3. Create a DTD for drawing matrices. Write a XSL transform to render this language in VML.

4. Get the MathML matrix related, apply, minus, times, divide, and eq tags to translate to VML and to SVG via XSLT.

5. First semester report on project of length between 10-20 pages


[D96] All about LaTeX2HTML. Nick Drakos. 1996.

[D02] Math on the Web. Design Science.

[ECMA99] Standard ECMA-262 ECMAScript Language Specification 3rd ed. ECMA. 1999.

[H01] TTH: the TEX to HTML translator. Ian Hutchison. 2001.

[KD99] A Guide to LaTeX 3rd Ed. Helmut Kopka and Patrick W. Daly. Addison-Wesley. 1999.

[M02] The HeVeA Home Page. Luc Maranget. 2002.

[S01] MathML to SVG Converter. SchemaSoft. 2001.

[W3C97] Extensible Markup Language (XML). W3C.

[W3C98a] Cascading Style Sheets, level 2 CSS2 Specification. W3C.

[W3C98b] W3C's Math Home Page. W3C.

[W3C98c] VML - the Vector Markup Language. W3C.

[W3C99] XSL Transformations (XSLT) Version 1.0. W3C.

[W3C01] Scalable Vector Graphics (SVG) Specification 1.0. W3C.