MathML for mathematics research articles

Arun Ram
Department of Mathematics
University of Wisconsin, Madison
Madison, WI 53706 USA
ram@math.wisc.edu

and

Department of Mathematics and Statistics
University of Melbourne
Parkville VIC 3010 Australia
A.Ram@ms.unimelb.edu.au

Last updates: 26 March 2008

Introduction

Given the ubiquity with which the internet has taken over our lives and the extent to which society is using web pages written in HTML it is, perhaps, a bit surprising that research mathematicians still use TeX to distribute their results. Current web browsers and authoring tools are much more friendly towards formatting, graphics, animation, colors and cross referencing. The possibilities are endless, and it is a pity that we don't currently have them available in our standard mathematics presentations. For example,

are only a few of the possible tools that mathematicians might like. Perhaps it is time that we, as a community, make the switch and stop using TeX in favor of web markup.

In fact, some TeX addons (HyperTeX, Beamer), attempt to incorporate some weblike features. In 1998, MathML version 2 was released by the World Wide Web Consortium, the standards organisation for Web markup. So what is holding up our conversion? On one hand, research mathematicians are right to be hesitant to try to convert to MathML because the existing software is sometimes user unfriendly and this can be very frustrating. On the other hand, it is a vicious circle, because mathematicians have not demanded better software, software for MathML has developed extremely slowly. As soon as we, as a community, start trying to use the existing tools they will develop very quickly.

Thanks to the efforts of Mozilla (particularly Roger Sidje) there is a robust browser that processes MathML with good looking results.

What about authoring tools? A few hours of playing with Dreamweaver shows how easy typing into web pages can be. Unfortunately, Dreamweaver doesn't handle MathML. But does and it is because of Mozilla and Amaya that I think that use of MathML is a realistic possiblity for research mathematicians. Though Amaya crashes way too often to give it any more than beta-beta-beta status it is on the right track and a good programmer might take this template and make it into a wonderful MathML authoring tool in a month or two. I think that the mathematical community will jump to web presentation as soon as the rendering and authoring tools become polished. Greater usage of these tools by mathematicians would quickly push the currently available browsers to render mathematical markup even better.

This article has two goals:

Production of this article was partially supported by research and teaching intiatives supported by the National Science Foundation under Grant No. DMS-0353038. I thank National Science Foundation for continuing support of my research and teaching. This article was completed during the special semester on Combinatorial Representation Theory at Mathematical Sciences Research Institute (MSRI) in Berkeley. I thank MSRI for support and a wonderful and stimulating working environment.

Background information

The first and most important step is to get a browser that can display MathML. Mozilla Firefox (or Camino, optimised for the Mac) seems to be the best option. Download the necessary fonts from STIX fonts, MathML at MIT, or the appropriate font installer in the right hand column of the fonts for MathML enabled Mozilla. Test your browser with the MathML torture test. Other browser options are:

Opera does not advertise any support of MathML.

MathML is an add-on to HTML, the base language for writing webpages. All the basic formatting is done with HTML (titles, paragraphs, links,... ) and so only the formatting of mathematical formulas needs to be done with MathML commands. The result is that MathML has fewer commands than TeX. It is not necessary to learn HTML and MathML separately. After reading this article, start by modifying the template for an article at http://www.math.wisc.edu/~ram/MathGlossary/template.xml (also see Appendix 2). If there is something you want to typeset which is not found in the template then look at the following useful pages, full of examples:

MathML comes in two flavours: presentation markup and content markup. At the moment, most browsers do not render content markup (see MathML for Mozilla and Amaya overview). It seems that presentation markup is sufficient for mathematical typesetting needs and this article treats only presentation markup.

Style sheets for formatting are standard in TeX (e.g. amssym). The analogue for HTML is CSS (Cascading Style Sheets). There is no need to learn CSS separately, the necessary commands to get started are in the header of the template for a MathML typeset research article at http://www.math.wisc.edu/~ram/MathGlossary/template.xml. Appendix 1 contains a list of the most useful HTML commands and (all) MathML commands. The authoritative sources for commands and syntax are the W3C (World Wide Web Consortium) recommendations:

The W3C specifications are often more useful than books from the library or the bookstore. If you do go read the MathML specification, read Chapter 3 first.

Formatting an article with HTML and MathML

The following gives some basics for creating pages with HTML and MathML. The code for most of the examples in this article is included in the template article at http://www.math.wisc.edu/~ram/MathGlossary/template.xml. If you are viewing this article on the web use View Source in the View menu of your browser to see the code or download this page and edit it in your favourite editor.

Though MathML is simpler to learn than TeX, it has one great annoyance (which is, very likely, the reason it hasn't caught on more quickly): nearly every printing character is supposed to put inside <mi> </mi> or <mo> </mo> or <mn> </mn> (for "math identifier", "math operator" and "math number"). This means that the equation x2 + y2 =1 is typeset with the code

<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup><mi>x</mi><mn>2</mn></msup>
<mo>+</mo>
<msup><mi>y</mi><mn>2</mn></msup>
<mo>=</mo><mn>1</mn>
</math>
The consequence is that it is tedious to type in MathML by hand and some software that helps is desirable. Amaya is still in beta-version but it can be useful. Hopefully, Amaya will be improved quickly. Javascript can do amazing things: there is a javascript ASCII to MathML translator [AT] written by Peter Jipsen [Jp] and a javascript LateX to MathML translator [TT] written by Douglas Woodall and Jeff Knisley [Kn]. Perhaps translation is too extreme, a MathML dialect that retains the advantages of web markup and is not tedious to enter might be the ideal. Although I have not yet implemented this myself, a bit of javascript at the beginning of your web page that automatically puts in the tedious mi, mo, and mn tags would enable the same equation, x2 + y2 =1 , to be typeset with the code
<mymath> <msup>x2</msup> + <msup>y2</msup> =1 </mymath>

Features from HTML and CSS

MathML Features

There are plenty of math symbols available in MathML.

± < > ⩽̸ ⩾̸ × C C

The Mozilla MathML character table is extremely helpful, both for finding available characters and for determining character names. The following links will help for navigating these tables:

Logic     Arrows     Operators and Relations

Math formulas and notation are typeset inside
<math xmlns="http://www.w3.org/1998/Math/MathML"> math stuff here </math>.
This is analogous to $ in TeX.

Using Amaya for MathML authoring

Amaya is very useful for putting in all those <mi>, <mo>, setting up subscripts, superscripts, matrices and fractions. Amaya, at the moment, is painful for entering math symbols and it has the annoying problem that, even if you get it entered right, when you save your document, Amaya will automatically change character entities that have been entered manually. For example &langle; will change into some Chinese character.

Amaya crashes often. Until Amaya gets more robust the best option is to use Amaya in tandem with your favourite editor. Do the layout of the text and the equations with Amaya. Type a few paragraphs into Amaya then copy the code into your favourite editor and fix up the character names. Use a slightly different name for Amaya file and your document file.

Amaya MathML keyboard shortcuts for Mac OS X

Command Tag Shortcut
New Formula <math> Ctrl-m Ctrl-m
Subscript <msub> Ctrl-m Ctrl-v
Superscript <msup> Ctrl-m Ctrl-6
Subscript and Superscript <msubsup> Ctrl-m Ctrl-b
Multiscripts <mmultiscripts> Ctrl-m Ctrl-s
Under <munder> Ctrl-m Ctrl-u
Over <mover> Ctrl-m Ctrl-o
Under and over <munderover> Ctrl-m Ctrl-k
Fraction <mfrac> Ctrl-m Ctrl-f
New Matrix <mtable> Ctrl-m Ctrl-h
Root <mroot> Ctrl-m Ctrl-r
Square root <msqrt> Ctrl-m Ctrl-q

Problems with Amaya

Tips

Problems with MathML

Problems with Mozilla

The tags <mglyph>, <menclose>, <mlabeledtr>, <malignmark>, and <maligngroup>, are not yet implemented. Check the page status report of MathML tags in Mozilla for the latest updates.

HTML and MathML commands

Basic HTML

MathML Presentation Markup tags

Template for an article

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
   "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Your favourite title</title>
<style type="text/css">
body {
    counter-reset: section 0;  
    text-align: justify
}

h2.title {
    text-align:center
}
p.author {
    text-align:center
}
li {
    text-indent: 0em;
}
p.indent {
    text-indent: 2em; 
}

h2.section {
    counter-reset: eqn 0 result 0 subsection 0;  
}
h2.section:before {
    content: counter(section) ". ";
    counter-increment: section 1;  /* Add 1 to section */
}
h3.subsection:before {
    content: counter(section) "." counter(subsection);
    counter-increment: subsection;  /* Add 1 to subsection */
}

div.theorem:before { 
    content: "Theorem " counter(section) "." counter(result) " "; 
    counter-increment: result 1;
    font-style: normal; 
    font-weight: bold; 
}
div.theorem{ font-style:italic }
div.proposition:before { 
    content: "Proposition " counter(section) "." counter(result) " "; 
	counter-increment: result 1;
    font-style: normal; 
    font-weight: bold; 
}
div.proposition{ font-style:italic }
div.lemma:before { 
    content: "Lemma " counter(section) "." counter(result) " "; 
    counter-increment: result;
    font-style: normal; 
    font-weight: bold; 
}
div.lemma{ font-style:italic }

table.dispeq {
   width:100%;
   }
td.eq {
   text-align:center;
     }
td.eqno {
    width: 10px;
    text-align:right;
    }
td.eqno:after { 
     content: "("counter(section)"."counter(eqn)")";
     counter-increment: eqn;
     font-style: normal; 
  }
</style>
</head>

<body>
<h2 class="title"> Template for article </h2>

<p class="author">
Arun Ram <br />
Department of Mathematics <br />
University of Wisconsin, Madison <br />
Madison, WI 53706 USA 
</p>

<p> Last updates: 31 February 1935 </p>


<h2 class="section"> Section title </h2>

<p class="indent"> 
A little introductory text.
</p>
<table class="dispeq">  
<a name="firsteqn" id="firsteqn"></a>
<tr>
<td class="eq"> 
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>G</mi>
  <mo>=</mo>
  <munder>
    <mstyle scriptlevel="-1">
         <mo>&sqcup;</mo>
    </mstyle>
    <mrow>
      <mi>w</mi>
      <mo>&isin;</mo>
      <mover>
        <mi>W</mi>
        <mi>&Tilde;</mi>
      </mover>
    </mrow>
  </munder>
  <mi>I</mi>
  <mi>w</mi>
  <mi>I</mi>
  <mspace width="2em"/>
</math>
</td> 
<td class="eqno"></td>
</tr></table>

<div class="theorem">
<a href="#[BG]">[BG]</a>
A theorem about subscripts and superscripts.
<table class="dispeq">
<a name="fractions" id="fractions"></a>
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
    <msub> <mi>b</mi><mi>n</mi></msub><mo>,</mo>
    <mspace width="2em"/>
    <msup> <mi>x</mi><mn>2</mn></msup><mo>,</mo>
    <mspace width="2em"/>
      <mmultiscripts> 
        <mi> R </mi> 
        <mi> i </mi> 
        <none/> 
        <none/> 
        <mi> j </mi> 
        <mi> k </mi> 
        <none/> 
        <mi> l </mi> 
        <none/> 
      </mmultiscripts> <mo>,</mo>
<mspace width="2em"/>
<mtext>and</mtext>
<mspace width="2em"/>
      <mmultiscripts> 
        <mi> R </mi> 
        <mi> i </mi> 
        <none/> 
        <none/> 
        <mi> j </mi> 
        <mi> k </mi> 
        <none/> 
        <mi> l </mi> 
        <none/> 
  <mprescripts/>
        <mi> ℓ </mi> 
        <none/> 
        <none/> 
        <mi> m </mi> 
        <mi> n </mi> 
        <none/> 
        <mi> p </mi> 
        <none/> 
      </mmultiscripts> 
      <mo>.</mo>
</math>
</td>
<td class="eqno"></td>
</tr></table>
</div>

<p class="indent">A bit of text about hats, tildes, arrows, underbraces
and overbraces.  </p>
<table class="dispeq">
<a name="accents" id="accents"></a>
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
   <mover>
     <mi mathvariant="italic">xxx</mi>
     <mo stretchy="true">&Tilde;</mo>
   </mover>
<mi>&thinsp;</mi>
<mover>
<mo>&rarr;</mo>
<mtext>goes to</mtext>
</mover>
<mi>&thinsp;</mi>
<mover>
<mtext>vector</mtext>
<mo>&rarr;</mo>
</mover>
<mspace width="1em"/>
<mtext>and</mtext>
<mspace width="1em"/>
   <mover>
     <mi mathvariant="italic">xxx</mi>
     <mo stretchy="true">&OverBar;</mo>
   </mover>
<mi>&thinsp;</mi>
<mover>
<mo>&rarr;</mo>
<mrow>
   <mphantom><mtext>goes to</mtext></mphantom>
   <mo>&sim;</mo>
   <mphantom><mtext>goes to</mtext></mphantom>
</mrow>
</mover>
<mi>&thinsp;</mi>
   <mover>
     <mi mathvariant="italic">xxxx</mi>
     <mo>&Hat;</mo>
   </mover>
<mover>
<mo>&larr;</mo>
<mrow><mi>&emsp;</mi><mi>&phiv;</mi><mi>&emsp;</mi></mrow>
</mover>
<mrow>
  <mo stretchy='false'>{</mo>
  <munder>
    <mrow>
      <mover>
        <mrow>
          <mpadded width="0"><mphantom>(</mphantom></mpadded> <!-- \mathstrut -ugly hack a la TeX -->
          <mi>a</mi>
          <mo>,</mo>
          <mo>...</mo>
          <mo>,</mo>
          <mi>a</mi>
        </mrow>
        <mover>
          <mo>&OverBrace;</mo>
          <mrow>
            <mi>k</mi>
            <mtext>&nbsp;</mtext>
            <mi>a</mi>
            <mtext>&rsquo;s</mtext>
          </mrow>
        </mover>
      </mover>
      <mo>,</mo>
      <mover>
        <mrow>
          <mpadded width="0"><mphantom>(</mphantom></mpadded> <!-- \mathstrut -ugly hack a la TeX -->
          <mi>b</mi>
          <mo>,</mo>
          <mo>...</mo>
          <mo>,</mo>
          <mi>b</mi>
        </mrow>
        <mover>
          <mo>&OverBrace;</mo>
          <mrow>
            <mi>&ell;</mi>
            <mtext>&nbsp;</mtext>
            <mi>b</mi>
            <mtext>&rsquo;s</mtext>
          </mrow>
        </mover>
      </mover>
    </mrow>
    <munder>
      <mo>&UnderBrace;</mo>
      <mrow>
        <mi>k</mi>
        <mo>+</mo>
        <mi>&ell;</mi>
        <mtext>&nbsp;elements</mtext>
      </mrow>
    </munder>
  </munder>
  <mo stretchy='false'>}</mo>
</mrow>
</math>
</td>
<td class="eqno"></td>
</tr></table>


<div class="proposition">
A proposition about fractions.
<table class="dispeq">
<a name="fractions" id="fractions"></a>
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mstyle displaystyle="true">
<mrow>
  <munder>
    <mo>&sum;</mo>
    <mrow>
      <mfrac linethickness="0">
        <mrow>
          <mn>0</mn>
          <mo>&leq;</mo>
          <mi>i</mi>
          <mo>&leq;</mo>
          <mi>m</mi>
        </mrow>
        <mrow>
          <mn>0</mn>
          <mo>&lt;</mo>
          <mi>j</mi>
          <mo>&lt;</mo>
          <mi>n</mi>
        </mrow>
      </mfrac>
    </mrow>
  </munder>
</mrow>
<mrow>
  <mo>&langle;</mo>
<mfrac linethickness="0">
    <mi>n</mi>
    <mrow>
      <mi>k</mi>
      <mo>/</mo>
      <mn>2</mn>
    </mrow>
</mfrac>
  <mo>)</mo>
</mrow>
<mo>=</mo>
  <mrow>
    <mo>[</mo>
    <mfrac>
      <msup>
        <mo>&part;</mo>
        <mn>2</mn>
      </msup>
      <mrow>
        <mo>&part;</mo>
        <msup>
          <mi>x</mi>
          <mn>2</mn>
        </msup>
      </mrow>
    </mfrac>
    <mo>+</mo>
    <mfrac>
      <msup>
        <mo>&part;</mo>
        <mn>2</mn>
      </msup>
      <mrow>
        <mo>&part;</mo>
        <msup>
          <mi>y</mi>
          <mn>2</mn>
        </msup>
      </mrow>
    </mfrac>
    <mo>&rangle;</mo>
  </mrow>
</mstyle>
<mo>=</mo>
<mrow>
  <mfrac>
    <mrow>
    <mstyle displaystyle="true" scriptlevel="-1">
      <mi>x</mi>
      <mo>+</mo>
      <mfrac>
        <mi>y</mi>
        <mn>2</mn>
      </mfrac>
    </mstyle>
    </mrow>
    <mrow>
      <mi>k</mi>
      <mo>+</mo>
      <mfrac>
         <mn>1</mn>
         <mi>x</mi>
      </mfrac>
    </mrow>
  </mfrac>
</mrow>
</math>
</td>
<td class="eqno"></td>
</tr></table>
</div>

<h3 class="subsection"> Development </h3>

<p class="indent">The following lemma might be useful.</p>

<div class="lemma">
<a name="matrices" id="matrices"></a>
A lemma about matrices and aligned equations
<table class="dispeq">
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
  <mo>(</mo>
  <mtable>
    <mtr>
      <mtd columnalign="center">
        <mrow>
          <mo>(</mo>
          <mtable>
            <mtr>
              <mtd columnalign="center">
                <mo>&dtdot;</mo>
              </mtd>
              <mtd columnalign="center">
                <mi>b</mi>
              </mtd>
            </mtr>
            <mtr>
              <mtd columnalign="center">
                <mo>&utdot;</mo>
              </mtd>
              <mtd columnalign="center">
                <mi>d</mi>
              </mtd>
            </mtr>
          </mtable>
          <mo>)</mo>
        </mrow>
      </mtd>
      <mtd columnalign="center">
        <mrow>
          <mo>(</mo>
          <mtable>
            <mtr>
              <mtd columnalign="center">
                <mo>&ctdot;</mo>
              </mtd>
              <mtd columnalign="center">
                <mo>&vellip;</mo>
              </mtd>
            </mtr>
            <mtr>
              <mtd columnalign="center">
                <mi>g</mi>
              </mtd>
              <mtd columnalign="center">
                <mi>h</mi>
              </mtd>
            </mtr>
          </mtable>
          <mo>)</mo>
        </mrow>
      </mtd>
    </mtr>
    <mtr>
      <mtd columnalign="center">
        <mn>0</mn>
      </mtd>
      <mtd columnalign="center">
        <mrow>
          <mo>(</mo>
          <mtable>
            <mtr>
              <mtd columnalign="center">
                <mi>i</mi>
              </mtd>
              <mtd columnalign="center">
                <mi>j</mi>
              </mtd>
            </mtr>
            <mtr>
              <mtd columnalign="center">
                <mi>k</mi>
              </mtd>
              <mtd columnalign="center">
                <mi>l</mi>
              </mtd>
            </mtr>
          </mtable>
          <mo>)</mo>
        </mrow>
      </mtd>
    </mtr>
  </mtable>
  <mo>)</mo>
</mrow>
<mspace width="2em"/>
<mtext>and</mtext>
<mspace width="2em"/>
<mtable columnalign="right center left">
    <mtr>
      <mtd>
        <msub>
          <mi>h</mi>
          <mi>&lambda;</mi>
        </msub>
        <mo>(</mo>
        <mi>f</mi>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mi>&mu;</mi>
        </msub>
        <mo>(</mo>
        <mi>g</mi>
        <mo>)</mo>
      </mtd>
      <mtd><mo>=</mo></mtd>
      <mtd>
        <msub>
          <mi>h</mi>
          <mi>&mu;</mi>
        </msub>
        <mo>(</mo>
        <msup>
          <mi>f</mi>
          <mrow>
            <mo>–</mo>
            <mn>1</mn>
          </mrow>
        </msup>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mrow>
            <mi>&lambda;</mi>
            <mo>+</mo>
            <mi>&mu;</mi>
          </mrow>
        </msub>
        <mo>(</mo>
        <mi>f</mi>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mrow>
            <mi>&lambda;</mi>
            <mo>+</mo>
            <mi>&mu;</mi>
          </mrow>
        </msub>
        <mo>(</mo>
        <mi>g</mi>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mi>&lambda;</mi>
        </msub>
        <mo>(</mo>
        <msup>
          <mi>g</mi>
          <mrow>
            <mo>–</mo>
            <mn>1</mn>
          </mrow>
        </msup>
        <mo>)</mo>
      </mtd>
    </mtr>
    <mtr>
      <mtd></mtd>
      <mtd> <mo>=</mo> </mtd>
      <mtd>
        <msub>
          <mi>h</mi>
          <mi>&mu;</mi>
        </msub>
        <mo>(</mo>
        <msup>
          <mi>f</mi>
          <mrow>
            <mo>–</mo>
            <mn>1</mn>
          </mrow>
        </msup>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mrow>
            <mi>&lambda;</mi>
            <mo>+</mo>
            <mi>&mu;</mi>
          </mrow>
        </msub>
        <mo>(</mo>
        <mi>f</mi><mi>g</mi>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mi>&lambda;</mi>
        </msub>
        <mo>(</mo>
        <msup>
          <mi>g</mi>
          <mrow>
            <mo>–</mo>
            <mn>1</mn>
          </mrow>
        </msup>
        <mo>)</mo>
      </mtd>
    </mtr>
    <mtr>
      <mtd></mtd>
      <mtd>  <mo>=</mo></mtd>
      <mtd>
        <msub>
          <mi>h</mi>
          <mi>&mu;</mi>
        </msub>
        <mo>(</mo>
        <mi>g</mi>
        <mo>)</mo>
        <msub>
          <mi>h</mi>
          <mi>&lambda;</mi>
        </msub>
        <mo>(</mo>
        <mi>f</mi>
        <mo>)</mo>
        <mo>.</mo>
      </mtd>
    </mtr>
  </mtable>
</math>
</td>
<td class="eqno"></td>
</tr></table>
with a link back to equation 
(<a href="#firsteqn">1.1</a>).
</div>

<p>And finally,</p>

<div class="proposition"> <a name="boxes" id="boxes"></a>
A proposition about boxes, backgrounds and colors.
<table class="dispeq">
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mtable frame="solid">
<mtr>
 <mtd> 
<msup><mi>x</mi><mn>2</mn></msup>
<mo>+</mo>
<msup><mi>y</mi><mn>2</mn></msup>
<mo>=</mo><mn>1</mn>
 </mtd>
</mtr>
</mtable>
<mspace width="2em"/>
<mtext>and</mtext>
<mspace width="2em"/>
<mstyle background="yellow">
<msup><mi>x</mi><mn>3</mn></msup>
<mo>+</mo>
<msup><mi>y</mi><mn>3</mn></msup>
<mo>=</mo><mn>2</mn>
</mstyle>
<mspace width="2em"/>
<mtext> and </mtext>
<mspace width="2em"/>
      <mi mathcolor="blue">x</mi> 
      <mo>+</mo> 
      <mn mathcolor="#00ff33" color="purple">7</mn> 
      <mo>+</mo> 
      <mn color="yellow">3</mn> 
      <mo>+</mo> 
      <mstyle color="red"> 
        <mi>z</mi> 
        <mo>+</mo> 
        <mi mathcolor="blue">q</mi> 
        <mo>+</mo> 
        <mi>q</mi> 
      </mstyle>
</math>
</td>
<td class="eqno"></td>
</tr></table>
</div>

<p>
<table class="dispeq">
<a name="graphic" id="graphic"></a>
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>span</mi>
  <mo>{</mo>
  <msub>
    <mi>v</mi>
    <mn>1</mn>
  </msub>
  <mo>,</mo>
  <mi>&hellip;</mi>
  <mo>,</mo>
  <msub>
    <mi>v</mi>
    <mi>k</mi>
  </msub>
  <mo>}</mo>
  <mover>
    <mo>&map;</mo>
    <mi>&mu;</mi>
  </mover>
  <mi title="convex hull">Conv</mi>
  <mo>(</mo>
  <msup>
    <mi>&lambda;</mi>
    <mrow>
      <mo>(</mo>
      <mn>1</mn>
      <mo>)</mo>
    </mrow>
  </msup>
  <mo>,</mo>
  <mi>&hellip;</mi>
  <mo>,</mo>
  <msup>
    <mi>&lambda;</mi>
    <mrow>
      <mo>(</mo>
      <mi>k</mi>
      <mo>)</mo>
    </mrow>
  </msup>
  <mo>)</mo>
  <mo>=</mo>
  <mi>&emsp;</mi>
<img xmlns="http://www.w3.org/1999/xhtml" align="middle" alt="convex hull" src="convexhull.png" />
</math>
</td> 
<td class="eqno"></td>
</tr></table>
is an illustration of the proposition with a mouseover tooltip on the Conv.
</p>

<h2 class="section"> The main theorem </h2>

<div class="theorem">
<a name="cases" id="cases"></a>
A theorem about cases and toggling content.
<table class="dispeq">
<tr><td class="eq">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msub> <mi>T</mi><mi>w</mi></msub>
<msub> <mi>T</mi><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow></msub>
<mo>=</mo>
<mrow> <mo>{</mo>
<mtable>
<mtr> <mtd> <msub> <mi>T</mi>
<mrow> 
  <mi>w</mi><msub><mi>s</mi><mi>i</mi></msub>
</mrow>
</msub>
</mtd>
<mtd columnalign="left">
<mtext> if </mtext>
<mspace width="0.5em"/> 
<mi>w</mi> <msub><mi>s</mi><mi>i</mi></msub>
<mo>></mo><mi>w</mi>
</mtd>
</mtr>
<mtr>
<mtd> <mn>0</mn> </mtd>
<mtd columnalign="left"> <mtext>otherwise.</mtext> </mtd>
</mtr>
</mtable>
</mrow>
<mspace width="4em"/>
      <maction actiontype="toggle"> 
        <mrow> 
  <mstyle background="pink">
          <mn>3</mn> 
          <mo>+</mo> 
          <mn>2</mn> 
          <mo>=</mo>
          <mn>32</mn>
  </mstyle>
        </mrow> 
        <mrow> 
          <mtext> fooled you  </mtext> 
        </mrow> 
        <mrow> 
          <mtext>fooled you</mtext> 
            <mo>+</mo> 
            <mn>1</mn> 
        </mrow>
      </maction>
<mspace width="1em"/>
    <mtext>(try it, click on it).</mtext>  
</math>
</td>
<td class="eqno"></td>
</tr></table>
</div>


<h2 class="section"> References </h2>

<p>
<a name="[BG]" id="[BG]"> [BG] </a> 
<a href="http://www.math.brown.edu/faculty/braverman.html">
A. Braverman</a> and 
<a href="http://www.math.harvard.edu/~gaitsgde/"> 
D. Gaitsgory </a>, 
<a href="http://projecteuclid.org/DPubS?service=Repository&amp;version=1.0&amp;verb=Disseminate&amp;handle=euclid.dmj/1091737024&amp;view=body&amp;content-type=pdf_1#" title="View PDF">
<em> Crystals via the affine Grassmanian</em></a>, 
<a href="http://www.dukeupress.edu/dmj/">Duke Math. J.</a> 
<a href="http://projecteuclid.org/DPubS?service=UI&amp;version=1.0&amp;verb=Display&amp;page=toc&amp;handle=euclid.dmj/1091737018">
<strong>107</strong> no. 3,</a> (2001), 561-575;  
<a href="http://arxiv.org/abs/math.AG/9909077v2?front">
arXiv:math/9909077v2</a>, 
<a href="http://www.ams.org/mathscinet-getitem?mr=1828302">
MR1828302 (2002e:20083)</a>
</p>


</body>
</html>