Diff for /loncom/cgi/mimeTeX/mimetex.html between versions 1.1 and 1.5

version 1.1, 2005/02/28 19:08:11 version 1.5, 2012/06/09 00:58:11
Line 1 Line 1
 <!--  <!--
  ****************************************************************************   ****************************************************************************
  * Copyright(c) 2002-2005, John Forkosh Associates, Inc. All rights reserved.   * Copyright(c) 2002-2012, John Forkosh Associates, Inc. All rights reserved.
    *           http://www.forkosh.com   mailto: john@forkosh.com
  * ==========================================================================   * ==========================================================================
  * This file is part of mimeTeX, which is free software. You may redistribute   * This file is part of mimeTeX, which is free software. You may redistribute
  * and/or modify it under the terms of the GNU General Public License,   * and/or modify it under the terms of the GNU General Public License,
  * version 2 or later, as published by the Free Software Foundation.   * version 3 or later, as published by the Free Software Foundation.
  *      MimeTeX is distributed in the hope that it will be useful, but   *      MimeTeX is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY, not even the implied warranty of MERCHANTABILITY.   * WITHOUT ANY WARRANTY, not even the implied warranty of MERCHANTABILITY.
  * See the GNU General Public License for specific details.   * See the GNU General Public License for specific details.
Line 12 Line 13
  * agreed to these terms and conditions, and that you possess the legal   * agreed to these terms and conditions, and that you possess the legal
  * right and ability to enter into this agreement and to use mimeTeX   * right and ability to enter into this agreement and to use mimeTeX
  * in accordance with it.   * in accordance with it.
  *      Your mimeTeX distribution should contain a copy of the GNU General   *      Your mimetex.zip distribution file should contain the file COPYING,
  * Public License.  If not, write to the Free Software Foundation, Inc.,   * an ascii text copy of the GNU General Public License, version 3.
  * 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA,   * If not, point your browser to  http://www.gnu.org/licenses/
  * or point your browser to  http://www.gnu.org/licenses/gpl.html   * or write to the Free Software Foundation, Inc.,
    * 59 Temple Place, Suite 330,  Boston, MA 02111-1307 USA.
  ****************************************************************************   ****************************************************************************
  -->   -->
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">   "http://www.w3.org/TR/html4/loose.dtd">
  <!-- "http://www.forkosh.dreamhost.com/loose.dtd" -->   <!-- "http://www.forkosh.com/loose.dtd" -->
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Preamble  Preamble
Line 70  Preamble Line 72  Preamble
       ul ul     { margin-left: -0.5em;  margin-right: 3.5em;        ul ul     { margin-left: -0.5em;  margin-right: 3.5em;
                   list-style-type: disc }                    list-style-type: disc }
       pre       { margin-left: 3.0em; font-size: medium; font-weight: bold }        pre       { margin-left: 3.0em; font-size: medium; font-weight: bold }
         pre.nobold { margin-left:3.0em; font-size:medium; font-weight:normal }
       p         { margin-left: 2.0em;   margin-right: 1.5em }        p         { margin-left: 2.0em;   margin-right: 1.5em }
       p:first-letter        p:first-letter
                 { font-size: x-large;   font-weight: bold;                  { font-size: x-large;   font-weight: bold;
Line 81  Preamble Line 84  Preamble
                   color: black }                    color: black }
       p.warning  { color: red } /* defines  p class=warning */        p.warning  { color: red } /* defines  p class=warning */
     </style>      </style>
   <script type="text/javascript">      <style type="text/css">
     <!--        a.info{
     // add/clear text to expression          position:relative;
     function eqntext(eqn)          z-index:24;
       { var eqnSrc = document.getElementById(eqn).src;          /*background-color:#8692A5;*/
         var texSrc = eqnSrc.substring(eqnSrc.indexOf('?')+1,eqnSrc.length);          visibility: inherit;
         addtext(texSrc); }          text-decoration: none; }
     function addtext(text)        a.info:hover{
       { cleartext();          z-index:25;
         document.expression.formdata.value += unescape(text);          /*background-color:#999999;
         document.expression.formdata.focus(); }          color: #FFFF00;*/
     function cleartext()          text-decoration: none; }
       { document.expression.formdata.value = "";        a.info span{
         //document.inlineframe.value = "";          display: none;
         document.expression.formdata.focus(); }          /*color: #FFFF00;*/ }
     -->        a.info:hover span{
   </script>          display:block;
           position:absolute;
           top:2em;
           left:2em;
           /*width:15em;*/
           border:1px solid #330066;
           background-color:#FFFF99;
           color:#660000;
           text-align: left;
           font-size: 13px;
           font-weight: normal;
           margin: 3px;
           padding: 6px; }
         a.info:link {
           text-decoration: none;
           /*color: #FFFF00;*/ /*themecolour1%0;*/ }
         a.info:visited {
           text-decoration: none;
           /*color: #FFFF00;*/ /*themecolour1%0;*/ }
       </style>
       <script type="text/javascript">
         <!--
         // add/clear text to expression
         function eqntext(eqn)
           { var eqnSrc = document.getElementById(eqn).src;
             var texSrc = eqnSrc.substring(eqnSrc.indexOf('?')+1,eqnSrc.length);
             addtext(texSrc); }
         function addtext(text)
           { cleartext();
             document.expression.formdata.value += unescape(text);
             document.expression.formdata.focus(); }
         function cleartext()
           { document.expression.formdata.value = "";
             //document.inlineframe.value = "";
             document.expression.formdata.focus(); }
         -->
       </script>
   
     <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     + php functions to use Vertical-Align: info from mimetex
     ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
     <?php
     //$mimetexurl = "../cgi-bin/mimetex.cgi?";
     $mimetexurl = "http://www.forkosh.com/mimetex.cgi?";
     //$mimetexurl = "http://psi2star/cgi-bin/mimetex.cgi?";
     function verticalalign( $expression ) {
       global $mimetexurl;
       // note: curl_init() stops at the first whitespace char in $url argument
       $expression = ereg_replace(" ","~",$expression); // remove whitespace
       $url     = $mimetexurl . "\depth~" . $expression;
       $valign  = "0";
       $options = array(
           CURLOPT_RETURNTRANSFER => true,     // return web page
           CURLOPT_HEADER         => true);    // return headers
       $ch      = curl_init( $url );
       //curl_setopt_array( $ch, $options );
       curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
       curl_setopt( $ch, CURLOPT_HEADER, true );
       $gif     = curl_exec( $ch );
       $errno   = curl_errno( $ch );
       $error   = curl_error( $ch );
       //$info  = curl_getinfo( $ch );
       curl_close( $ch );
       //echo '<br> url= ',$url,'<br>',"\n";
       //echo '<br> gif=<br>',$gif,'<br>',"\n";
       if ( $errno == 0 ) {
         $fields = explode("Vertical-Align:",$gif);
         $vfield = trim($fields[1]);
         $fldlen = strspn($vfield,"+-0123456789");
         $valign = substr($vfield,0,$fldlen); }
       else {
         echo 'verticalalign> errno ',$errno,' = ',$error,'<br><br>',"\n"; }
       return $valign;
       }
     function mimetextag( $label, $expression ) {
       global $mimetexurl;
       $valign = verticalalign($expression);
       $url    = $mimetexurl . $expression;
       //echo ' valign=',$valign,' ',"\n";
       echo  '<a href="#preview" class="info"><img id="',$label,'" ';
       echo  ' onclick="eqntext(',"'",$label,"'",')"  ';
       echo  ' src="',$url,'" ';
       echo  ' style="Vertical-Align:',$valign,'px"   ';
       echo  ' alt="" border=0>';
       echo   '<span>',$expression,'</span>';
       echo  '</a>', "\n";
       }
     ?>
   
     <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     + javascript from mathtran.org to render <img alt="tex:math expression">
     ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
     <!-- script type="text/javascript"
       src="http://www.mathtran.org/js/mathtran_img.js"></script -->
   </head>    </head>
 <body>  <body>
   
Line 116  Banner across top of page, containing ti Line 212  Banner across top of page, containing ti
    <td align="center" valign="middle">     <td align="center" valign="middle">
     <center> <font color="maroon" size=4>      <center> <font color="maroon" size=4>
     <b><nobr>m i m e T e X &nbsp; m a n u a l</nobr></b> <br>      <b><nobr>m i m e T e X &nbsp; m a n u a l</nobr></b> <br>
     <font size=3>( for mimeTeX version 1.60 )</font> <br>      <font size=3>( for mimeTeX version
         <a href="#preview"><img id="imageVer1" onclick="eqntext('imageVer1')"
         src="../cgi-bin/mimetex.cgi?\small\versionnumber"
         alt="" border=0 align=bottom></a> )</font> <br>
     <font size=3> <b>Click for:</b>&nbsp;      <font size=3> <b>Click for:</b>&nbsp;
      <!-- <a href="http://www.forkosh.com" target="_top">homepage</a>, &nbsp;       <!-- <a href="http://www.forkosh.com" target="_top">homepage</a>, &nbsp;
      <a href="http://www.forkosh.com/resume.html" target="_top">resume</a> -->       <a href="http://www.forkosh.com/resume.html" target="_top">resume</a> -->
Line 124  Banner across top of page, containing ti Line 223  Banner across top of page, containing ti
      LaTeX tutorial</a><br>       LaTeX tutorial</a><br>
      <a href="http://www.forkosh.com/mimetex.html" target="_top">       <a href="http://www.forkosh.com/mimetex.html" target="_top">
      mimeTeX QuickStart</a><br>       mimeTeX QuickStart</a><br>
      <!-- jfa <a href="http://www.forkosh.com/mimetex.zip"> -->  
      <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip">       <a href="http://www.forkosh.com/cgi-bin/weblist.cgi?-t=weblist
        &-f=sources/weblistemplate.html&files=@sources/sourcecode/mimetex.lis
        &copyright=2002-2011&counter=mimetex
        &title=mimetex&description=m i m e T e X  S o u r c e   L i s t i n g"
        target="_top">mimeTeX Source Listing</a><br>
        <a href="http://www.forkosh.com/mimetex.zip">
        <!-- jfa <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip"></a> -->
      <font size=4>download&nbsp;mimeTeX</font></a></font>       <font size=4>download&nbsp;mimeTeX</font></a></font>
     </font> </center> </td>      </font> </center> </td>
    <td align="center">     <td align="center">
Line 135  Banner across top of page, containing ti Line 240  Banner across top of page, containing ti
     alt="" border=0 align=middle></a> <br>      alt="" border=0 align=middle></a> <br>
     <a href="#examples">more_examples...</a> </td>      <a href="#examples">more_examples...</a> </td>
   </tr>    </tr>
     <tr> <td align="center" colspan="3">
       This page discusses mimeTeX, a program that displays math on the web.<br>
       (<font size=3>See
       <a href="http://www.americanscientist.org/issues/pub/2009/3/writing-math-on-the-web/1"
       target="_top">Writing&nbsp;Math&nbsp;on&nbsp;the&nbsp;Web</a>
       for a more general discussion.</font>)
       </td> </tr>
  </table>   </table>
 </center>  </center>
 <hr size=4>  <hr size=4>
 <center><b><font color="maroon" size=3>  <center><b><font color="maroon" size=3>
 Copyright <font size=5>&copy;</font> 2002-2005,  Copyright <font size=5>&copy;</font> 2002-2012,
 <a href="http://www.forkosh.com">John Forkosh Associates, Inc.</a> <br>  <a href="http://www.forkosh.com">John Forkosh Associates, Inc.</a> <br>
 email: <a href="mailto:john&#64;forkosh&#46;com">john&#64;forkosh&#46;com</a>  email: <a href="mailto:john&#64;forkosh&#46;com">john&#64;forkosh&#46;com</a>
 </font></b></center>  </font></b> <br><br>
   <a href="#preview"><img id="timestamp1" onclick="eqntext('timestamp1')"
   src="../cgi-bin/mimetex.cgi?\normalsize\blue\begin{matrix}
   \large\today\\\normalsize\today[3]\end{matrix}"
   alt="" border=0 align=middle></a> </center>
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Table of Contents  Table of Contents
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 <br><br>  <br> <center><b><font color="maroon" size=6>
 <center><b><font color="maroon" size=5>   <u> &nbsp; &nbsp; &nbsp; &nbsp; C o n t e n t s &nbsp; &nbsp; &nbsp; &nbsp;
  <u> &nbsp; &nbsp; &nbsp; C o n t e n t s &nbsp; &nbsp; &nbsp; </u></font></b>   </u></font></b> <br>
 <br>  
 <table cellspacing=0 class="medium">  <table cellspacing=0 class="medium">
  <tr>   <tr>
   <td valign="top" align="center" width=150>    <td valign="top" align="center" width=150>
    <b>- - - T u t o r i a l - - -</b> </td>     <font size=3><b>- - - T u t o r i a l - - -</b></font> </td>
   <td valign="top" align="center" colspan=3 width=450>    <td valign="top" align="center" colspan=3 width=450><font size=3><b>
 - - - - - - - - - - - - - - R e f e r e n c e - - - - - - - - - - - - - -</td>    - - - - - - - - - - - - - - R e f e r e n c e - - - - - - - - - - - - - -
    </b></font></td>
  </tr>   </tr>
  <tr>   <tr>
   <td valign="top" align="center" width=150> <font size=3>    <td valign="top" align="center" width=150> <font size=3>
    <a href="#introduction">&nbsp; (I) Introduction &nbsp;</a><br>     <a href="#introduction">&nbsp; (I) Introduction &nbsp;</a><br>
     <a href="#quickstart"> a. Quick Start </a><br>      <a href="#quickstart"> a. Quick Start </a><br>
     <a href="#examples">   b. Examples </a><br>      <a href="#examples">   b. Examples </a><br>
     <a href="#gpl">        c. GPL License </a> </font> </td>      <a href="#scripts">    c. Scripts&amp;Plugins </a><br>
       <a href="#gpl">        d. GPL License </a> </font> </td>
   <td valign="top" align="center" width=150> <font size=3>    <td valign="top" align="center" width=150> <font size=3>
    <a href="#build">&nbsp; (II) Building mimeTeX &nbsp;</a><br>     <a href="#build">&nbsp; (II) Building mimeTeX &nbsp;</a><br>
     <a href="#download">   a. Download </a><br>      <a href="#compile">    a. Compile </a><br>
     <a href="#compile">    b. Compile </a><br>      <a href="#install">    b. Install </a><br>
     <a href="#install">    c. Install </a><br>      <a href="#options">    c. Compile Options </a><br>
     <a href="#options">    d. Compile Options </a><br>      <a href="#cmdline">    d. Command Line </a> </font> </td>
     <a href="#cmdline">    e. Command Line </a> </font> </td>  
   <td valign="top" align="center" width=150> <font size=3>    <td valign="top" align="center" width=150> <font size=3>
    <a href="#reference">&nbsp; (III) Syntax Reference &nbsp;</a><br>     <a href="#reference">&nbsp; (III) Syntax Reference &nbsp;</a><br>
     <a href="#spaces">     a. Math & White Space </a><br>      <a href="#spaces">     a. Math & White Space </a><br>
Line 181  Table of Contents Line 297  Table of Contents
     <a href="#array">      e. \begin{array} </a><br>      <a href="#array">      e. \begin{array} </a><br>
     <a href="#picture">    f. \picture(&nbsp;){&nbsp;} </a><br>      <a href="#picture">    f. \picture(&nbsp;){&nbsp;} </a><br>
     <a href="#commands">   g. Other Commands </a><br>      <a href="#commands">   g. Other Commands </a><br>
     <a href="#exceptions"> h. Other Exceptions </a> </font> </td>      <a href="#exceptions"> h. Other Exceptions </a><br>
       <a href="#messages">   i. Errors and Messages </a> </font> </td>
   <td valign="top" align="center" width=150> <font size=3>    <td valign="top" align="center" width=150> <font size=3>
    <a href="#appendices">&nbsp; &nbsp; (IV) Appendices &nbsp; &nbsp;</a><br>     <a href="#appendices">&nbsp; &nbsp; (IV) Appendices &nbsp; &nbsp;</a><br>
     <a href="#fonts">      a. Fonts </a><br>      <a href="#fonts">      a. Fonts </a><br>
Line 189  Table of Contents Line 306  Table of Contents
     <a href="#gifsave">    c. gifsave.c </a>      <a href="#gifsave">    c. gifsave.c </a>
     <br><a href="#remarks"> &nbsp; Remarks &nbsp; </a> </font> </td>      <br><a href="#remarks"> &nbsp; Remarks &nbsp; </a> </font> </td>
  </tr>   </tr>
 </table></center>  </table>
   </center>
   
   <!-- br -->
   <p style="margin-left:3em;margin-right:3em;">
      <font color="blue" size=3> This page contains more information
      than you'll probably need to read.  If you follow the
      <font color="maroon">Installation&nbsp;and&nbsp;Usage&nbsp;Summary</font>
      below, try installing mimeTeX immediately.  <!-- If you need
      more information, --> Or continue reading until you feel comfortable
      trying to install mimeTeX.  <!-- Return to this page as needed. -->
      Prerequisites are: some knowledge of your OS's shell,
      of installing cgi's, of LaTeX. </font>
      <font color="maroon" size=3> <br>
      &nbsp; &nbsp; &nbsp; &nbsp;
           <b>&quot</b><i>Computers are like Old Testament gods<b>:</b>
           lots of rules and no mercy.</i><b>&quot</b><br>
      &nbsp; &nbsp; &nbsp; &nbsp;
           <b>&#150;&#150;</b> Joseph Campbell, The Power of Myth &nbsp;
           (Doubleday 1988, page 18) </font> </p>
   
   <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   + Installation and Usage Summary
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
   <!-- br -->
   <center>
   <table border="0">
   <tr> <!-- banner -->
    <td align="left">
      <!-- <b><font color="maroon" size=4>
      <u> &nbsp; &nbsp; &nbsp; &nbsp; I n s t a l l a t i o n &nbsp;
      a n d &nbsp; U s a g e &nbsp; S u m m a r y &nbsp; &nbsp; &nbsp; &nbsp;
      </u></font></b> -->
      <font size=4 color="maroon"><b>- - - - - - I n s t a l l a t i o n &nbsp;
      a n d &nbsp; U s a g e &nbsp; S u m m a r y - - - - - -</b></font>
    </td> </tr>
   <tr>
    <td valign="top"> <!-- summary -->
     <table border="0" cellpadding="0" cellspacing="0" hspace="0" vspace="0">
       <tr><td align="right" valign="top"> &nbsp; &nbsp; &nbsp;
         <a href="#build">Installation</a>: &nbsp; &nbsp; </td>
         <td><font size=4> Download <a href="http://www.forkosh.com/mimetex.zip">
          mimetex.zip</a> and then type <br>
          <b> &nbsp; &nbsp; unzip mimetex.zip</b> <br>
          <b> &nbsp; &nbsp; cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi</b>
          <br>Now just <b>mv</b> mimetex.cgi to your <b>cgi-bin/</b>
          directory, <br> set permissions as necessary, and you're all done.
          </font></td></tr>
       <tr><td colspan="2"> <font size="2">&nbsp;</font> </td></tr>
       <tr><td align="right" valign="top">
         <a href="#introduction">Usage</a>: &nbsp; &nbsp; </td>
         <td><font size=4> To see the image <br> &nbsp; &nbsp;
          <a href="#preview"><img id="summary1" onclick="eqntext('summary1')"
          src="../cgi-bin/mimetex.cgi?x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}"
          alt="" border=0 align=middle></a> <br>
          just write the tag <br>
          <b> &nbsp; &nbsp; &lt;img&nbsp;src="/cgi-bin/mimetex.cgi?<br>
          &nbsp; &nbsp; x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}"&gt;</b>
          </font></td></tr>
     </table>
    </td>
   </tr>
   </table>
   </center>
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 205  SECTION I.  INTRODUCTION Line 385  SECTION I.  INTRODUCTION
     And mimeTeX is an entirely separate little program that doesn't use      And mimeTeX is an entirely separate little program that doesn't use
     TeX or its fonts in any way.  It's just one cgi that you put in your      TeX or its fonts in any way.  It's just one cgi that you put in your
     site's cgi-bin/ directory, with no other dependencies.  So mimeTeX      site's cgi-bin/ directory, with no other dependencies.  So mimeTeX
     is very easy to <a href="#quickbuild">install</a>.  And it's equally      is very easy to <a href="#build">install</a>. <br>
     easy to use.  Just place an html &lt;img&gt; tag in your document      <nobr> &nbsp; &nbsp; &nbsp; &nbsp;
     wherever you want to see the corresponding LaTeX expression.         Just download <a href="http://www.forkosh.com/mimetex.zip">
     For example, </p>         mimetex.zip</a> and then type </nobr> <br>
 <pre>  &lt;img&nbsp;src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt"         <nobr><b> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
    alt="" border=0 align=middle&gt;</pre> <p class="continue">immediately            unzip mimetex.zip</b></nobr> <br>
     generates the corresponding gif image on-the-fly, displaying         <nobr><b> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
     <a href="#preview"><img id="imageI1" onclick="eqntext('imageI1')"            cc &#150;DAA mimetex.c gifsave.c
     src="../cgi-bin/mimetex.cgi?f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"            &#150;lm &#150;o mimetex.cgi</b></nobr> <br>
     alt="" border=0 align=middle></a> wherever you put that &lt;img&gt tag.      <nobr> &nbsp; &nbsp; &nbsp; &nbsp;
          Now just <b>mv</b> mimetex.cgi to your <b>cgi-bin/</b>
          directory, </nobr> <br>
       <nobr> &nbsp; &nbsp; &nbsp; &nbsp;
          set permissions as necessary, and you're all done. </nobr> <br>
       <br>
       And mimeTeX is equally easy to <a href="#quickstart">use</a><b>:</b>
       &nbsp; just place an html &lt;img&gt; tag in your document
       wherever you want to see the corresponding LaTeX expression. <br>
       <nobr> &nbsp; &nbsp; &nbsp; &nbsp;
          For example, the &lt;img&gt tag </nobr> <br>
          <nobr><b> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
             &lt;img&nbsp;
             src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt" &gt;</b></nobr><br>
       <nobr> &nbsp; &nbsp; &nbsp; &nbsp;
          immediately generates the corresponding gif image on-the-fly,</nobr><br>
          <nobr> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
             displaying &nbsp;
             <?php mimetextag('imageI1',
             '\normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt'); ?>
             &nbsp; wherever you put that tag.</nobr><br>
       <br>
     MimeTeX doesn't need intermediate dvi-to-gif conversion, and it doesn't      MimeTeX doesn't need intermediate dvi-to-gif conversion, and it doesn't
     store separate gif files for each converted expression.      create separate gif files for each converted expression.
     There's also no inherent need to repeatedly write the cumbersome      (But you can enable image caching with mimeTeX's
     &lt;img&gt; tag illustrated above.  You can write your own custom      &nbsp; <b>-DCACHEPATH=\&quot;<i>path/</i>\&quot;</b> &nbsp;
     tags, or write a wrapper script around mimeTeX to simplify the      <a href="#options">compile&nbsp;option</a>.)
     notation. For example,      &nbsp; And there's no inherent need to repeatedly write the
     <a href="http://www.pmichaud.com/wiki/PmWiki/PmWiki" target="_top">      cumbersome &lt;img&gt; tag illustrated above.
     PmWiki</a> already has a      You can write your own
     <a href="http://www.pmichaud.com/wiki/Cookbook/MimeTeX" target="_top">      <a href="#scripts">wrapper&nbsp;scripts</a>,
     mimeTeX&nbsp;plugin</a> that let's you just write      discussed below, around mimeTeX to simplify the notation. </p>
     <b>{$&nbsp;f(x)=\int_{-\infty}^xe^{-t^2}dt&nbsp;$}</b>  
     to obtain the same image. </p>  
   
   <h3> <a name="alternatives">
   Alternative solutions<font size=5>...</font></a> </h3>
 <p> MimeTeX's benefit over similar math-on-the-web solutions is, as  <p> MimeTeX's benefit over similar math-on-the-web solutions is, as
     mentioned above, its easy installation.  But if that's not a      mentioned above, its easy installation.  But if that's not a
     problem for you, and if your site's server already has a LaTeX      problem for you, and if your site's server already has a LaTeX
Line 238  SECTION I.  INTRODUCTION Line 439  SECTION I.  INTRODUCTION
     target="_top">latexrender</a>      target="_top">latexrender</a>
     which uses LaTeX to create higher quality images than mimeTeX      which uses LaTeX to create higher quality images than mimeTeX
     produces.  For comparison,      produces.  For comparison,
     <a href="#preview"><img id="imageI2" onclick="eqntext('imageI2')"      <?php mimetextag('imageI2',
     src="../cgi-bin/mimetex.cgi?f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"      '\small f(x)=\int\limits_{-\infty}^xe^{-t^2}dt'); ?>,
     alt="" border=0 align=middle></a>, with arbitrary mean      with arbitrary mean
     <a href="#preview"><img id="imageI3" onclick="eqntext('imageI3')"      <?php mimetextag('imageI3','\normalsize\mu'); ?> and standard deviation
     src="../cgi-bin/mimetex.cgi?\large\mu" alt="" border=0 align=middle></a>      <?php mimetextag('imageI4','\normalsize\sigma'); ?>,
     and standard deviation      and at mimeTeX's next larger font size, looks like </p>
     <a href="#preview"><img id="imageI4" onclick="eqntext('imageI4')"  
     src="../cgi-bin/mimetex.cgi?\large\sigma" alt="" border=0  
     align=middle></a>, and at mimeTeX's next larger font size, looks like </p>  
      <center>       <center>
       <table>        <table>
        <tr align="center">         <tr align="center">
  <td> <font size="4">mimeTeX</font> </td>   <td> <font size="4">latexrender</font> </td>
  <td> <img src="../cgi-bin/mimetex.cgi?\hspace{30}"   <td> <img src="../cgi-bin/mimetex.cgi?\hspace{30}"
               alt="" border=0> </td>                alt="" border=0> </td>
  <td> <font size="4">latexrender</font> </td>   <td> <font size="4">mimeTeX</font> </td>
        </tr>         </tr>
        <tr align="center">         <tr align="center">
   <td>  
  <a href="#preview"><img id="imageI5" onclick="eqntext('imageI5')"  
  src="../cgi-bin/mimetex.cgi?\large  
          f(x)={\Large\frac1{\sigma\sqrt{2\pi}}}  
  \int_{\small-\infty}^xe^{\small-\frac{(t-\mu)^2}{2\sigma^2}}dt"  
  alt="" border=0 align=middle></a> </td>  
         <td> &nbsp; </td>  
  <td> <img src="http://www.forkosh.com/lrender.gif"   <td> <img src="http://www.forkosh.com/lrender.gif"
  alt="" border=0 align=middle> </td>   alt="" border=0 align=middle> </td>
           <td> &nbsp; </td>
     <td>
    <?php mimetextag('imageI5',
    '\normalsize f(x)={\Large\frac1{\sigma\sqrt{2\pi}}}
    \int_{\small-\infty}^xe^{-\small\frac{(t-\mu)^2}{2\sigma^2}}dt'); ?>
    </td>
        </tr>         </tr>
       </table>        </table>
      </center>       </center>
 <p> Similar LaTeX-based solutions that you may want to look at are  <p> Similar LaTeX-based solutions that you may want to look at are
       <a href="http://www.mathtran.org" target="_top">mathtran</a>,
     <a href="http://www.fourmilab.ch/webtools/textogif/textogif.html"      <a href="http://www.fourmilab.ch/webtools/textogif/textogif.html"
     target="_top">textogif</a> and      target="_top">textogif</a> and
     <a href="http://www.math.uio.no/~martingu/gladtex/"      <a href="http://www.math.uio.no/~martingu/gladtex/"
Line 278  SECTION I.  INTRODUCTION Line 476  SECTION I.  INTRODUCTION
     <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=LaTeX2HTML"      <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=LaTeX2HTML"
     target="_top">tex-faq</a>. </p>      target="_top">tex-faq</a>. </p>
   
   <p> For example, <a href="http://www.mathtran.org" target="_top">mathtran</a>
       is a public LaTeX web service that's
       particularly easy to use by following these simple
       <a href="http://www.mathtran.org/wiki/index.php/TeX_image"
       target="_top">instructions</a>.  In the &lt;head&gt; of your
       html page, place the tag <br>
       &nbsp; &nbsp;
         &lt;script type="text/javascript" <br>
       &nbsp; &nbsp; &nbsp; &nbsp;
         src="http://www.mathtran.org/js/mathtran_img.js"&gt;&lt;/script&gt;<br>
       and in the &lt;body&gt;, wherever you want to see latex images,
       place tags like <br>
       &nbsp; &nbsp;
         &lt;img alt=<b>"</b>tex:<i>any latex math expression</i><b>"</b>&gt;<br>
       For comparison, <br>
       &nbsp; &nbsp;
         &lt;img alt="tex: f(x) = \frac1{\sigma\sqrt{2\pi}} <br>
       &nbsp; &nbsp;
         \int_{-\infty}^x e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt"&gt; <br>
       looks like </p>
        <center>
         <table>
          <tr align="center">
    <td> <font size="4">mathtran</font> </td>
    <td> <img src="../cgi-bin/mimetex.cgi?\hspace{30}"
                 alt="" border=0> </td>
    <td> <font size="4">mimeTeX</font> </td>
          </tr>
          <tr align="center">
    <td> unavailable
            <!-- img alt="tex:\displaystyle f(x) = \frac1{\sigma\sqrt{2\pi}}
            \int_{-\infty}^x e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt" --> <br> </td>
           <td> &nbsp; </td>
     <td>
    <a href="#preview"><img id="imageP3" onclick="eqntext('imageP3')"
    src="../cgi-bin/mimetex.cgi?\large
            f(x)={\Large\frac1{\sigma\sqrt{2\pi}}}
    \int_{\small-\infty}^xe^{-\small\frac{(t-\mu)^2}{2\sigma^2}}dt"
    alt="" border=0 align=middle></a> </td>
          </tr>
         </table>
        </center>
   
   <!--
 <p> The remainder of this introductory mimeTeX tutorial section contains </p>  <p> The remainder of this introductory mimeTeX tutorial section contains </p>
      <ul>       <ul>
        <li> First, a concise <a href="#quickstart">Quickstart</a> providing         <li> First, a concise <a href="#quickstart">Quickstart</a> providing
Line 291  SECTION I.  INTRODUCTION Line 533  SECTION I.  INTRODUCTION
        <li> Finally, the <a href="#gpl">gpl</a> license, whose terms         <li> Finally, the <a href="#gpl">gpl</a> license, whose terms
             and conditions you must agree to before using mimeTeX.</li>              and conditions you must agree to before using mimeTeX.</li>
      </ul>       </ul>
   -->
 <p> You may now want to browse the additional <a href="#examples">Examples</a>  <p> You may now want to browse the additional <a href="#examples">Examples</a>
     below before proceeding, to make sure mimeTeX suits your needs before you      below before proceeding, to make sure mimeTeX suits your needs before you
     invest more time learning to use it. </p>      spend more time learning to use it. </p>
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 306  QUICKSTART Line 549  QUICKSTART
      math markup to use it.  If you're not, many online LaTeX       math markup to use it.  If you're not, many online LaTeX
      <a href="http://www.tug.org/begin.html#doc" target="_top">turorials</a>       <a href="http://www.tug.org/begin.html#doc" target="_top">turorials</a>
      are readily available.  You may also want to browse Andrew Roberts'       are readily available.  You may also want to browse Andrew Roberts'
      <a href="http://www.comp.leeds.ac.uk/andyr/misc/latex/latextutorial9.html"       <a href="http://www.andy-roberts.net/misc/latex/latextutorial9.html"
      target="_top">Latex&nbsp;Math&nbsp;I</a> and       target="_top">Latex&nbsp;Math&nbsp;I</a> and
      <a href="http://www.comp.leeds.ac.uk/andyr/misc/latex/latextutorial10.html"       <a href="http://www.andy-roberts.net/misc/latex/latextutorial10.html"
      target="_top">Latex&nbsp;Math&nbsp;II</a>, or my own       target="_top">Latex&nbsp;Math&nbsp;II</a>, or my own
      <a href="http://www.forkosh.com/mimetextutorial.html" target="_top">       <a href="http://www.forkosh.com/mimetextutorial.html" target="_top">
      LaTeX&nbsp;math&nbsp;tutorial</a>.       LaTeX&nbsp;math&nbsp;tutorial</a>.
      Then, instead of continuing to read this page, you may prefer to       Then, instead of continuing to read this page, you can <!-- may prefer
      play with mimeTeX yourself.  In that case, just Submit any LaTeX       to play with mimeTeX yourself.  In that case, --> just Submit any LaTeX
      math expression you like in the Query Box below.  I've started       math expression you like in the Query Box below.  I've started
      you out with a little example already in the box, or, instead,       you out with a little example already in the box, or <!-- , instead, -->
      you can Click any of the <a href="#examples">Examples</a> below       you can Click any of the <a href="#examples">Examples</a> below
      to place that corresponding expression in the Query Box. </p>       to place that corresponding expression in the Query Box. </p>
   
  <p> Meanwhile, here are just a few quickstart tips for Submitting   <p> Meanwhile, here are just a few quickstart tips for Submitting
      your own mimeTeX expressions in the Query Box below: </p>       your own mimeTeX expressions in the Query Box below: </p>
      <ul>       <ul>
       <li> MimeTeX currently has six font sizes selected by        <li> MimeTeX currently has eight font sizes selected by
            one of the usual declarations             one of the usual directives &nbsp; <b>\tiny</b>
            <b>\tiny</b> or <b>\small</b> or <b>\normalsize</b> (default),             or <b>\small</b> or <b>\normalsize</b>&nbsp;,
            or <b>\large</b> or <b>\Large</b> or <b>\LARGE</b>&nbsp;.             or <b>\large</b>&nbsp;(default) or <b>\Large</b>
            For example, &nbsp; <b>\Large&nbsp;\sqrt{x^2+y^2}</b> &nbsp;             or <b>\LARGE</b>&nbsp;, or <b>\huge</b> or <b>\Huge</b>&nbsp;.
            renders &nbsp; <b>\sqrt{x^2+y^2}</b> &nbsp; two sizes above             &nbsp; &nbsp;  Unlike standard LaTeX, font size directives may
            <b>\normalsize</b>. </li>             appear within math&nbsp;mode expressions.  They affect everything
              to their right, except that their scope will be limited to any
              <b>{&nbsp;}</b>-enclosed subexpression in which they occur.
              For example, &nbsp; "<b>a+\small&nbsp;b+c</b>"
              &nbsp; renders &nbsp;
              <a href="#preview"> <img id="imageBu" onclick="eqntext('imageBu')"
              src="../cgi-bin/mimetex.cgi?\large a+\small b+c"
              alt="" border=0 style="Vertical-Align:-2px"></a>, &nbsp;
              whereas &nbsp; "<b>\small&nbsp;a+{\Large&nbsp;b+}c</b>" &nbsp;
              renders &nbsp;
              <a href="#preview"> <img id="imageBv" onclick="eqntext('imageBv')"
              src="../cgi-bin/mimetex.cgi?\small a+{\Large b+}c"
              alt="" border=0 style="Vertical-Align:-2px"></a>. </li>
 <!--  <li> At smaller font sizes, try preceding your expression with &nbsp;  <!--  <li> At smaller font sizes, try preceding your expression with &nbsp;
            <b>\light</b> &nbsp; which adjusts mimeTeX's anti-aliasing             <b>\light</b> &nbsp; which adjusts mimeTeX's anti-aliasing
            parameters to produce thinner lines that you may feel are             parameters to produce thinner lines that you may feel are
Line 359  QUICKSTART Line 614  QUICKSTART
            By default, mimeTeX renders limits textstyle &nbsp;             By default, mimeTeX renders limits textstyle &nbsp;
            <a href="#preview"> <img id="imageB1" onclick="eqntext('imageB1')"             <a href="#preview"> <img id="imageB1" onclick="eqntext('imageB1')"
            src="../cgi-bin/mimetex.cgi?\normalsize\textstyle             src="../cgi-bin/mimetex.cgi?\normalsize\textstyle
            \sum_{n=0}^\infty\frac{x^n}{n!}" alt="" border=0 align=middle></a>             \sum_{n=0}^\infty\frac{x^n}{n!}" alt="" border=0
            &nbsp; at sizes <b>\normalsize</b> and smaller,             style="Vertical-Align:-5px"></a> &nbsp;
              at sizes <b>\normalsize</b> and smaller,
            and renders them displaystyle &nbsp;             and renders them displaystyle &nbsp;
            <a href="#preview"> <img id="imageB2" onclick="eqntext('imageB2')"             <a href="#preview"> <img id="imageB2" onclick="eqntext('imageB2')"
            src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle             src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
            \sum_{n=0}^\infty\frac{x^n}{n!}" alt="" border=0 align=middle></a>             \sum_{n=0}^\infty\frac{x^n}{n!}" alt="" border=0
            &nbsp; at sizes <b>\large</b> and larger.             style="Vertical-Align:-15px"></a> &nbsp;
              at sizes <b>\large</b> and larger.
            The LaTeX directives <b>\displaystyle</b> or <b>\textstyle</b>,             The LaTeX directives <b>\displaystyle</b> or <b>\textstyle</b>,
            and <b>\limits</b> or <b>\nolimits</b>, override mimeTeX's default             and <b>\limits</b> or <b>\nolimits</b>, override mimeTeX's default
            in the usual way.  Or see the <b>-DDISPLAYSIZE=<i>n</i></b>             in the usual way.  Or see the <b>-DDISPLAYSIZE=<i>n</i></b>
            <a href="#options">compile&nbsp;option</a> below to change             <a href="#options">compile&nbsp;option</a> below to change
            the default. </li>             the default. </li>
        <!-- <li> As discussed in the <a href="#introduction">Introduction</a>,
               you can replace cumbersome &lt;img&gt; tags with your own custom
               tags or wrapper scripts. </li> -->
          <li> <!-- And --> There are occasional exceptions where I couldn't
               program mimeTeX to recognize valid LaTeX syntax.
               One particular "gotcha" is that mimeTeX bindings
               are pretty much left-to-right.  Thus, for example, although
               mimeTeX correctly interprets <b>\frac12</b> as well as
               <b>\frac1{x^2}</b>, etc, the legal LaTeX expression
               <b>x^\frac12</b> must be written <b>x^{\frac12}</b>.
               Otherwise, mimeTeX interprets it as <b>{x^\frac}12</b>, i.e.,
               the same way <b>x^\alpha12</b> would be interpreted, which is
               nonsense for <b>\frac</b>.  The same "gotcha" also applies to
               other combinations of commands, e.g., you must write
               <b>\sqrt{\frac\alpha\beta}</b>, or
               <b>\frac\alpha{\sqrt\beta}</b>, etc.
               The <a href="#reference">Syntax&nbsp;Reference</a> section
               contains much additional information.  <!-- Or you can just begin
               playing with mimeTeX for yourself to see if it might have
               any potential usefulness for you. --> </li>
          <li> And there are various additional syntactic and cosmetic
               differences between LaTeX and mimeTeX.  For example,
               bounding boxes for mimeTeX's character bitmaps don't
               accommodate italic corrections.  Therefore, an expression
               like <b>\int\nolimits_a^b</b> renders
               <a href="#preview"><img id="gotcha1" onclick="eqntext('gotcha1')"
               src="../cgi-bin/mimetex.cgi?
               \normalsize\displaystyle\int\nolimits_a^b"
               alt="" border=0 align=middle></a> rather than
               <a href="#preview"><img id="gotcha2" onclick="eqntext('gotcha2')"
               src="../cgi-bin/mimetex.cgi?
               \normalsize\displaystyle\smashmargin{2}{\int\nolimits_a}^b"
               alt="" border=0 align=middle></a><b>.</b>
               To render the latter image you have to write the somewhat
               cumbersome expression <b>{\smashmargin2{\int\nolimits_a}^b}</b>
               instead (see <a href="#smash">smash</a> below). </li>
          <li> Besides such exceptions, mimeTeX
               also provides various LaTeX extensions <!-- , i.e., LaTeX errors
               permitted by mimetex. -->  (such as font size
               directives like <b>\Large</b> permitted within mimeTeX
               math&nbsp;mode expressions, as discussed above).
               <!-- , but flagged as errors by LaTeX. -->
               <!-- But note well: if you take advantage of mimeTeX extensions,
               your math&nbsp;mode expressions will no longer be accepted by
               standard TeX engines. --> </li>
      </ul>       </ul>
  <p> <a name="forminput"> </a> <a name="preview"> </a>   <p> <a name="forminput"> </a> <a name="preview"> </a>
      Now enter your own expression, use the sample provided,       Now enter your own LaTeX expression, use the sample provided,
      or Click any of the <a href="#examples">Examples</a>.       or Click any of the <a href="#examples">Examples</a>.
      Then press the Submit button, and mimeTeX's rendering should be       Then press the Submit button, and mimeTeX's rendering should be
      displayed in the little window immediately below it. </p>       displayed in the little window immediately below it. </p>
Line 383  QUICKSTART Line 685  QUICKSTART
          <form name="expression" action="../cgi-bin/mimetex.cgi"           <form name="expression" action="../cgi-bin/mimetex.cgi"
          method="get" target="inlineframe">           method="get" target="inlineframe">
            <table border="0" cellpadding="0" cellspacing="1">             <table border="0" cellpadding="0" cellspacing="1">
              <tr align="left"><td>               <tr align="left"><td align="center">
                <!-- <font color="#000000" size="+1"><u><b>Enter your                  <b>First enter your own LaTeX expression,
                 Expression in Box below, or Click any Example ...                   or Click any example...</b> <br>
                 </b></u></font> <br> -->  
                <textarea name="formdata" rows="5" cols="72"                 <textarea name="formdata" rows="5" cols="72"
                 >\Large f(x)=\int_{-\infty}^x e^{-t^2}dt</textarea> <br>                  >\Large f(x)=\int_{-\infty}^x e^{-t^2}dt</textarea> <br>
              </td></tr>               </td></tr>
Line 396  QUICKSTART Line 697  QUICKSTART
                &nbsp; <input type="submit" value="Submit Expression"> </font>                 &nbsp; <input type="submit" value="Submit Expression"> </font>
              </td></tr>               </td></tr>
            </table>             </table>
          </form>           </form> </td></tr>  <tr align="left"><td align="center">
            <b>Now click Submit to see it rendered below...</b> <br>
          <iframe name="inlineframe" align="middle" width="85%" height="110">           <iframe name="inlineframe" align="middle" width="85%" height="110">
          &lt;p&gt;iframe's not supported if you see this.&lt;/p&gt;            &lt;p&gt;iframe's not supported if you see this.&lt;/p&gt; 
          </iframe>           </iframe>
Line 405  QUICKSTART Line 707  QUICKSTART
      </center>       </center>
  <p> You should see &nbsp;   <p> You should see &nbsp;
      <a href="#preview"><img id="imageIA3" onclick="eqntext('imageIA3')"       <a href="#preview"><img id="imageIA3" onclick="eqntext('imageIA3')"
      src="../cgi-bin/mimetex.cgi?f(x)=\int\limits_{-\infty}^x e^{-t^2}dt"       src="../cgi-bin/mimetex.cgi?\normalsize
      alt="" border=0 align=middle></a> if you submit the sample expression       f(x)=\int\limits_{-\infty}^x e^{-t^2}dt"
      already in the box. </p>       alt="" border=0 style="Vertical-Align:-11px"></a> &nbsp;
        if you submit the sample expression already in the box.
  <p> And the &lt;img&gt; tag to embed this same integral anywhere       Or see <a href="#messages">error&nbsp;messages</a> whenever an
      in your own document is </p>       unexpected image is displayed instead. &nbsp; And (as discussed
 <pre> &lt;img&nbsp;src="../cgi-bin/mimetex.cgi?\large f(x)=\int_{-\infty}^xe^{-t^2}dt"       above) the &lt;img&gt; tag to embed this same integral anywhere
   alt="" border=0 align=middle&gt;</pre>       in your own document is <br>
          <nobr><b> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
  <p> You can see numerous additional examples illustrating html            &lt;img&nbsp;
      &lt;img&gt; tags using mimeTeX by viewing this page's source.            src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt" &gt;</b></nobr><br>
      The typical mimeTeX &lt;img&gt; tag has the form </p>       </p>
    <!-- p class="continue">
        And recall that the typical mimeTeX &lt;img&gt; tag has the form </p>
 <pre> &lt;img&nbsp;src="../cgi-bin/mimetex.cgi?any valid LaTeX/mimeTeX expression"  <pre> &lt;img&nbsp;src="../cgi-bin/mimetex.cgi?any valid LaTeX/mimeTeX expression"
   alt="" border=0 align=middle&gt;</pre> <p class="continue">    alt="" border=0 align=middle&gt;</pre> <p class="continue">
      where <b>../cgi-bin/mimetex.cgi</b> is the relative path from your html       where <b>../cgi-bin/mimetex.cgi</b> is the relative path from your html
      page containing these tags to your compiled mimetex.cgi program, and       page containing these tags to your compiled mimetex.cgi program, and
      where <b>any&nbsp;valid&nbsp;LaTeX/mimeTeX&nbsp;expression</b>       where <b>any&nbsp;valid&nbsp;LaTeX/mimeTeX&nbsp;expression</b>
      is pretty much any valid LaTeX math expression: </p> <ul>       is pretty much any valid LaTeX math expression: </p -->
        <li> As discussed in the <a href="#introduction">Introduction</a>,  
             you can replace cumbersome &lt;img&gt; tags with your own custom  <!-- ++++++++
             tags or wrapper scripts. </li>   <h3> <a name="errormessages">
        <li> And there are occasional exceptions where I couldn't program   Error messages<font size=5>...</font></a> </h3>
             mimeTeX to precisely mimic all valid LaTeX syntax.   <p> Any (La)TeX error is typically also a mimeTeX error.
             One particular "gotcha" to be aware of is that mimeTeX bindings       However, mimeTeX has no command line interface or
             are pretty much left-to-right.  Thus, for example, although       <b>.</b>log file for reporting errors.  Its only
             mimeTeX correctly interprets <b>\frac12</b> as well as       communication with you is through the mimeTeX image
             <b>\frac1{x^2}</b>, etc, the legal LaTeX expression       rendered by your browser.  So error messages are embedded
             <b>x^\frac12</b> must be written <b>x^{\frac12}</b>.       in that image whenever feasible.  For example,
             Otherwise, mimeTeX interprets it as <b>{x^\frac}12</b>, i.e.,       suppose you want to see
             the same way <b>x^\alpha12</b> would be interpreted, which is        <a href="#preview"><img id="messages1" onclick="eqntext('messages1')"
             nonsense for <b>\frac</b>.  The same "gotcha" also applies to        src="../cgi-bin/mimetex.cgi?\normalsize\alpha\beta\gamma\delta"
             other combinations of commands, e.g., you must write        alt="" border=0 align="bottom"></a>
             <b>\sqrt{\frac\alpha\beta}</b>, etc.       but you mistakenly type &nbsp; <b>\alpha\bethe\gamma\delta</b> &nbsp;
             The <a href="#reference">Syntax&nbsp;Reference</a> section       instead.  Then the image rendered is
             contains much additional information.  Or you can just begin        <a href="#preview"><img id="messages2" onclick="eqntext('messages2')"
             playing with mimeTeX for yourself to see if it might have        src="../cgi-bin/mimetex.cgi?\normalsize\alpha\bethe\gamma\delta"
             any potential usefulness for you. </li>        alt="" border=0 align="bottom"></a>
        <li> Besides the occasional exceptions discussed above, mimeTeX       indicating the unrecognized <b>[\bethe?]</b> where you wanted to type
             also provides various LaTeX extensions, i.e., LaTeX errors       &nbsp; <b>\beta</b> &nbsp; and had hoped to see &nbsp;
             permitted by mimetex.  For example, font size changing        <a href="#preview"><img id="messages3" onclick="eqntext('messages3')"
             directives like <b>\Large</b> are permitted within mimeTeX        src="../cgi-bin/mimetex.cgi?\normalsize\bf\beta"
             math&nbsp;mode expressions.  But note well: if you take        alt="" border=0 align="bottom"></a><b>.</b> &nbsp;
             advantage of mimeTeX extensions, your math&nbsp;mode expressions       If your expression contains some unprintable character
             will no longer be accepted by standard TeX engines. </li> </ul>       (meaning any character mimeTeX has no bitmap for),
        then just &nbsp;
         <a href="#preview"><img id="messages4" onclick="eqntext('messages4')"
         src="../cgi-bin/mimetex.cgi?\small\bf[?]"
         alt="" border=0 align="bottom"></a> &nbsp;
        is displayed in the corresponding position. </p>
   
    <p> The preceding example illustrates a pretty trivial error.
        Any non-trivial errors in your expression are likely to
        go unrecognized and unreported by mimeTeX, and to render
        unexpected images.  While checking your input expression
        for syntax errors, keep in mind the following points
        about mimeTeX's behavior: </p>
        <ul>
          <li> An unmatched left brace &nbsp; <b>{</b> &nbsp; is matched
               by mimeTeX with a "phantom" right brace &nbsp; <b>}</b> &nbsp;
               that's imagined to be at the end of your expression. </li>
          <li> Likewise, an unmatched &nbsp; <b>\left(</b>, &nbsp;
               or <b>\left\{</b> &nbsp; or <b>\left\</b><i>anything</i>, &nbsp;
               is matched by mimeTeX with a "phantom" &nbsp; <b>\right.</b>
               &nbsp; at the end of your expression. </li>
          <li> On the other hand, an unmatched right brace &nbsp; <b>}</b>
               &nbsp; is displayed in place, as if you had typed \rbrace. </li>
          <li> But an unmatched &nbsp; <b>\right\</b><i>anything</i> &nbsp;
               is interpreted as an
               <a href="http://www.forkosh.com/mimetexmanual.html?abbreviations"
               target="_top">abbreviation</a> for <b>\</b>rightarrow
               followed by <b>\</b><i>anything</i>.  For example, &nbsp;
               <b>\leff(&nbsp;abc&nbsp;\right)&nbsp;def</b> &nbsp; renders &nbsp;
                 <a href="#preview"><img id="messages5"
                 onclick="eqntext('messages5')"
                 src="../cgi-bin/mimetex.cgi?\small\leff(abc\right)def"
                 alt="" border=0 align="bottom"></a>.
               </li>
        </ul>
   ++++++++ -->
   
   <!-- ++++++++
    <h3> <a name="infomessages">
    Informational messages<font size=5>...</font></a> </h3>
    <p> The latest release of mimeTeX is version
          <a href="#preview"><img id="messages11" onclick="eqntext('messages11')"
          src="../cgi-bin/mimetex.cgi?\small\versionnumber"
          alt="" border=0 align="bottom"></a>
        which was last revised
          <a href="#preview"><img id="messages12" onclick="eqntext('messages12')"
          src="../cgi-bin/mimetex.cgi?\small\revisiondate"
          alt="" border=0 align="bottom"></a>.
        The special mimeTeX directive &nbsp; <b>\version</b> &nbsp;
        displays that same information, </p>
         <center>
          <a href="#preview"><img id="messages13" onclick="eqntext('messages13')"
          src="../cgi-bin/mimetex.cgi?\version"
          alt="" border=0 align=middle></a>
         </center>
    <p> To check that your own release of mimeTeX is current,
        type a url into your browser's locator window something like <br>
           &nbsp; &nbsp; &nbsp; &nbsp;
        <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?\version</b> <br>
        which will display the version and revision date of
        mimeTeX installed on your server. </p>
   ++++++++ -->
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 456  EXAMPLES Line 821  EXAMPLES
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 <h2> <a name="examples"> (Ib) Examples &nbsp; </a> </h2>  <h2> <a name="examples"> (Ib) Examples &nbsp; </a> </h2>
   
  <p> Here are various additional random examples further demonstrating   <p> Here are various additional random examples further illustrating
      mimeTeX's features and usage.  To see how they're done, Click any       mimeTeX's features and usage.  To see how they're done, Click any
      one of them to place its corresponding expression in the       one of them to place its corresponding expression in the
      <a href="#preview">Query&nbsp;Box</a> above.  Then press Submit       <a href="#preview">Query&nbsp;Box</a> above.  Then press Submit
Line 472  EXAMPLES Line 837  EXAMPLES
   <td align="left" colspan=4>    <td align="left" colspan=4>
     <a href="#preview">      <a href="#preview">
       <img id="example1a" onclick="eqntext('example1a')"        <img id="example1a" onclick="eqntext('example1a')"
       src="../cgi-bin/mimetex.cgi?\red\small\displaystyle        src="../cgi-bin/mimetex.cgi?\red\normalsize\displaystyle
       e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"        e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"
       alt="" border=0 align=middle></a> &nbsp &nbsp        alt="" border=0 align=middle></a> &nbsp &nbsp
     <a href="#preview">      <a href="#preview">
       <img id="example1b" onclick="eqntext('example1b')"        <img id="example1b" onclick="eqntext('example1b')"
       src="../cgi-bin/mimetex.cgi?\green\normalsize\displaystyle        src="../cgi-bin/mimetex.cgi?\green\large\displaystyle
       e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"        e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"
       alt="" border=0 align=middle></a> &nbsp &nbsp        alt="" border=0 align=middle></a> &nbsp &nbsp
     <a href="#preview">      <a href="#preview">
       <img id="example1c" onclick="eqntext('example1c')"        <img id="example1c" onclick="eqntext('example1c')"
       src="../cgi-bin/mimetex.cgi?\blue\large        src="../cgi-bin/mimetex.cgi?\blue\Large
       e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"        e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"
       alt="" border=0 align=middle></a> &nbsp &nbsp        alt="" border=0 align=middle></a> &nbsp &nbsp
     <a href="#preview">      <a href="#preview">
       <img id="example1d" onclick="eqntext('example1d')"        <img id="example1d" onclick="eqntext('example1d')"
       src="../cgi-bin/mimetex.cgi?\reverse\opaque\light        src="../cgi-bin/mimetex.cgi?\reverse\opaque
       \Large e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"        \LARGE e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"
       alt="" border=0 align=middle></a> &nbsp &nbsp        alt="" border=0 align=middle></a> &nbsp &nbsp
     <a href="#preview">      <a href="#preview">
       <img id="example1e" onclick="eqntext('example1e')"        <img id="example1e" onclick="eqntext('example1e')"
       src="../cgi-bin/mimetex.cgi?\Large        src="../cgi-bin/mimetex.cgi?\LARGE
       e^x=\lim_{n\to\infty} \left(1+\frac xn\right)^n"        e^x=\lim_{n\to\infty} \left(1+\frac xn\right)^n"
       alt="" border=0 align=middle></a>        alt="" border=0 align=middle></a>
   </td>    </td>
Line 579  EXAMPLES Line 944  EXAMPLES
     <a href="#preview">      <a href="#preview">
     <img id="example6" onclick="eqntext('example6')"      <img id="example6" onclick="eqntext('example6')"
     src="../cgi-bin/mimetex.cgi?\LARGE\tilde y=\left\{      src="../cgi-bin/mimetex.cgi?\LARGE\tilde y=\left\{
     {\ddot x\text{ if x odd}\atop\hat{\,\bar x+1}\text{ if even}}\right."      {\ddot x\text{ if \vec x odd}\atop\hat{\,\bar x+1}\text{ if even}}\right."
     alt="" border=0 align=middle></a> </td>      alt="" border=0 align=middle></a> </td>
   <td>    <td>
     illustrating <b>\left\{...\right<font size=5>.</font></b>      illustrating <b>\left\{...\right<font size=5>.</font></b>
Line 595  EXAMPLES Line 960  EXAMPLES
   <td align="center">    <td align="center">
     <a href="#preview">      <a href="#preview">
     <img id="example7" onclick="eqntext('example7')"      <img id="example7" onclick="eqntext('example7')"
     src="../cgi-bin/mimetex.cgi?\Large\overbrace{a,...,a}^{\text{k a^,s}},      src="../cgi-bin/mimetex.cgi?\large\overbrace{a,...,a}^{\text{k a^,s}},
     \underbrace{b,...,b}_{\text{l b^,s}}\hspace{10}      \underbrace{b,...,b}_{\text{l b^,s}}\hspace{10}
     \normalsize\underbrace{\overbrace{a...a}^{\text{k a^,s}},      \normalsize\underbrace{\overbrace{a...a}^{\text{k a^,s}},
     \overbrace{b...b}^{\text{l b^,s}}}_{\text{k+l elements}}"      \overbrace{b...b}^{\text{l b^,s}}}_{\text{k+l elements}}"
Line 610  EXAMPLES Line 975  EXAMPLES
  <tr>   <tr>
   <td>    <td>
     <font size=5>(8)</font> </td>      <font size=5>(8)</font> </td>
   <td align="left" colspan=4>    <td align="left" colspan=3>
     <table>      <table>
       <tr>        <tr>
         <td align="left" colspan=2>          <td align="left" colspan=2>
          <a href="#preview">           <a href="#preview">
          <img id="example8a" onclick="eqntext('example8a')"           <img id="example8a" onclick="eqntext('example8a')"
          src="../cgi-bin/mimetex.cgi?\Large\scr{J}^{i0}=+\frac i2           src="../cgi-bin/mimetex.cgi?\large\scr{J}^{i0}=+\frac i2
          \left[\begin{array}{cc}\sigma_i&0\\0&-\sigma_i\end{array}\right]           \left[\begin{array}{cc}\sigma_i&0\\0&-\sigma_i\end{array}\right]
          \hspace{10}\scr{J}^{ij}=\frac12\varepsilon_{ijk}           \hspace{10}\scr{J}^{ij}=\frac12\varepsilon_{ijk}
          \left[\begin{array}{cc}\sigma_k&0\\0&\sigma_k\end{array}\right]"           \left[\begin{array}{cc}\sigma_k&0\\0&\sigma_k\end{array}\right]"
Line 627  EXAMPLES Line 992  EXAMPLES
         <td align="left">          <td align="left">
          <a href="#preview">           <a href="#preview">
          <img id="example8b" onclick="eqntext('example8b')"           <img id="example8b" onclick="eqntext('example8b')"
          src="../cgi-bin/mimetex.cgi?\Large A\ =\ \large\left(           src="../cgi-bin/mimetex.cgi?\large A\ =\ \normalsize\left(
          \begin{array}{c.ccc}&1&2&3\\\hdash1&a_{11}&a_{12}&a_{13}\\           \begin{array}{c.cccc}&1&2&\cdots&n\\
          2&a_{21}&a_{22}&a_{23}\\3&a_{31}&a_{32}&a_{33}\end{array}\right)"           \hdash1&a_{11}&a_{12}&\cdots&a_{1n}\\
            2&a_{21}&a_{22}&\cdots&a_{2n}\\
            \vdots&\vdots&\vdots&\ddots&\vdots\\
            n&a_{n1}&a_{n2}&\cdots&a_{nn}\end{array}\right)"
          alt="" border=0 align=middle></a> </td>           alt="" border=0 align=middle></a> </td>
         <td>          <td>
          demonstrating <a href="#array">\begin{array}</a>'s dashed lines </td>           demonstrating <a href="#array">\begin{array}</a>'s dashed lines </td>
Line 645  EXAMPLES Line 1013  EXAMPLES
         <td align="left" colspan="2">          <td align="left" colspan="2">
          <a href="#preview">           <a href="#preview">
          <img id="example9c" onclick="eqntext('example9c')"           <img id="example9c" onclick="eqntext('example9c')"
          src="../cgi-bin/mimetex.cgi?\normalsize           src="../cgi-bin/mimetex.cgi?\large
          \left(\large\begin{array}{GC+23}           \left(\large\begin{array}{GC+45}
          \varepsilon_x\\\varepsilon_y\\\varepsilon_z\\\gamma_{xy}\\           \varepsilon_x\\\varepsilon_y\\\varepsilon_z\\\gamma_{xy}\\
          \gamma_{xz}\\\gamma_{yz}\end{array}\right)\ {\Large=}           \gamma_{xz}\\\gamma_{yz}\end{array}\right)\ {\large=}
          \ \left[\begin{array}{CC}           \ \left[\begin{array}{CC}
          \begin{array}\frac1{E_{\fs{+1}x}}           \begin{array}\frac1{E_{\fs{+1}x}}
          &-\frac{\nu_{xy}}{E_{\fs{+1}x}}           &-\frac{\nu_{xy}}{E_{\fs{+1}x}}
Line 678  EXAMPLES Line 1046  EXAMPLES
   <td align="center">    <td align="center">
     <a href="#preview">      <a href="#preview">
     <img id="example10" onclick="eqntext('example10')"      <img id="example10" onclick="eqntext('example10')"
     src="../cgi-bin/mimetex.cgi?\Large\left.\begin{eqnarray}      src="../cgi-bin/mimetex.cgi?\large\left.\begin{eqnarray}
     x+y+z&=&3\\2y&=&x+z\\2x+y&=&z\end{eqnarray}\right\}"      x+y+z&=&3\\2y&=&x+z\\2x+y&=&z\end{eqnarray}\right\}"
     alt="" border=0 align=middle></a> </td>      alt="" border=0 align=middle></a> </td>
   <td>    <td>
Line 711  using \longxxxarrow[] and \begin{array} Line 1079  using \longxxxarrow[] and \begin{array}
   <td align="left">    <td align="left">
     <a href="#preview">      <a href="#preview">
     <img id="example12" onclick="eqntext('example12')"      <img id="example12" onclick="eqntext('example12')"
     src="../cgi-bin/mimetex.cgi?\Large\hspace{5}\unitlength{1}      src="../cgi-bin/mimetex.cgi?\large\hspace{5}\unitlength{1}
     \picture(175,100){ (50,50){\circle(100)}      \picture(175,100){ (50,50){\circle(100)}
     (1,50){\overbrace{\line(46)}^{4$\;\;a}}      (1,50){\overbrace{\line(46)}^{3$\;\;a}}
     (52,50){\line(125)} (50,52;115;2){\mid} (52,55){\longleftar[60]}      (52,50){\line(125)} (50,52;115;2){\mid} (52,55){\longleftar[60]}
     (130,56){\longrightar[35]} (116,58){r} (c85,50;80;2){\bullet}      (130,56){\longrightar[35]} (116,58){\small r}
     (c85,36){\large-q} (c165,36){\large q}      (c85,50;80;2){\small\bullet} (c85,36){\small -q} (c165,36){\small q}
     (42,30){\underbrace{\line(32)}_{\small a^2/r\;\;\;}} }"      (42,29){\underbrace{\line(32)}_{\scriptsize a^2/r\;\;\;}} }"
     alt="" border=0 align=middle></a> </td>      alt="" border=0 align=middle></a> </td>
   <td valign="middle">    <td valign="middle">
     mimeTeX <a href="#picture">\picture(size){pic_elems}</a>      mimeTeX <a href="#picture">\picture(size){pic_elems}</a>
Line 752  using \longxxxarrow[] and \begin{array} Line 1120  using \longxxxarrow[] and \begin{array}
     The image at left is picture-in-picture-in-picture. </td>      The image at left is picture-in-picture-in-picture. </td>
   </tr>    </tr>
 </table>  </table>
 <br><br>  
   
 <!-- font examples  <!-- font examples
 ++++++++++++++++++ -->  ++++++++++++++++++ -->
   <!-- font-size-examples-commented-out ---
   <br><br>
   <h3> Some font examples <font size=5>...</font></a> </h3>
  <p> Finally, illustrated below are some examples of fonts and symbols   <p> Finally, illustrated below are some examples of fonts and symbols
      available with mimeTeX.  All symbols and sizes from cmr, cmmi. cmsy,       available with mimeTeX.  All symbols and sizes from cmr, cmmi,
      cmex and rsfs should be available, but they're not all shown.       cmmib (use <b>\mathbf{&nbsp;}</b>), cmsy, cmex, bbold (use
      Mathbb symbols are also available but not shown.       <b>\mathbb{&nbsp;}</b>), rsfs (use <b>\mathscr{&nbsp;}</b>),
        stmary and cyrillic wncyr (use <b>{\cyr&nbsp;&nbsp;}</b> or
        <b>\cyr{&nbsp;}</b>) should be available, but they're not all shown.
      And also not shown are various "constructed symbols" like \sqrt,       And also not shown are various "constructed symbols" like \sqrt,
      accents, etc.  The illustrated font sizes are numbered 4=\Large,       accents, etc.  The illustrated font sizes are numbered 4=\Large,
      3=\large and 2=\normalsize (not shown are 5=\LARGE, 1=\small and       3=\large and 2=\normalsize (not shown are 7=\Huge, 6=\huge,
      0=\tiny). </p>       5=\LARGE, 1=\small and 0=\tiny). </p>
   
 <h3>cmmi latin uppercase, and lowercase</h3>  <h3>cmmi latin uppercase, and lowercase</h3>
 <p> <img src="../cgi-bin/mimetex.cgi?\array{r$  <p> <img src="../cgi-bin/mimetex.cgi?\array{r$
Line 812  alt="" border=0 align=middle> </p> Line 1184  alt="" border=0 align=middle> </p>
 2$\pi&2$\rho&2$\sigma&2$\tau&2$\upsilon&2$\phi&2$\chi&2$\psi&2$\omega}"  2$\pi&2$\rho&2$\sigma&2$\tau&2$\upsilon&2$\phi&2$\chi&2$\psi&2$\omega}"
 alt="" border=0 align=middle> </p>  alt="" border=0 align=middle> </p>
   
 <h3>cmsy symbols at mimeTeX font size 3</h3>  <h3>cmsy symbols at mimeTeX font size 3<br>
   <font size="3">(operators shown large are automatically "promoted"<br>
   to the larger size in \displaystyle mode)</font> </h3>
 <p> <img src="../cgi-bin/mimetex.cgi?\array{3,r$1$\rm~chars~\\  <p> <img src="../cgi-bin/mimetex.cgi?\array{3,r$1$\rm~chars~\\
 1$\rm~0-15:~&-&\cdot&\times&\ast&\div&\diamond&\pm&\mp&  1$\rm~0-15:~&-&\cdot&\times&\ast&\div&\diamond&\pm&\mp&
 \oplus&\ominus&\otimes&\oslash&\odot&\bigcirc&\circ&\bullet\\  \oplus&\ominus&\otimes&\oslash&\odot&\bigcirc&\circ&\bullet\\
Line 829  alt="" border=0 align=middle> </p> Line 1203  alt="" border=0 align=middle> </p>
 1$\rm~117-127:~&\sqcap&\sqsubseteq&\sqsupseteq&\S&\dag&\ddag&\P&\clubsuit&  1$\rm~117-127:~&\sqcap&\sqsubseteq&\sqsupseteq&\S&\dag&\ddag&\P&\clubsuit&
 \Diamond&\Heart&\spadesuit}" alt="" border=0 align=middle> </p>  \Diamond&\Heart&\spadesuit}" alt="" border=0 align=middle> </p>
   
 <h3>a few other cmmi and cmr symbols at mimeTeX font size 4</h3>  <h3>a few other cmmi, cmr, stmary and wncyr symbols
   at mimeTeX font size 4</h3>
 <p> <img src="../cgi-bin/mimetex.cgi?\array{4,r$  <p> <img src="../cgi-bin/mimetex.cgi?\array{4,r$
 1$\rm~cmmi:~&\leftharpoonup&\leftharpoondo&\rightharpoonup&\rightharpoondo&  1$\rm~cmmi:~&\leftharpoonup&\leftharpoondo&\rightharpoonup&\rightharpoondo&
 \triangleright&\triangleleft&\star&\partial&  \triangleright&\triangleleft&\star&\partial&
 \flat&\natural&\sharp&\smile&\frown&\ell&\imath&\jmath&\wp&\vec\\  \flat&\natural&\sharp&\smile&\frown&\ell&\imath&\jmath&\wp&\vec\\
 1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE}" alt="" border=0 align=middle> </p>  1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE \\
   1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&
   \subsetpluseq&\supsetpluseq&\Yup&\Ydown\\
   1$\rm~wncyr:~&\cyr A&\cyr a&\cyr B&\cyr b&\cyr V&\cyr v&\cyr G&\cyr g&
   \cyr D&\cyr d&\cyr Dj&\cyr dj&\cyr\=E&\cyr\=e&\cyr Zh&\cyr zh}"
   alt="" border=0 align=middle> </p>
   --- end-of-font-size-examples-commented-out -->
   
   <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   SCRIPTS & PLUGINS
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
   <h2> <a name="scripts"> (Ic) Scripts &amp; Plugins &nbsp; </a> </h2>
   
   <p> Some useful scripts that automatically construct
       mimeTeX &lt;img&gt; tags for you are illustrated below.
       And you can also write your own scripts to simplify
       the HTML notation required to incorporate mimeTeX
       math images in your pages. </p>
   
   <h3> <a name="plugins">
   mimeTeX plugins<font size=5>...</font></a> </h3>
   <!-- p> There's no inherent need to repeatedly write the cumbersome
       &lt;img&gt; tag illustrated above.  You can write your own <a href=
       "http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro9.html#wp73314"
       target="_top">custom&nbsp;tags</a>,
       or write a wrapper&nbsp;script around mimeTeX to simplify the
       notation. </p -->
   
   <p style="margin-bottom:0">  <!-- For example, -->
       The following javascript snippet (based on
       <a href="http://www.mathtran.org" target="_top">mathtran</a>'s
       <a href="http://www.mathtran.org/js/mathtran_img.js"
       target="_top">mathtran_img.js</a>) lets you just write &nbsp;
       <b>&lt;img&nbsp;alt="mimetex:c=\sqrt{a^2+b^2}"&gt;</b> &nbsp;
       wherever you want to see&nbsp;<a href="#preview"><img id="imageJS1"
       onclick="eqntext('imageJS1')" src="../cgi-bin/mimetex.cgi?
       \normalsize c=\sqrt{a^2+b^2}" alt="" border=0
       style="Vertical-Align:-1px"></a>&nbsp; </p>
       <pre class="medium" style="margin-top:0;margin-bottom:0"
   >   &lt;script type="text/javascript"&gt;
      &lt;!--
      // Create a namespace to hold variables and functions
      mimetex = new Object();
      // Change this to use your server
      mimetex.imgSrc = "http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?";
      // Transform the whole document: add src to each img with
      // alt text starting with "mimetex:", unless img already has a src.
      mimetex.init = function () {
          if (! document.getElementsByTagName) return;
          var objs = document.getElementsByTagName("img");
          var len  = objs.length;
          for (i=0; i&lt;len; i++) {
             var img = objs[i];
             if (img.alt.substring(0,8) == 'mimetex:')
                if (!img.src) {
                   var tex_src = img.alt.substring(8);
                   img.src = mimetex.imgSrc + encodeURIComponent(tex_src);
                   // Append TEX to the class of the IMG.
                   img.className +=' tex'; }
             }
          mimetex.hideElementById("mimetex.error"); }
      // Utility function
      mimetex.hideElementById = function (id) {
          var obj = document.getElementById(id);
          if (obj) obj.style.display = 'none'; }
      // resolve a cross-browser issue (see <a href="http://scottandrew.com/weblog/articles/cbs-events" target="_top">CBS&nbsp;events</a>)
      mimetex.addEvent = function (obj, evType, fn, useCapture) {
          if (obj.addEventListener) { //For Mozilla.
              obj.addEventListener(evType, fn, useCapture);
              return true; }
          else if (obj.attachEvent) { //For Internet Explorer.
              var r = obj.attachEvent("on"+evType, fn);
              return r; }
          }
      // Initialize after entire document is loaded
      mimetex.addEvent(window, 'load', mimetex.init, false);
      --&gt;
      &lt;/script&gt;</pre>
   
   <p style="margin-bottom:0">
       Bulletin boards, wikis, etc, can also incorporate mimeTeX images
       with short scripts.  For example, if you're using
       <a href="http://www.phpbb.com" target="_top">phpBB2</a>, then
       <a href="http://www.themathforum.com/" target="_top">Jameson</a>
       contributed the following typical one-line mod that lets you write
       <b>[tex]&nbsp;c=\sqrt{a^2+b^2}&nbsp;[/tex]</b> to obtain the
       same&nbsp;<a href="#preview"><img id="imageJS2"
       onclick="eqntext('imageJS2')" src="../cgi-bin/mimetex.cgi?
       \normalsize c=\sqrt{a^2+b^2}" alt="" border=0
       style="Vertical-Align:-1px"></a> image illustrated above&nbsp; </p>
       <pre class="medium" style="margin-top:0;margin-bottom:0"
   >   #--------[open]-----------------------------------------------------
        /includes/bbcode.php
      #--------[find]-----------------------------------------------------
        // Remove our padding from the string..
      #--------[before, add]----------------------------------------------
        $text = preg_replace('/\[tex\](.*?)\[\/tex\]/ie',
        "'&lt;img src=\"/cgi-bin/mimetex.cgi?'.rawurlencode('$1').'\" align=\"middle\" /&gt;'",
        $text);</pre>
   <p class="continue" style="margin-top:0"> If you're using
        <a href="http://www.phpbb.com" target="_top">phpBB3</a>,
        then no mod is even needed.
        Just click Postings from the Administrator Control Panel,
        and add the custom BBCode&nbsp;<b>[tex]{TEXT}[/tex]</b> &nbsp;
        with the HTML replacement
        <b>&lt;img&nbsp;src="/cgi-bin/mimetex.cgi?{TEXT}"&nbsp;align=middle&gt;</b></p>
   
   <p> Similarly, <a href="http://www.pmwiki.org/" target="_top">PmWiki</a>
       also has a
       <a href="http://www.pmwiki.org/wiki/Cookbook/MimeTeX" target="_top">
       mimeTeX&nbsp;plugin</a> that lets you just write
       <b>{$&nbsp;f(x)=\int_{-\infty}^xe^{-t^2}dt&nbsp;$}</b>
       to obtain that same image. &nbsp; Several other packages
       also have similar mimeTeX plugins: </p>
       <center><table>
        <tr> <td align=center> <u>&nbsp;<b>Package</b>&nbsp;</u> </td>
         <td> &nbsp; </td>
         <td align=center> <u>&nbsp;&nbsp;<b>Plugin</b>&nbsp;&nbsp;</u> </td>
         </tr>
        <tr> <td align=center>
     <a href="http://www.pmwiki.org" target="_top">
     PmWiki</a> </td> <td> &nbsp; </td>
     <td align=center>
     <a href="http://www.pmwiki.org/wiki/Cookbook/MimeTeX"
     target="_top">mimeTeX&nbsp;plugin</a> </td> </tr>
        <tr> <td align=center>
     <!-- a href="http://www.wikimedia.org/wiki/Main_Page" -->
     <!-- a href="http://www.wikimediafoundation.org/wiki/Main_Page" -->
     <a href="http://www.mediawiki.org/wiki/MediaWiki"
             target="_top">MediaWiki</a> </td>
     <td align=center> &nbsp; </td>
     <td align=center>
     <!-- a href="http://meta.wikimedia.org/wiki/Mimetex_alternative" -->
     <a href="http://www.mediawiki.org/wiki/Mimetex_alternative"
     target="_top">&quot;mimeTeX&nbsp;alternative&quot;</a> </td> </tr>
   <!-- ***redirect loop***
        <tr> <td align=center>
     <a href="http://www.unitorganizer.com/mathwiki/index.php/Main_Page"
     target="_top">MathWiki</a> </td> <td> &nbsp; </td>
     <td align=center> <a href=
     "http://www.unitorganizer.com/mathwiki/index.php/MimetexParser"
     target="_top">&quot;mimeTeX&nbsp;Parser&quot;</a> </td> </tr>
   -->
        <tr> <td align=center>
     <a href="http://forums.punbb.org/" target="_top">PunBB</a> </td>
     <td> &nbsp; </td> <td align=center>
     <a href="http://www.math-linux.com/spip.php?article44"
     target="_top">mimeTeX&nbsp;plugin</a> </td> </tr>
        <tr> <td align=center>
     <!-- a href="http://www.sixapart.com/movabletype/" -->
     <a href="http://www.movabletype.com/"
     target="_top">Movable&nbsp;Type</a> </td> <td> &nbsp; </td>
     <td align=center> <a href=
     "http://www.unitorganizer.com/myblog/2006/08/creating_equations_in_movable.html"
             target="_top">mimeTeX&nbsp;plugin</a> </td> </tr>
        <tr> <td align=center>
     <a href="http://wordpress.org/" target="_top">WordPress</a> </td>
     <td> &nbsp; </td> <td align=center> <a href=
     "http://www.anlak.com/?page_id=66" target="_top">
        <!-- "http://sixthform.info/steve/wordpress/index.php?p=13&page=2" -->
     mimeTeX&nbsp;plugin</a> <!-- &nbsp; (see item 9) --> </td> </tr>
        <tr> <td align=center>
     <a href="http://www.joomla.org/"
     target="_top">Joomla</a> </td> <td> &nbsp; </td>
     <td align=center> <a href=
     "http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,5932/Itemid,35/"
             target="_top">mimeTeX&nbsp;plugin</a> </td> </tr>
        <tr> <td align=center>
     <a href="http://mambo-foundation.org/"
     target="_top">Mambo</a> </td> <td> &nbsp; </td>
     <td align=center> <a href=
     "http://webscripts.softpedia.com/script/Modules/Joomla-Mambo-Modules/MimeTeX-Bot-9250.html"
             target="_top">&quot;mimeTeX&nbsp;bot&quot;</a> </td> </tr>
        <!--- dead links --->
        <!-- tr> <td align=center>
     <a href="http://www.phpbb.com" target="_top">phpBB</a> </td>
     <td> &nbsp; </td> <td align=center>
     <a href=
     "http://www.themathforum.com/math/showthread.php?p=621#post621"
     target="_top">mimeTeX&nbsp;plugin</a> </td> </tr -->
        <!-- tr> <td align=center>
     <a href="http://www.mamboserver.com/" target="_top">Mambo</a> </td>
     <td> &nbsp; </td> <td align=center>
     <a href="http://mamboxchange.com/projects/mimetexbot/"
     target="_top">&quot;mimeTeX&nbsp;bot&quot;</a> </td> </tr -->
       </table></center>
   
   <p> <b>Please note:</b> If you're writing your own plugin for mimeTeX,
       please don't write php code using <b>system(&nbsp;)</b>, or any other
       shell escape mechanism, just to cache images.  Use mimeTeX's
       &nbsp; <b>-DCACHEPATH=\&quot;<i>path/</i>\&quot;</b> &nbsp;
       <a href="#options">compile&nbsp;option</a> instead.
       <b>system(&nbsp;)</b> raises security
       issues, either real ones if used carelessly, or just in the minds of
       system administrators.  Either way, I've received many emails from
       people unable to use mimeTeX because of unnecessary <b>system(&nbsp;)</b>
       calls prohibited by security-conscious sysadmins.  MimeTeX itself poses
       minimal risk when used as illustrated above, but you're responsible
       for any plugin/wrapper script you write around it. </p>
   
   <h3> <a name="valignment">
   Vertical alignment<font size=5>...</font></a> </h3>
   <p> An image like
       <a href="#preview"><img id="imageAV1" onclick="eqntext('imageAV1')"
       src="../cgi-bin/mimetex.cgi?
       \normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
       alt="" border=0 align=middle></a>
       doesn't look as good as the same image
       <a href="#preview"><img id="imageAV2" onclick="eqntext('imageAV2')"
       src="../cgi-bin/mimetex.cgi?
       \normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
       alt="" border=0 style="Vertical-Align:-26px"></a>
       that's vertically aligned with your surrounding text.
       Along with several standard 
       <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">
       HTTP&nbsp;header&nbsp;fields</a>, mimeTeX also emits a special
       &nbsp; <b>Vertical-Align:&nbsp;&#150;<i>nn</i></b> &nbsp;
       header, where <b>&#150;<i>nn</i></b> is the number of pixels
       (usually negative as illustrated) needed for a
       &nbsp; <b>style="Vertical-Align:&nbsp;&#150;<i>nn</i>&nbsp;px"</b>
       &nbsp; attribute in the <b>&lt;img&gt;</b>&nbsp;tag used to
       render your expression. This Vertical-Align:&nbsp;header
       is obtained by placing the directive &nbsp;<b>\depth</b>&nbsp;
       anywhere in your expression. </p>
   
   <p> But mimeTeX's special Vertical-Align: header
       is unrecognized and ignored by your browser.  You have to get the
       header, interpret it, and write the corresponding &lt;img&gt; tag.
       The only feasible way to do all this is using a scripting language,
       as illustrated by the following, rather naive, php code </p>
       <pre class="medium" style="margin-top:.5em;margin-bottom:.5em"
   >   &lt;?php
      $mimetexurl = "http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?";
      function verticalalign( $expression ) {
         global $mimetexurl;
         // note: curl_init() stops at the first whitespace char in $url argument
         $expression = ereg_replace(" ","~",$expression); // so remove whitespace
         $url     = $mimetexurl . "\depth~" . $expression;
         $valign  = "0";
         $ch      = curl_init( $url );
         curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
         curl_setopt( $ch, CURLOPT_HEADER, true );
         $gif     = curl_exec( $ch );
         $errno   = curl_errno( $ch );
         curl_close( $ch );
         if ( $errno == 0 ) {
           $fields = explode("Vertical-Align:",$gif);
           $vfield = trim($fields[1]);
           $fldlen = strspn($vfield,"+-0123456789");
           $valign = substr($vfield,0,$fldlen); }
         return $valign;
         }
      function mimetextag( $expression ) {
         global $mimetexurl;
         $valign = verticalalign($expression);
         $url    = $mimetexurl . "\depth~" . $expression;
         echo ' &lt;img src="',$url,'" ';
         echo ' style="Vertical-Align:',$valign,'px" ';
         echo ' alt="" border=0&gt;', "\n";
         }
      ?&gt;</pre>
   
   <p> Now you can write &nbsp;
       &lt;?php&nbsp;mimetextag('\frac12\left(a^2+b^2\right)');&nbsp;?&gt;
       wherever you want to see
       <a href="#preview"><img id="imageAV5" onclick="eqntext('imageAV5')"
       src="../cgi-bin/mimetex.cgi?
       \normalsize\frac12\left(a^2+b^2\right)"
       alt="" border=0 style="Vertical-Align:-7px"></a>
       correctly aligned. Note that the php code automatically
       prepends &nbsp;<b>\depth</b>&nbsp; to your expression for you.
       <!-- Besides making you escape backslashes
       (each&nbsp;&#092;&nbsp;must be written&nbsp;&#092;&#092;), -->
       (Also note that this code calls mimeTeX twice to render each
       expression, once to get the Vertical-Align: header and build
       an &lt;img&gt; tag, and then again to render that tag.
       If you're a good php programmer and write better code,
       please email me a copy.) </p>
   
   <p> If you're using mimeTeX's
       &nbsp; <b>-DCACHEPATH=\&quot;<i>path</i>/\&quot;</b> &nbsp;
       <a href="#options">compile&nbsp;option</a>, you can request
       that all images be cached with Vertical-Align:&nbsp;headers,
       whether or not they contain the \depth directive. Prefix your
       <b><i>path</i>/</b> with a leading&nbsp;<b>&#037;</b> and write &nbsp;
       <b>-DCACHEPATH=\&quot;&#037;<i>path</i>/\&quot;</b> &nbsp; instead.
       That leading&nbsp;<b>&#037;</b> won't become part of your cache
       directory's <b><i>path</i>/</b>, but it will signal mimeTeX
       to cache headers along with each image. (In this case,
       the directive &nbsp;<b>\nodepth</b>&nbsp; suppresses
       mimeTeX's header caching for that image.)
       <!-- Otherwise, the Vertical-Align: information is lost,
       and attempts to align cached images will fail. --> </p>
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 GPL  GPL
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 <h2> <a name="gpl"> (Ic) GPL License &nbsp; </a> </h2>  <h2> <a name="gpl"> (Id) GPL License &nbsp; </a> </h2>
   
 <font color="black">  <font color="black">
 <b>&quot</b><i>My grandfather once told me there are two kinds of people:<br>  <b>&quot</b><i>My grandfather once told me there are two kinds of people:<br>
Line 865  Indira Gandhi, the late Prime Minister o Line 1532  Indira Gandhi, the late Prime Minister o
      evolve to make this kind of obnoxious banter unnecessary.       evolve to make this kind of obnoxious banter unnecessary.
      In the meantime, please forgive me my paranoia. </p>       In the meantime, please forgive me my paranoia. </p>
   
  <p> To protect your own intellectual property, I recommend   <p> To protect your own intellectual property, I recommend (both are pdf)
      <a href="http://lcweb.loc.gov/copyright/circs/circ1.html"       <a href="http://www.copyright.gov/circs/circ01.pdf"
      target="_top">Copyright Basics</a> from The Library of Congress, and       target="_top">Copyright&nbsp;Basics</a> from The Library of Congress,
      similarly, <a href="http://www.abanet.org/intelprop/comm106/106copy.html"       in particular <a href="http://www.copyright.gov/circs/circ61.pdf"
      target="_top">Copyright Basics</a> from The American Bar Association.       target="_top">Circular&nbsp;61</a>, Copyright Registration for
        Computer Programs.
        <!-- and similarly,
        <a href="http://www.abanet.org/intelprop/comm106/106copy.html"
        target="_top">Copyright Basics</a> from The American Bar Association. -->
      Very briefly, download       Very briefly, download
      <a href="http://www.copyright.gov/forms/formtxi.pdf">Form&nbsp;TX</a>       <a href="http://www.copyright.gov/forms/formtxi.pdf">Form&nbsp;TX</a>
      and follow the included instructions.       and follow the included instructions.
      In principle, you automatically own the copyright       In principle, you automatically own the copyright
      to anything you write the moment it's on paper.  In practice,       to anything you write the moment it's on paper.  In practice,
      if the matter comes under dispute, the courts look _very_ favorably       if the matter comes under dispute, the courts look _very_ favorably
      on you for demonstrating your intent by registering the copyright. </p>       on you for demonstrating your intent by registering the copyright.
        <!-- For example, courts will stop unauthorized use of unregistered
        material, but monetary damages are awarded _only_ if you
        register the copyright before infringement occurs. --> </p>
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 888  SECTION II.  BUILDING MIMETEX Line 1561  SECTION II.  BUILDING MIMETEX
 <!-- <center> -->  <!-- <center> -->
     <table border="0" cellpadding="0" cellspacing="0">      <table border="0" cellpadding="0" cellspacing="0">
       <tr><td><center><hr size="2">Very quickly &nbsp; --- &nbsp; download        <tr><td><center><hr size="2">Very quickly &nbsp; --- &nbsp; download
         <!-- jfa <a href="http://www.forkosh.com/mimetex.zip"> -->          <a href="http://www.forkosh.com/mimetex.zip">
         <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip">          <!-- jfa <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip"></a> -->
         mimetex.zip</a> and then type          mimetex.zip</a> and then type
           <table border="0" cellpadding="0" cellspacing="0">            <table border="0" cellpadding="0" cellspacing="0">
            <tr align="left">             <tr align="left">
Line 906  SECTION II.  BUILDING MIMETEX Line 1579  SECTION II.  BUILDING MIMETEX
 <!-- </center> -->  <!-- </center> -->
   
 <p> I've built and run mimeTeX under Linux and NetBSD using gcc. The source  <p> I've built and run mimeTeX under Linux and NetBSD using gcc. The source
     code is ansi-standard C, and should compile and execute under all      code is ansi-standard C, and should compile and run under all
     environments without any change whatsoever. Build instructions below      environments without change.  Instructions below
     are for Unix.  Modify them as necessary for your particular situation      are for Unix.  Modify them as necessary for your particular situation
     (note the -DWINDOWS switch if applicable). </p>      (note the -DWINDOWS switch if applicable). </p>
   
 <p> A summary of the steps needed to build mimeTeX is </p>  <h2> <a name="compile"> (IIa) Download and Compile &nbsp; </a> </h2>
   
    <p> The steps needed to download and compile mimeTeX are </p>
   <ul>    <ul>
    <li> Download and unzip      <li> Download and unzip 
         <!-- jfa <a href="http://www.forkosh.com/mimetex.zip"> -->          <a href="http://www.forkosh.com/mimetex.zip">
         <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip">          <!-- jfa <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip"></a> -->
         mimetex.zip</a> in any convenient working directory. </li>          mimetex.zip</a> in any convenient working directory.
           Your working directory should now contain <center>
           <table cellpadding=0 cellspacing=0>
            <tr><td width=100>README</td> <td>mimeTeX release notes</td></tr>
            <tr><td>COPYING</td>    <td>GPL license, under which you may use
                                        mimeTeX</td></tr>
            <tr><td>mimetex.c</td>  <td>mimeTeX source program and all required
                                        functions</td></tr>
            <tr><td>mimetex.h</td>  <td>header file for mimetex.c (and for
                                        gfuntype.c)</td></tr>
            <tr><td>gfuntype.c</td> <td>parses output from <b>gftype -i</b>
                                        and writes bitmap data</td></tr>
            <tr><td>texfonts.h</td> <td>output from several <b>gfuntype</b> runs,
                                        needed by mimetex.c</td></tr>
            <tr><td>gifsave.c</td>  <td>gif library by Sverre H. Huseby
                                        <a href="http://shh.thathost.com"
                                        target="_top">http://shh.thathost.com</a>
                                        </td></tr>
            <tr><td>mimetex.html</td> <td>this file, the mimeTeX
                                        user's manual</td></tr>
           </table></center>
           &nbsp; &nbsp; &nbsp; &nbsp;
             Note: all files use Unix line termination, i.e., linefeeds
           (without carriage returns) signal line endings. Conversion for
           Windows PC's, Macs, VMS, etc, can usually be accomplished by
           unzip's&nbsp;-a option, i.e.,  unzip&nbsp;-a&nbsp;mimetex.zip
           <br> <br> </li>
    <li> To compile an executable that emits anti-aliased gif images     <li> To compile an executable that emits anti-aliased gif images
         (which is how the page you're viewing is displayed)<br>          (which is recommended for most uses), just type the following
         &nbsp; <b>cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi</b> </li>          command from the Unix shell <br>
    <li> or, to emit gif images without anti-aliasing<br>          &nbsp; &nbsp; &nbsp; &nbsp;
         &nbsp; <b>cc -DGIF mimetex.c gifsave.c -lm -o mimetex.cgi</b> </li>            <b>cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi</b> </li>
      <li> Or, to compile an executable that emit gif images
           without anti-aliasing <br>
           &nbsp; &nbsp; &nbsp; &nbsp;
             <b>cc -DGIF mimetex.c gifsave.c -lm -o mimetex.cgi</b> </li>
    <li> Alternatively, to compile an executable that emits mime xbitmaps<br>     <li> Alternatively, to compile an executable that emits mime xbitmaps<br>
         &nbsp; <b>cc -DXBITMAP mimetex.c -lm -o mimetex.cgi</b> </li>          &nbsp; &nbsp; &nbsp; &nbsp;
             <b>cc -DXBITMAP mimetex.c -lm -o mimetex.cgi</b> </li>
    <li> Compile Notes: <ul>     <li> Compile Notes: <ul>
         <li> If (and only if) you're compiling a Windows executable with          <li> If (and only if) you're compiling a Windows executable with
         the <b>-DAA</b> or <b>-DGIF</b> option (but not -DXBITMAP), then          the <b>-DAA</b> or <b>-DGIF</b> option (but not -DXBITMAP), then
         add <b>-DWINDOWS</b>&nbsp;.  For example, <br>          add <b>-DWINDOWS</b>&nbsp;.  For example, <br>
              &nbsp; &nbsp; &nbsp; &nbsp; <b>cc -DAA -DWINDOWS               <nobr> &nbsp; &nbsp; &nbsp; &nbsp; <b>gcc -DAA -DWINDOWS
              mimetex.c gifsave.c -lm -o mimetex.cgi</b> <br>               mimetex.c gifsave.c -lm -o mimetex.exe</b> </nobr> <br>
         The above Unix-like syntax works with          The above Unix-like syntax works with
         <a href="http://www.mingw.org" target="_top">MinGW</a> and          <a href="http://www.mingw.org" target="_top">MinGW</a> and
         <a href="http://www.delorie.com/djgpp/" target="_top">djgpp</a>          <a href="http://www.delorie.com/djgpp/" target="_top">djgpp</a>
         Windows compilers, but probably not with most others,          Windows compilers, but probably not with most others,
         where it's only intended as a "template". </li>          where it's only intended as a "template". <br>
           &nbsp; &nbsp; &nbsp; &nbsp;
             Explanation: mimeTeX writes gif bytes directly to stdout, as usual
           for cgi's.  But Windows treats stdout as a character stream,
           interpreting any hex 0A byte as an &lt;lf&gt;, and automatically
           preceding it with a spurious hex 0D &nbsp; &lt;cr&gt;  byte.  The
           -DWINDOWS switch compiles in a non-portable, Windows-specific
           _setmode() call that sets stdout to binary mode. </li>
           <li> If you're compiling for Windows and would prefer
           to install mimeTeX as a Win32 DLL, see the
           <a href="http://www.codeproject.com/dotnet/Eq2Img.asp">
           Code&nbsp;Project</a> developed by
           <a href="http://www.shitalshah.com">Shital&nbsp;Shah</a>, and
           download <a href="http://www.shitalshah.com/dev/eq2img_all.zip">
           eq2img_all.zip</a> containing Shital's latest code. </li>
           <li> If you install mimeTeX on one server and try to use it
           from another, you may instead see messages like <br>
           <img src="../cgi-bin/mimetex.cgi?\message{3}"
           alt="" align="middle" border=0> <br>
           In this case, compile mimetex.cgi with the -DNOREFCHECK switch,
           <i>e.g.</i>,<br>
                <nobr> &nbsp; &nbsp; &nbsp; &nbsp; <b>cc -DAA -DNOREFCHECK
                mimetex.c gifsave.c -lm -o mimetex.cgi</b> </nobr> <br>
           and read the -DREFLEVELS=<i>n</i> discussion under
           <a href="#options">compile&nbsp;options</a> below. </li>
         <!-- <li> If you're compiling on Sun or VMS, and see about a zillion          <!-- <li> If you're compiling on Sun or VMS, and see about a zillion
         irritating warnings, try adding <b>-DSIGNEDCHAR</b>          irritating warnings, try adding <b>-DSIGNEDCHAR</b>
         (for VMS, that's cc/define=(AA,SIGNEDCHAR)&nbsp;mimetex.c) </li> -->          (for VMS, that's cc/define=(AA,SIGNEDCHAR)&nbsp;mimetex.c) </li> -->
         </ul> </li>          </ul> <br> </li>
   </ul>     <li> The gfuntype program is only needed if you plan to change the
 <p> And a summary of the steps needed to install mimeTeX is </p>          font information in texfonts.h, as explained in
   <ul>          <a href="#fonts">Appendix IVa</a> below.
    <li> Just &nbsp; mv mimetex.cgi &nbsp; to your server's <b>cgi-bin/</b>          In that case, compile gfuntype with the command <br>
         directory, set permissions as necessary, and you're all done. </li>          &nbsp; &nbsp; &nbsp; &nbsp;
    <li> Now, to quickly test your mimetex.cgi, try typing a url into            <b>cc gfuntype.c mimetex.c -lm -o gfuntype</b> </li>
         your browser's locator window something like &nbsp;  
         <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?x^2+y^2</b>  
         &nbsp; which should display &nbsp;  
         <img src="../cgi-bin/mimetex.cgi?x^2+y^2" alt="" border=0  
         align=middle> &nbsp; in the upper-left corner of your window. </li>  
    <li> After the preceding test succeeds, you can optionally  
         &quot;regression&nbsp;test&quot; all mimeTeX features as follows:<ul>  
         <li> mv mimetex.html (this file) to your server's <b>htdocs/</b>  
         directory </li>  
         <li> If the relative path from htdocs to cgi-bin isn't  
         <b>../cgi-bin</b> then edit mimetex.html and change the  
         few dozen occurrences as necessary (globally changing  
         <b>../cgi-bin/mimetex.cgi</b> should work). </li>  
         <li> Now visit your page &nbsp;  
         <b>http://www.<i>yourdomain</i>.com/mimetex.html</b> </li>  
         <li> Once mimetex.html displays properly, you can assume  
         everything is working, and can begin authoring html documents  
         using mimetex.cgi to render your own math. </li> </ul>  
   </ul>    </ul>
   <p> Any problems with the above?   <p> That's all there is to compiling mimeTeX.
   Read the more detailed instructions below. </p>       Several other optional compile-line <a href="#options">options</a>
   
   
 <h2> <a name="download"> (IIa) Download &nbsp; </a> </h2>  
   
  <p> Download  
      <!-- jfa <a href="http://www.forkosh.com/mimetex.zip"> -->  
      <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip">  
      mimetex.zip</a> and unzip it in any convenient working directory.  
      Your working directory should now contain </p> <center>  
        <table cellpadding=0 cellspacing=0>  
          <tr><td width=100>README</td> <td>mimeTeX release notes</td></tr>  
          <tr><td>LICENSE</td>    <td>GPL license, under which you may use  
                                      mimeTeX</td></tr>  
          <tr><td>mimetex.c</td>  <td>mimeTeX source program and all required  
                                      functions</td></tr>  
          <tr><td>mimetex.h</td>  <td>header file for mimetex.c (and for  
                                      gfuntype.c)</td></tr>  
          <tr><td>gfuntype.c</td> <td>parses output from <b>gftype -i</b>  
                                      and writes bitmap data</td></tr>  
          <tr><td>texfonts.h</td> <td>output from several <b>gfuntype</b> runs,  
                                      needed by mimetex.c</td></tr>  
          <tr><td>gifsave.c</td>  <td>gif library by Sverre H. Huseby  
                                      <a href="http://shh.thathost.com">  
                                      http://shh.thathost.com</a></td></tr>  
          <tr><td>mimetex.html</td> <td>this file, mimeTeX tutorial and  
                                      user's manual</td></tr>  
        </table></center>  
  <p> Note: all files use Unix line termination, i.e., linefeeds  
      (without carriage returns) signal line endings. Conversion for  
      Windows PC's, Macs, VMS, etc, can usually be accomplished by  
      unzip's&nbsp;-a option, i.e.,  unzip&nbsp;-a&nbsp;mimetex.zip </p>  
   
   
 <h2> <a name="compile"> (IIb) Compile &nbsp; </a> </h2>  
   
  <p> To compile a mimeTeX executable that emits anti-aliased gif images  
      (which is recommended for most uses) issue the command </p>  
      <center><b>cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi</b>  
      </center>  
   
  <p> Or, for an executable that emits gif images without anti-aliasing,  
      issue the command </p>  
      <center><b>cc -DGIF mimetex.c gifsave.c -lm -o mimetex.cgi</b>  
      </center>  
   
  <p> Alternatively, to compile a mimeTeX executable that emits  
      mime xbitmaps, just issue the command </p>  
      <center><b>cc -DXBITMAP mimetex.c -lm -o mimetex.cgi</b>  
      </center>  
   
  <p> Compile Notes: </p> <ul>  
      <li> If (and only if) you're compiling a Windows executable with  
           the <b>-DAA</b> or <b>-DGIF</b> option (but not -DXBITMAP), then  
           add <b>-DWINDOWS</b>&nbsp;.  For example, <br>  
              &nbsp; &nbsp; &nbsp; &nbsp; <b>cc -DAA -DWINDOWS  
              mimetex.c gifsave.c -lm -o mimetex.cgi</b> <br>  
           The above Unix-like syntax works with  
           <a href="http://www.mingw.org" target="_top">MinGW</a> and  
           <a href="http://www.delorie.com/djgpp/" target="_top">djgpp</a>  
           Windows compilers, but probably not with most others,  
           where it's only intended as a "template". <br>  
           &nbsp; &nbsp; Explanation: mimeTeX writes gif bytes directly to  
           stdout, as usual for cgi's.  But Windows treats  
           stdout as a character stream, interpreting any hex 0A byte  
           as an &lt;lf&gt;, and automatically preceding it with  
           a spurious hex 0D &nbsp; &lt;cr&gt; byte.  The -DWINDOWS switch  
           compiles in a non-portable, Windows-specific _setmode()  
           call that sets stdout to binary mode. </li>  
      </ul>  
   
  <p> Several other optional compile-line <a href="#options">options</a>  
      available for mimetex.c are discussed below. </p>       available for mimetex.c are discussed below. </p>
   
  <p> The gfuntype program is only needed if you plan to change the   <p> Immediately after compiling mimeTeX, test your new executable
      font information in texfonts.h, as explained in       by typing &nbsp; <b>./mimetex.cgi&nbsp;"x^2+y^2"</b> &nbsp;
      <a href="#fonts">Appendix IVa</a> below.       from the Unix shell (or &nbsp; <b>mimetex&nbsp;"x^2+y^2"</b>
      In that case, compile gfuntype with the command </p>       &nbsp; from the Windows Command Prompt), which should emit
      <center><b>cc gfuntype.c mimetex.c -lm -o gfuntype</b></center>       two "ascii&nbsp;rasters" something like the following </p> <pre>
   
  <p> That's all there is to building mimeTeX.  You can now test your  
      mimetex.cgi executable from the Unix command line by typing, e.g.,  
      <b>./mimetex.cgi&nbsp;"x^2+y^2"</b> which should emit two ascii  
      rasters something like the following </p> <pre>  
 Ascii dump of bitmap image...           Hex dump of colormap indexes...  Ascii dump of bitmap image...           Hex dump of colormap indexes...
 ...........**....................**...  ..........1**1...................1**1..  ...........**....................**...  ..........1**1...................1**1..
 ..........*..*......*...........*..*..  ..........*23*......*............*23*..  ..........*..*......*...........*..*..  ..........*23*......*............*23*..
Line 1069  Ascii dump of bitmap image... Line 1705  Ascii dump of bitmap image...
     grayscale colormap indexes assigned to neighboring pixels, and with      grayscale colormap indexes assigned to neighboring pixels, and with
     the rgb value for each index.<b>)</b>  Just typing <b>./mimetex.cgi</b>      the rgb value for each index.<b>)</b>  Just typing <b>./mimetex.cgi</b>
     without an argument should produce ascii rasters for the default      without an argument should produce ascii rasters for the default
     expression <b>f(x)=x^2</b>.  If you see the two ascii rasters then your      expression <b>f(x)=x^2</b>.  If you see these two ascii rasters then
     binary's good, so mv it to your server's <b>cgi-bin/</b> directory and      your binary's good.  Otherwise, you must find and fix the problem
     set permissions as necessary. </p>      before proceeding. </p>
   
 <h2> <a name="install"> (IIc) Install &nbsp; </a> </h2>  
   
  <p> Once mimetex.cgi is working, mv it to your server's <b>cgi-bin/</b>  
      directory (wherever cgi programs are expected), and chmod/chown it  
      if necessary.  Then mv mimetex.html to your server's <b>htdocs/</b>  
      directory.  Now point your browser to www.yourdomain.com/mimetex.html ,  
      and you should see a page identical to this one. </p>  
   
  <p> Note: the two directories are typically of the form  
      somewhere/www/cgi-bin/ and somewhere/www/htdocs/ ,  so I set up  
      mimtex.html to get mimetex.cgi from the relative path <b>../cgi-bin/</b>.  
      If your directories are non-conforming, you may have to edit the  
      few dozen occurrences of <b>../cgi-bin/mimetex.cgi</b> in mimetex.html .  
      Sometimes a suitable symlink works; if not, you'll have to edit.  
      Globally changing <b>../cgi-bin/mimetex.cgi</b> often works. </p>  
   
  <p> Either way, once mimetex.html displays properly, you can assume  
      everything is working, and can begin authoring html documents using  
      mimetex.cgi to render your own math. </p>  
   
   
 <h2> <a name="options"> (IId) Additional Compile-Line Options &nbsp; </a></h2>  <h2> <a name="install"> (IIb) Install &nbsp; </a> </h2>
   
    <p> Once you've successfully tested mimetex.cgi from the Unix shell
        (or mimetex.exe from the Windows Command Prompt),
        the steps needed to install mimeTeX are </p>
     <ul>
      <li> <b>mv</b> mimetex.cgi &nbsp; (or <b>move</b> mimetex.exe) &nbsp;
           to your server's <b>cgi-bin/</b> directory, wherever cgi
           programs are expected. </li>
      <li> Now you may need to <b>chmod&nbsp;755&nbsp;mimetex.cgi</b> &nbsp;
           and/or <b>chown</b> it, too, depending on your server's
           requirements.  Contact your system administrator or ISP
           if you're not already familiar with this information. </li>
      <li> Once mimetex.cgi is moved to your server's <b>cgi-bin/</b>
           directory, with permissions and owner set as necessary,
           you're all done. </li>
     </ul>
   
    <p> Immediately after installing mimeTeX, test your new mimetex.cgi
        by typing a url into your browser's locator window something like <br>
        &nbsp; &nbsp; &nbsp; &nbsp;
         <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?x^2+y^2</b> <br>
        which should display &nbsp;
        <img src="../cgi-bin/mimetex.cgi?\normalsize x^2+y^2" alt="" border=0
        style="Vertical-Align:-3px"> &nbsp;
        in the upper-left corner of your window,
        just like clicking this link does, which tests my mimetex.cgi, <br>
        &nbsp; &nbsp; &nbsp; &nbsp;
         <a href="http://www.forkosh.com/cgi-bin/mimetex.cgi?x^2+y^2"
         target="_top">http://www.forkosh.com/cgi-bin/mimetex.cgi?x^2+y^2</a><br>
        If you see the same &nbsp; <img src="../cgi-bin/mimetex.cgi?
        \normalsize x^2+y^2" alt="" border=0 style="Vertical-Align:-3px"> &nbsp;
        image from the <b><i>yourdomain</i></b> link, then you've completed
        a successful mimeTeX installation. </p>
   
    <p> If you don't see the image, then your installation failed.
        If your earlier post-compilation "ascii&nbsp;raster" test
        succeeeded, then the problem is probably some server-specific
        installation requirement.  First make sure you installed mimetex.cgi
        in the correct <b>cgi-bin/</b> directory, set the correct <b>chmod</b>
        permissions, and typed the correct url into your browser's locator
        window.  Then contact your system administrator or ISP,
        and ask how to install cgi programs on your server. </p>
   
    <p> After you've successfully installed mimeTeX, and both preceeding tests
        have succeeded, you can optionally &quot;regression&nbsp;test&quot;
        all mimeTeX features as follows: </p>
         <ul>
           <li> <b>mv</b> mimetex.html (this file) to your server's
                <b>htdocs/</b> directory </li>
           <li> Paths to <b>cgi-bin/</b> and <b>htdocs/</b> directories
                are typically <b><i>path</i>/www/cgi-bin/</b> and
                <b><i>path</i>/www/htdocs/</b>,  so I set up mimtex.html
                to access mimetex.cgi from the relative path <b>../cgi-bin/</b>.
                If your directories are non-conforming, you may have to edit
                the few dozen occurrences of <b>../cgi-bin/mimetex.cgi</b>
                in your mimetex.html page.  Sometimes a suitable symlink works;
                if not, you'll have to edit.  Globally changing
                <b>../cgi-bin/mimetex.cgi</b> usually works. </li>
           <li> Now visit your page &nbsp;
                <b>http://www.<i>yourdomain</i>.com/mimetex.html</b> </li>
           <li> Once your mimetex.html displays properly, you can assume
                everything is working, and can begin authoring html documents
                using mimetex.cgi to render your own math. </li>
        </ul>
   
     <p> That's all there is to installing mimeTeX. </p>.
   
   
   <h2> <a name="options"> (IIc) Additional Compile-Line Options &nbsp; </a></h2>
   
  <p> In addition to -DAA or -DGIF or -DXBITMAP (along with -DWINDOWS   <p> In addition to -DAA or -DGIF or -DXBITMAP (along with -DWINDOWS
      when necessary) on the mimetex.c compile line, as discussed above,       when necessary) on the mimetex.c compile line, as discussed above,
Line 1125  Ascii dump of bitmap image... Line 1810  Ascii dump of bitmap image...
            algorithm for anti-aliasing, which is applied to the             algorithm for anti-aliasing, which is applied to the
            existing set of bitmap fonts.  This lowpass filter applies             existing set of bitmap fonts.  This lowpass filter applies
            weights <img src="../cgi-bin/mimetex.cgi?             weights <img src="../cgi-bin/mimetex.cgi?
            \tiny\begin{pmatrix}1&3&1\\3&\,32\,&3\\1&3&1\end{pmatrix}"             \tiny\begin{pmatrix}1&2&1\\2&\,8\,&2\\1&2&1\end{pmatrix}"
            alt="" border=0 align=middle> to neighboring pixels. The defaults             alt="" border=0 align=middle> to neighboring pixels. The defaults
            weights are CENTERWT=32, ADJACENTWT=3 and CORNERWT=1,             weights are CENTERWT=8, ADJACENTWT=2 and CORNERWT=1,
            which you can adjust to control anti-aliasing. </dd>             which you can adjust to control anti-aliasing. </dd>
       <dt> <b>-DCACHEPATH=\"<i>path/</i>\"</b> </dt>        <dt> <b>-DCACHEPATH=\"<i>path/</i>\"</b> </dt>
        <dd> This option saves each rendered image to a file in directory         <dd> This option saves each rendered image to a file in directory
Line 1143  Ascii dump of bitmap image... Line 1828  Ascii dump of bitmap image...
            is relative to mimetex.cgi, and must be writable by it.             is relative to mimetex.cgi, and must be writable by it.
            Files created under <b><i>path/</i></b> are named             Files created under <b><i>path/</i></b> are named
            <b><i>filename</i>.gif</b>, where <b><i>filename</i></b>             <b><i>filename</i>.gif</b>, where <b><i>filename</i></b>
            is the 32-character MD5 hash of the LaTeX expression. <br>             is the 32-character MD5 hash of your LaTeX expression. <br>
            &nbsp; &nbsp; &nbsp; When caching a new image, mimeTeX also                &nbsp; &nbsp; &nbsp; If you're also using mimeTeX's
              <a href="#valignment">Vertical-Align:</a> feature, prefix your
              <b><i>path</i>/</b> with a leading&nbsp;<b>&#037;</b> and write
              &nbsp; <b>-DCACHEPATH=\&quot;&#037;<i>path</i>/\&quot;</b> &nbsp;
              instead.  That leading&nbsp;<b>&#037;</b> won't become part of
              your cache directory's <b><i>path</i>/</b>, but it will signal
              mimeTeX to cache headers along with each image.
              Otherwise, the Vertical-Align: information is lost,
              and attempts to align cached images will fail. <br>
                 &nbsp; &nbsp; &nbsp; When caching a new image, mimeTeX also
            updates the file <b><i>path/</i>mimetex.log</b> containing             updates the file <b><i>path/</i>mimetex.log</b> containing
            a timestamp, filename and LaTeX expression for each new file             a timestamp, filename and LaTeX expression for each new file
            created.  A sample entry looks like             created.  A sample entry looks like
 <pre>---------------------------------------------------------------------  <pre>---------------------------------------------------------------------
 2004-08-07:09:00:53am            f8ccc8dd93c8eeb1d9c40b353ef781e0.gif  2008-09-07:11:29:53am            f8ccc8dd93c8eeb1d9c40b353ef781e0.gif
 \LARGE x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}  \LARGE x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
 ---------------------------------------------------------------------</pre></dd>  ---------------------------------------------------------------------</pre></dd>
         <dt><b>-DDEFAULTSIZE=<i>n</i></b> </dt>
          <dd> MimeTeX currently has eight font sizes numbered 0-7,
              and always starts out in DEFAULTSIZE, whose default value is 3.
              Specify -DDEFAULTSIZE=2 on the compile line if you prefer
              mimeTeX to start in default size 2, etc. </dd>
       <dt><b>-DDISPLAYSIZE=<i>n</i></b> </dt>        <dt><b>-DDISPLAYSIZE=<i>n</i></b> </dt>
        <dd> By default, operator limits like <b>\int_a^b</b> are rendered         <dd> By default, operator limits like <b>\int_a^b</b> are rendered
            <b>\textstyle</b> <a href="#preview">             <b>\textstyle</b> <a href="#preview">
            <img id="displaysize1" onclick="eqntext('displaysize1')"             <img id="displaysize1" onclick="eqntext('displaysize1')"
            src="../cgi-bin/mimetex.cgi?\normalsize\int_a^b"             src="../cgi-bin/mimetex.cgi?
              \normalsize\displaystyle\smashmargin{2}{\int\nolimits_a}^b"
            alt="" border=0 align=middle></a> at font sizes <b>\normalsize</b>             alt="" border=0 align=middle></a> at font sizes <b>\normalsize</b>
            and smaller, and rendered <b>\displaystyle</b> <a href="#preview">             and smaller, and rendered <b>\displaystyle</b> <a href="#preview">
            <img id="displaysize2" onclick="eqntext('displaysize2')"             <img id="displaysize2" onclick="eqntext('displaysize2')"
Line 1169  Ascii dump of bitmap image... Line 1869  Ascii dump of bitmap image...
            <b>\textstyle</b>, <b>\displaystyle</b>, <b>\limits</b> or             <b>\textstyle</b>, <b>\displaystyle</b>, <b>\limits</b> or
            <b>\nolimits</b> directives in an expression always override             <b>\nolimits</b> directives in an expression always override
            the <b>DISPLAYSIZE</b> default. </dd>             the <b>DISPLAYSIZE</b> default. </dd>
       <dt><b>-DNEWCOMMANDS=<i>newcommands.h</i></b> </dt>        <dt><b>-DGAMMA=<i>gammacorrection</i></b> </dt>
          <dd> Applies <b><i>gammacorrection</i></b> to antialiased
              gif images.  Default is 1.25 (rather than the standard 2.2).
              Specify 0.0 to turn off gamma correction (1.0 makes no
              gamma correction but doesn't actually turn it off). </dd>
         <dt><b>-DINPUTOK</b> </dt>
          <dd> To enhance mimeTeX's security, the
              <a href="#input">\input{&nbsp;}</a> command is disabled
              by default when you compile mimeTeX.  Note that the
              <a href="#counter">\counter</a> and
              <a href="#environment">\environment</a> commands are
              also disabled by default, and <b>-DINPUTOK</b> enables
              all three commands simultaneously.  (Compile mimeTeX with
              <b>-DCOUNTEROK</b> to enable only \counter, or with
              <b>-DENVIRONOK</b> to enable only \environment.) <br>
              &nbsp; &nbsp; &nbsp; Compiling mimeTeX with the
              <b>-DINPUTOK</b> switch enables \input{&nbsp;} for all users,
              subject only to your <b>-DPATHPREFIX</b> restrictions,
              discussed below.  And the following two switches give you
              additional control over \input{&nbsp;}'s usage... </dd>
         <dt> <b>-DINPUTPATH=\"<i>path</i>\" &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
              -DINPUTPATH=\"<i>path1,path2,etc</i>\"</b> </dt>
          <dd> Permits <b>\input{<i>filename</i>}</b> for specific
              <i>filename</i>'s, even when the \input{&nbsp;} command
              is otherwise disabled (for security). <br>
              &nbsp; &nbsp; &nbsp; If INPUTPATH is defined, mimeTeX
              performs a case-insensitive test of \input{&nbsp;}'s
              <i>filename</i> argument, to verify that it contains
              the authorized 'path' as a substring. <br>
              &nbsp; &nbsp; &nbsp; If given several 'path's (second form)
              then <i>filename</i> must contain either 'path1' or
              'path2', or etc, as a (case-insensitive) substring. <br>
              &nbsp; &nbsp; &nbsp; If <i>filename</i> doesn't contain
              a substring matching any of these path(s), then mimeTeX emits
              an error message image instead of reading <i>filename</i>. </dd>
         <dt> <b>-DINPUTREFERER=\"<i>domain</i>\" &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
              -DINPUTREFERER=\"<i>domain1,domain2,etc</i>\"</b> </dt>
          <dd> Permits <b>\input{&nbsp;}</b> for users from specific
              <i>domain</i>'s, even when the \input{&nbsp;} command
              is otherwise disabled (for security). <br>
              &nbsp; &nbsp; &nbsp; If INPUTREFERER is defined
              but INPUTOK is not defined, then mimeTeX
              performs a case-insensitive test of the user's
              HTTP_REFERER environment variable, to verify that it contains
              the authorized 'domain' as a substring. <br>
              &nbsp; &nbsp; &nbsp; If given several 'domain's (second form)
              then HTTP_REFERER must contain either 'domain1' or
              'domain2', or etc, as a (case-insensitive) substring. <br>
              &nbsp; &nbsp; &nbsp; If HTTP_REFERER doesn't contain
              a substring matching any of these domain(s), then mimeTeX renders
              an error message image instead of reading <i>filename</i>.  <br>
              &nbsp; &nbsp; &nbsp; Finally, if HTTP_REFERER is not found as
              an environment variable, then mimeTeX renders the
              same error message image. </dd>
         <dt><b><a id="newcommands">-DNEWCOMMANDS=\"<i>newcommands.h</i>\"</a>
         </b> </dt>
        <dd> LaTeX-like <b>\newcommand</b>'s are available in mimeTeX,         <dd> LaTeX-like <b>\newcommand</b>'s are available in mimeTeX,
            via the following facility to help you define your             via the following facility to help you define your
            own "new&nbsp;commands" during compilation.  Edit a file named             own "new&nbsp;commands" during compilation.  Edit a file named
            newcommands.h (or any filename you specify with the             newcommands.h (or any filename you specify between 
            <b>-DNEWCOMMANDS</b> switch).  For newcommands _without_             <b>\"...\"</b>'s with the <b>-DNEWCOMMANDS=\"<i>filename</i>\"</b>
              switch).  For newcommands _without_
            arguments, your file should contain one or more lines             arguments, your file should contain one or more lines
            like the following examples:             like the following examples:
 <pre>{ "\\iint",  NULL, "{\\int\\int}" },  <pre>{ "\\iint",  NULL, "{\\int\\int}" },
Line 1219  Ascii dump of bitmap image... Line 1975  Ascii dump of bitmap image...
            <br> &nbsp; &nbsp; To see many additional examples, search for the             <br> &nbsp; &nbsp; To see many additional examples, search for the
            uppercase string NEWCOMMANDS in mimetex.c, and look below that.             uppercase string NEWCOMMANDS in mimetex.c, and look below that.
            All the above examples are already there. </dd>             All the above examples are already there. </dd>
       <dt><b>-DNORMALSIZE=<i>n</i></b> </dt>        <dt> <b>-DNOREFMAXLEN=<i>n</i></b> </dt>
        <dd> MimeTeX currently has six font sizes numbered 0-5,         <dd> The environment variable HTTP_REFERER identifies the
            and always starts out in NORMALSIZE, whose default value is 2.             domain a request originates from.  If HTTP_REFERER is not
            Specify -DNORMALSIZE=3 on the compile line if you prefer             defined, then NOREFMAXLEN is the maximum length query&nbsp;string
            mimeTeX to start in default size 3, etc. </dd>             permitted from unidentified domains.  It defaults to&nbsp;9999,
              i.e., any query&nbsp;string is permitted, since
              mail and various other legitimate programs often don't
              supply an HTTP_REFERER.  See -DREFERER and -DREFLEVELS
              below for further discussion, and also see -DNOREFSAFELEN
              immediately below. </dd>
         <dt> <b>-DNOREFSAFELEN=<i>n</i></b> </dt>
          <dd> If you compile mimeTeX with either the -DREFERER or
              -DREFLEVELS switch (discussed below), then the default
              NOREFMAXLEN value&nbsp;9999 is replaced by the (usually much
              shorter) NOREFSAFELEN value whose default is&nbsp;24. </dd>
         <dt> <b>-DOPAQUE</b> </dt>
          <dd> By default, mimeTeX renders gif images with black symbols
              on a transparent white background.  Defining OPAQUE renders
              images on an opaque background instead. </dd>
       <dt> <b>-DPATHPREFIX=\"<i>path/</i>\"</b> </dt>        <dt> <b>-DPATHPREFIX=\"<i>path/</i>\"</b> </dt>
        <dd> The <a href="#input">\input{&nbsp;}</a> and         <dd> The <a href="#input">\input{&nbsp;}</a> and
            <a href="#counter">\counter{&nbsp;}</a> commands discussed below             <a href="#counter">\counter{&nbsp;}</a> commands discussed below
Line 1235  Ascii dump of bitmap image... Line 2005  Ascii dump of bitmap image...
            defined as <i>path</i><b>/</b> if you want input files in some             defined as <i>path</i><b>/</b> if you want input files in some
            other directory.  And make sure your <i>path</i><b>/</b> ends             other directory.  And make sure your <i>path</i><b>/</b> ends
            with <b>/</b> (or with <b>\</b> for Windows). </dd>             with <b>/</b> (or with <b>\</b> for Windows). </dd>
       <dt> <b>-DREFERER=\"<i>domain</i>\"  or <br>        <dt> <b>-DPLUSBLANK &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
              -DPLUSNOTBLANK</b> </dt>
          <dd> mimeTeX receives your LaTeX math expression as a url
              query&nbsp;string, in which blank spaces are often encoded
              as&nbsp;<b>%20</b> or as plus signs&nbsp;<b>+</b>, and
              where actual plus signs are often encoded as&nbsp;<b>%2B</b>.
              But these conventions aren't always respected,
              and even when they are blank spaces may be either
              <b>%20</b>&nbsp;or&nbsp;<b>+</b>.  The only ambiguity for
              mimeTeX is whether or not to translate plus signs&nbsp;<b>+</b>
              back to blank spaces. <br>
              &nbsp; &nbsp; &nbsp; If you know how your applications behave,
              then define PLUSBLANK to always translate plus signs&nbsp;<b>+</b>
              to blank spaces, or define PLUSNOTBLANK to never translate. <br>
              &nbsp; &nbsp; &nbsp; Otherwise, if you define neither,
              mimeTeX applies some common-sense rules to decide whether or
              not to translate.  These usually work, but can't be guaranteed.
              If your query&nbsp;string contains actual blank spaces or
              blanks encoded as <b>%20</b>, then plus signs&nbsp;<b>+</b>
              aren't translated.  Otherwise, if your query&nbsp;string
              contains <b>%2B</b>, then plus signs&nbsp;<b>+</b> are
              translated.  If neither <b>%20</b> nor <b>%2B</b>, or both
              <b>%20</b> and <b>%2B</b>, occur in your query&nbsp;string,
              then the situation is ambiguous.  In this case, if mimeTeX
              finds two or more plus signs&nbsp;<b>++</b> with no intervening
              space, then they're translated; otherwise they're not. </dd>
         <dt> <b>-DREFERER=\"<i>domain</i>\" &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
            -DREFERER=\"<i>domain1,domain2,etc</i>\"</b> </dt>             -DREFERER=\"<i>domain1,domain2,etc</i>\"</b> </dt>
        <dd> Blocks mimeTeX requests from unauthorized domains that         <dd> Blocks mimeTeX requests from unauthorized domains that
            are using your mimetex.cgi (hence your server's resources)             are using your mimetex.cgi (hence your server's resources)
            without permission. <br>             without permission. <br>
            &nbsp; &nbsp; &nbsp; If REFERER is defined, mimeTeX             &nbsp; &nbsp; &nbsp; If compiled with -DREFERER, then mimeTeX
            performs a case-insensitive test of the environment variable             performs a case-insensitive test of the environment variable
            HTTP_REFERER to verify that it contains the authorized 'domain'             HTTP_REFERER to verify that it contains the authorized 'domain'
            as a substring. <br>             as a substring.  For example, if -DREFERER=\"\",<br>
            &nbsp; &nbsp; &nbsp; If given several 'domain's (second form)             &nbsp; &nbsp; &nbsp; If given several 'domain's (second form)
            then HTTP_REFERER must contain either 'domain1' or             then HTTP_REFERER must contain either 'domain1' or
            'domain2', or etc, as a (case-insensitive) substring. <br>             'domain2', or etc, as a (case-insensitive) substring. <br>
            &nbsp; &nbsp; &nbsp; If HTTP_REFERER doesn't contain a substring             &nbsp; &nbsp; &nbsp; If HTTP_REFERER doesn't contain a substring
            matching any of these domain(s), then mimeTeX emits an error             matching any of these domain(s), then mimeTeX emits the error
            message image instead of the requested image.  You can manually             message image<br>
            modify invalid_referer_msg, defined in function main(),             <img src="../cgi-bin/mimetex.cgi?\message{0}"
            to personalize the error message for your own site. <br>             alt="" align="middle" border=0> <br>
            &nbsp; &nbsp; &nbsp; Finally, if HTTP_REFERER is not found as             instead of the requested image.  You can manually
            an environment variable, then mimeTeX correctly generates the             modify this invalid_referer_msg, which is msgtable[0]
            requested image instead of generating an error. </dd>             defined immediately above function main(),
              to personalize the error message displayed for your own site. <br>
              &nbsp; &nbsp; &nbsp; Finally, if you specify <b>-DREFERER</b>
              (or -DREFLEVELS discussed immediately below) but HTTP_REFERER
              is not found as an environment variable, then
              mimeTeX correctly generates images whose QUERY_STRING's
              contain&nbsp;24 or fewer characters.  For&nbsp;25 or more
              characters, mimeTeX generates an error.
              See -DNOREFMAXLEN and -DNOREFSAFELEN above to change
              the&nbsp;24 limit. </dd>
         <dt><b>-DREFLEVELS=<i>n</i></b>  &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
             <b>-DNOREFCHECK</b> </dt>
          <dd> Besides <b>-DREFERER</b> discussed immediately above,
              mimeTeX can block requests from HTTP_REFERER's that
              don't match your HTTP_HOST, <i>i.e.</i>, from pages on
              different servers than your mimetex.cgi image. <br>
              &nbsp; &nbsp; &nbsp; The default value of REFLEVELS is&nbsp;3,
              meaning the topmost three levels of HTTP_REFERER and
              HTTP_HOST must match.  For example, phy.cam.ac.uk matches
              math.cam.ac.uk because they share the same topmost three
              levels cam.ac.uk.  So a page installed at the physics
              department can use a mimetex.cgi installed at the math
              department.  If you always want a complete match, compile
              mimeTeX with <b>-DREFLEVELS=99</b> or any large number.
              If HTTP_REFERER is not found, then the same&nbsp;24
              character limit discussed immediately above remains in effect. <br>
              &nbsp; &nbsp; &nbsp; To completely disable the REFLEVELS check,
              compile mimeTeX with <b>-DNOREFCHECK</b> (or with
              <b>-DREFLEVELS=0</b>).  Or, if you supply a specific
              <b>-DREFERER</b> list of authorized domains, as discussed
              immediately above, then the REFLEVELS check is automatically
              disabled. </dd>
       <dt><b>-DSECURITY=<i>n</i></b> </dt>        <dt><b>-DSECURITY=<i>n</i></b> </dt>
        <dd> This is essentially a "paranoid" setting that defaults         <dd> This is essentially a "paranoid" setting that defaults
            to a high value 999, which inhibits some optional logging             to a high value 999, which inhibits some optional logging
Line 1266  Ascii dump of bitmap image... Line 2093  Ascii dump of bitmap image...
            could conceivably flood your file system by submitting             could conceivably flood your file system by submitting
            zillions of <b>\counter{<i>filename</i>}</b> commands             zillions of <b>\counter{<i>filename</i>}</b> commands
            to mimeTeX, each with a different <b><i>filename</i></b>. </dd>             to mimeTeX, each with a different <b><i>filename</i></b>. </dd>
       <dt><b>-DSQUASHMARGIN=<i>n</i> or <br>        <dt><b>-DSMASHMARGIN=<i>n</i> &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
           -DNOSQUASH</b> </dt>            -DNOSMASH</b> </dt>
        <dd> TeX typically renders an expression like         <dd> TeX typically renders an expression like
            <b>\frac12\int_{a+b+c}^{d+e+f}g(x)dx</b> as <a href="#preview">             <b>\frac12\int_{a+b+c}^{d+e+f}g(x)dx</b> as <a href="#preview">
            <img id="nosquash1" onclick="eqntext('nosquash1')"             <img id="nosmash1" onclick="eqntext('nosmash1')"
            src="../cgi-bin/mimetex.cgi?\displaystyle             src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
            \nosquash\frac12\int_{a+b+c}^{d+e+f}g(x)dx"             \nosmash\frac12\int_{a+b+c}^{d+e+f}g(x)dx"
            alt="" border=0 align=middle></a>.  MimeTeX tries to remove extra             alt="" border=0 align=middle></a>.  MimeTeX tries to remove extra
            whitespace, rendering the same expression as <a href="#preview">             whitespace, rendering the same expression as <a href="#preview">
            <img id="nosquash2" onclick="eqntext('nosquash2')"             <img id="nosmash2" onclick="eqntext('nosmash2')"
            src="../cgi-bin/mimetex.cgi?\displaystyle             src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
            \squash\frac12\int_{a+b+c}^{d+e+f}{g(x)}dx"             \smash\frac12\int_{a+b+c}^{d+e+f}{g(x)}dx"
            alt="" border=0 align=middle></a> instead.             alt="" border=0 align=middle></a> instead.
            Compile with <b>-DNOSQUASH</b> if you prefer the typical TeX             Compile with <b>-DNOSMASH</b> if you prefer the typical TeX
            behavior as mimeTeX's default.  Or, to adjust the minimum             behavior as mimeTeX's default.  Or, to adjust the minimum
            number of pixels between squashed symbols (default is 3),             number of pixels between smashed symbols (default is 3),
            compile with <b>-DSQUASHMARGIN=<i>n</i></b>.             compile with <b>-DSMASHMARGIN=<i>n</i></b>.
            See <a href="#squash">Squash</a> for further discussion. </dd>             See <a href="#smash">Smash</a> for further discussion. </dd>
       <dt> <b>-DWARNINGS=<i>n</i>  or <br>        <dt> <b>-DWARNINGS=<i>n</i> &nbsp; &nbsp; &nbsp; <i>-or-</i> <br>
            -DNOWARNINGS</b> </dt>             -DNOWARNINGS</b> </dt>
        <dd> If an expression submitted to mimeTeX contains an         <dd> If an expression submitted to mimeTeX contains an
            unrecognzied escape sequence, e.g., "y=x+\abc+1", then             unrecognzied escape sequence, e.g., "y=x+\abc+1", then
Line 1298  Ascii dump of bitmap image... Line 2125  Ascii dump of bitmap image...
       <dt> <b>-DWHITE</b> </dt>        <dt> <b>-DWHITE</b> </dt>
        <dd>  MimeTeX usually renders black symbols on a white         <dd>  MimeTeX usually renders black symbols on a white
            background.  This option renders white symbols on             background.  This option renders white symbols on
            a black background instead. </dd>             a transparent black background instead (or on an opaque
              black background when combined with <b>-DOPAQUE</b>&nbsp;). </dd>
   
         <dt> <a name="adswitches"> </a> <font color="black" size="5">
         <br> <b>Advertising switches</b><font size=5>...</font></font>
         <br> </dt>
          <dd style="margin-left:0em;"> The next three switches
          set up a mimeTeX web service that embeds advertising messages
          along with rendered images.
          <!-- See <a href="#webservice">mimeTeX&nbsp;web&nbsp;service</a>
          above for further discussion. --> <br> <br> </dd>
   
         <dt> <a name="adfrequencyswitch"> </a>
         <b>&#150;DADFREQUENCY=0</b> </dt>
          <dd> If ADFREQUENCY is defined as a positive number <b><i>n</i></b>,
          then one request out of every <b><i>n</i></b> submitted to mimeTeX
          is randomly selected to be displayed along with a pre-defined
          "advertisement".  For example, if your expression is
          &nbsp; <b>\large\int_0^xe^{-x^2}dx</b>, &nbsp; then the default
          advertisement displays <br>
          &nbsp; &nbsp; &nbsp;
          <a href="#preview"><img id="adswitch1" onclick="eqntext('adswitch1')"
           src="../cgi-bin/mimetex.cgi?\large\advertisement
           \int_0^xe^{-x^2}dx" alt="" align="middle" border=0></a>
          &nbsp; &nbsp; instead of just &nbsp; &nbsp;
          <a href="#preview"><img id="adswitch2" onclick="eqntext('adswitch2')"
           src="../cgi-bin/mimetex.cgi?\large
           \int_0^xe^{-x^2}dx" alt="" align="middle" border=0></a> <br>
          See the <b>&#150;DADVERTISEMENT</b> switch <!-- immediately -->
          below for instructions to define your own advertisement replacing
          my default. </dd>
   
         <dt> <a name="adhostswitch"> </a>
         <b>&#150;DHOST_SHOWAD=\"\\000\"</b> </dt>
          <dd> Advertisement messages are usually displayed randomly,
          in one request to mimeTeX out of every <b><i>n</i></b>,
          as defined by the <b>&#150;DADFREQUENCY</b> switch above.
          But if a HOST_SHOWAD string is also defined,
          then advertisements are only displayed when mimeTeX is running
          on a host whose HTTP_HOST (or SERVER_NAME) environment variable
          contains that string. For example,
          <b>&#150;DHOST_SHOWAD=\"mathsite\"</b> displays advertisements
          on www.mathsite.com but never on www.mathhouse.com&nbsp;.
          The default HOST_SHOWAD value is an empty string,
          which displays advertisements on any host. </dd>
   
         <dt> <a name="advertisementswitch"> </a>
         <b>&#150;DADVERTISEMENT=\"</b><i>filename</i><b>\"</b> </dt>
          <dd> To define your own advertisement, replacing my default
          illustrated immediately above, edit a file containing lines
          of the form <br>
    <nobr>&nbsp; &nbsp; &nbsp; <b>"\\</b>begin{gather}{\\small\\text<b>"</b></nobr><br>
           <nobr>&nbsp; &nbsp; &nbsp; &nbsp; <b>"</b>{\\fbox{\\begin{gather}<b>"</b></nobr><br>
    <nobr>&nbsp; &nbsp; &nbsp; &nbsp; <b>"</b>mime\\TeX rendering courtesy of\\\\<b>"</b></nobr><br>
    <nobr>&nbsp; &nbsp; &nbsp; &nbsp; <b>"</b>http://www.forkosh.com/mimetex.html \\end{gather}}}\\\\<b>"</b></nobr><br>
    <nobr>&nbsp; &nbsp; &nbsp; &nbsp; <b>"</b> %%expression%%<b>"</b></nobr><br>
           <nobr>&nbsp; &nbsp; &nbsp; <b>"\\</b>end{gather}<b>"</b></nobr><br>
          Every line in your file must be enclosed in <b>"</b>quotes<b>"</b>,
          and all backslashes written as double-backslashes <b>\\</b>.
          Note <b>\\\\</b> at the end of the third and fourth lines,
          which LaTeX sees as <b>\\</b>.  The entire example shows how my
          default advertisement is defined. <br>
          &nbsp; &nbsp; &nbsp; Your advertisement may consist of any valid
          mimeTeX commands you like. But it must somewhere contain the line <br>
    <nobr>&nbsp; &nbsp; &nbsp; <b>"</b> %%expression%% <b>"</b></nobr><br>
          which is replaced by the user's expression. <br>
          &nbsp; &nbsp; &nbsp; Once mimeTeX is compiled with your advertisement,
          test it by submitting an expression like &nbsp;
          <b>\advertisement&nbsp;x^2+y^2</b> &nbsp; containing the special
          mimeTeX &nbsp; \advertisement&nbsp;directive, &nbsp; which forces that
          expression to be rendered with your advertisement.  In this case
          (and with my default advertisement message) we see <br>
          &nbsp; &nbsp; &nbsp;
          <a href="#preview"><img id="adswitch3" onclick="eqntext('adswitch3')"
          src="../cgi-bin/mimetex.cgi?\advertisement x^2+y^2"
          alt="" align="middle" border=0></a> &nbsp; &nbsp; instead of
          just &nbsp; &nbsp;
          <a href="#preview"><img id="adswitch4" onclick="eqntext('adswitch4')"
          src="../cgi-bin/mimetex.cgi?x^2+y^2" alt="" border=0></a> <br>
          regardless of your ADFREQUENCY value. </dd>
      </dl>       </dl>
   
   
 <h2> <a name="cmdline"> (IIe) Command Line Features &nbsp; </a> </h2>  <h2> <a name="cmdline"> (IId) Command Line Features &nbsp; </a> </h2>
   
  <p> MimeTeX usually runs from a browser, obtaining its input expression   <p> MimeTeX usually runs from a browser, obtaining its input expression
      from a query_string.  But you can also run mimeTeX from your Unix       from a query_string.  But you can also run mimeTeX from your Unix
Line 1314  Ascii dump of bitmap image... Line 2220  Ascii dump of bitmap image...
      possibly useful functionality from the command line.  In particular,       possibly useful functionality from the command line.  In particular,
      you can store a gif (or xbitmap) image of any expression to a file.       you can store a gif (or xbitmap) image of any expression to a file.
      No syntax checking is applied to command-line arguments, so enter       No syntax checking is applied to command-line arguments, so enter
      them carefully. </p>       them carefully.  (Likewise, plus signs&nbsp;<b>+</b> are never
        translated to blank spaces, nor is any other <b>%xx</b> url decoding
        performed on command-line arguments.) </p>
             
  <p> The complete command-line syntax for mimeTeX is </p>   <p> The complete command-line syntax for mimeTeX is </p>
      <pre>       <pre>
Line 1322  Ascii dump of bitmap image... Line 2230  Ascii dump of bitmap image...
                [ -e export_file ]  or write gif image to export_file                 [ -e export_file ]  or write gif image to export_file
                [ expression      expression, e.g., "x^2+y^2",                 [ expression      expression, e.g., "x^2+y^2",
                | -f input_file ]   or read expression from input_file                 | -f input_file ]   or read expression from input_file
                  [ -g1 -d ]        dump .pbm-formatted image on stdout
                  [ -g1 -e export_file ]  or write .pbm image to export_file
                  [ -g2 -d ]        dump anti-aliased .pgm image on stdout
                  [ -g2 -e export_file ]  or write .pgm image to export_file
                [ -m msglevel ]   verbosity of debugging output                 [ -m msglevel ]   verbosity of debugging output
                [ -o ]            render image with opaque background                 [ -o ]            render image with opaque background
                [ -s fontsize ]   default fontsize, 0-5                 [ -s fontsize ]   default fontsize, 0-5
Line 1331  Ascii dump of bitmap image... Line 2243  Ascii dump of bitmap image...
                ./mimetex  -d  "x^2+y^2"  >  expression.gif                 ./mimetex  -d  "x^2+y^2"  >  expression.gif
           creates expression.gif containing an image of x^2+y^2            creates expression.gif containing an image of x^2+y^2
   
      -e   Like -d but writes the actual gif (or xbitmap) directly       -e export_file   Like -d but writes the actual gif
           to export_file, e.g.,            (or xbitmap) directly to export_file, e.g.,
                ./mimetex  -e expression.gif  "x^2+y^2"                 ./mimetex  -e expression.gif  "x^2+y^2"
           also creates expression.gif containing an image of x^2+y^2            creates file expression.gif containing an image of x^2+y^2
   
      expression   Place LaTeX expression directly on command       expression   Place LaTeX expression directly on command
           line, with no -switch preceding it, as in the example            line, with no -switch preceding it, as in the example
           immediately above, or...            immediately above, or.....
   
      -f   Read expression from input_file (and automatically       -f input_file   .....read expression from input_file
           assume -d switch).  The input_file may contain the            (and automatically assume -d switch).  The input_file
           expression on one line or spread out over many lines.            may contain the expression on one line or spread out
           MimeTeX will concatanate all lines from input_file            over many lines.  MimeTeX will concatanate all lines
           to construct one long expression.  Blanks, tabs, and            from input_file to construct one long expression.
           newlines are just ignored.            Blanks, tabs, and newlines are just ignored.
   
        -g1 -d   dumps a .pbm-formatted portable bitmap image to stdout.
             Note that this is the bitmap image _before_ anti-aliasing.
   
        -g1 -e export_file   Like -g1 -d but writes the .pbm-formatted
             portable bitmap directly to export_file, e.g.,
                  ./mimetex  -g1 -e expression.pbm  "x^2+y^2"
             creates file expression.pbm containing a bitmap image
             of x^2+y^2 before anti-aliasing.
   
        -g2 -d   dumps a .pgm-formatted portable graphic image to stdout.
             Note that this is the bytemap image _after_ anti-aliasing.
   
        -g2 -e export_file   Like -g2 -d but writes the .pgm-formatted
             portable graphic image directly to export_file, e.g.,
                  ./mimetex  -g3 -e expression.pgm  "x^2+y^2"
             creates file expression.pgm containing a bytemap image
             of x^2+y^2 after anti-aliasing.
   
      -m   0-99, controls verbosity level for debugging output       -m msglevel   0-99, controls verbosity/message level for
           (usually used only while testing code).            debugging output (usually used only while testing code).
   
      -o   Rather than the default transparent gif background,       -o   Rather than the default transparent gif background,
           the rendered image will contain black symbols on an            the rendered image will contain black symbols on an
Line 1357  Ascii dump of bitmap image... Line 2287  Ascii dump of bitmap image...
           display utility,            display utility,
                ./mimetex  -o -d  "x^2+y^2" | display &                 ./mimetex  -o -d  "x^2+y^2" | display &
           opens a small window containing the rendered expression.            opens a small window containing the rendered expression.
             (Note: if you already compiled mimeTeX with -DOPAQUE
             then  -o  renders images on a transparent background.)
   
      -s   0-5, font size.  As usual, the font size can also       -s fontsize   0-7, font size.  Font size can also be specified
           be specified within the expression by a directive,            within the expression by a directive, e.g., \Large f(x)=x^2
           e.g., \large f(x)=x^2 displays f(x)=x^2 at font size 3,            displays f(x)=x^2 at font size 4, overriding -s.
           overriding -s.  Default font size is 2.            Default font size is 3.
      </pre>       </pre>
   
   
Line 1372  SECTION III.  SYNTAX REFERENCE Line 2304  SECTION III.  SYNTAX REFERENCE
 <h1> <a name="reference"> (III) Syntax Reference &nbsp; </a> </h1>  <h1> <a name="reference"> (III) Syntax Reference &nbsp; </a> </h1>
   
 <p> Since mimeTeX's syntax is as TeX-like as possible, we'll mostly discuss  <p> Since mimeTeX's syntax is as TeX-like as possible, we'll mostly discuss
     the occasional exceptions (which exist only to simplify my programming      the occasional differences.
     task, not to impose any syntactic aesthetics of mine on you).  This      <!-- (which exist only to simplify my programming
     section contains short paragraphs that each discuss some aspect of      task, not to impose any syntactic aesthetics of mine on you). -->
     mimeTeX where your LaTeX experience might not be precisely relevant. </p>      This section contains short paragraphs that each discuss some aspect
       of mimeTeX where your LaTeX experience might not be precisely
       duplicated. </p>
   
 <p> Anything not discussed here that still doesn't behave like you expect  <p> Anything not discussed here that still doesn't behave like you expect
     is probably just not implemented.  That includes (La)TeX packages      is probably just not implemented.  That includes (La)TeX packages
Line 1442  SECTION III.  SYNTAX REFERENCE Line 2376  SECTION III.  SYNTAX REFERENCE
      As usual, you must explicitly write one of the recognized math       As usual, you must explicitly write one of the recognized math
      spaces to put extra visible space in your rendered expressions. </p>       spaces to put extra visible space in your rendered expressions. </p>
   
  <p> MimeTeX recognizes math spaces <b>\,&nbsp;\:&nbsp;\;</b> as well as   <p> MimeTeX recognizes math spaces <b>\/&nbsp;\,&nbsp;\:&nbsp;\;</b>
      <b>\/</b> and <b>\quad</b> and <b>\qquad</b>&nbsp;.  You may also       as well as <b>\quad</b> and <b>\qquad</b>&nbsp;,
      write <b>\hspace{10}</b> to insert a 10-pixel (or any other number)       and also a backslashed blank &nbsp;
      space, scaled by any preceding <a href="#unitlength">\unitlength</a>,       <img src="../cgi-bin/mimetex.cgi?1$\backsl\raise{-5}{\rotate{-90}]}"
      as illustrated just above.  There are no negative spaces. </p>       alt="" border=0 align=middle> &nbsp;
        (i.e.,&nbsp;a&nbsp;<b>\</b>&nbsp;followed by a blank).
        For example, &nbsp;
        <b>(a\/b\,c\:d\;e\&nbsp;&nbsp;f\quad&nbsp;&nbsp;g\qquad&nbsp;&nbsp;h)</b>
        &nbsp renders &nbsp;
           <a href="#preview"><img id="spacing2" onclick="eqntext('spacing2')"
           src="../cgi-bin/mimetex.cgi?(a\/b\,c\:d\;e\ f\quad g\qquad h)"
           alt="" border=0 align="middle"></a>.
        In mimeTeX, you may also write &nbsp; <b>\hspace{10}</b> &nbsp;
        to insert a 10-pixel (or any other number) space, scaled by any
        preceding <a href="#unitlength">\unitlength</a>, as illustrated
        just above. </p>
   
    <p> For negative spaces, &nbsp; <b>\!</b> &nbsp; produces a small (two
        pixel) negative space, e.g., &nbsp; <b>a=b</b> &nbsp; renders &nbsp;
        <img src="../cgi-bin/mimetex.cgi?a=b"alt="" border=0 align="bottom">
        &nbsp; whereas &nbsp; <b>a\!=b</b> &nbsp; renders &nbsp;
        <img src="../cgi-bin/mimetex.cgi?a\!=b"alt="" border=0 align="bottom">
        &nbsp; and &nbsp; <b>a\!\!=b</b> &nbsp; renders &nbsp;
        <img src="../cgi-bin/mimetex.cgi?a\!\!=b"alt="" border=0 align="bottom">.
        For large negative space, &nbsp; <b>\hspace{-10}</b> &nbsp; permits
        a negative argument.  But it stops at the first pixel to its left
        rather than "erasing" pixels.  If you don't want to stop, use
        &nbsp; <b>\hspace*{-10}</b> &nbsp; instead. For example,
        &nbsp; <b>ABC\hspace*{-20}-DEF</b> &nbsp; renders &nbsp;
        <img src="../cgi-bin/mimetex.cgi?ABC\hspace*{-20}-DEF"
        alt="" border=0 align="bottom">, &nbsp; erasing all of the <b>C</b>
        and the right half of the <b>B</b>. </p>
   
   <!--
  <p> Although some browsers occasionally misinterpret typed blank spaces   <p> Although some browsers occasionally misinterpret typed blank spaces
      inside html query_string's, mimeTeX also recognizes escaped blanks       inside html query_string's, mimeTeX also recognizes escaped blanks
      <img src="../cgi-bin/mimetex.cgi?1$\backsl\raise{-5}{\rotate{-90}]}"       <img src="../cgi-bin/mimetex.cgi?\small\backsl\raise{-5}{\rotate{-90}]}"
      alt="" border=0 align=middle> (a <b>\</b> followed by a blank) as math       alt="" border=0 align=middle> (a <b>\</b> followed by a blank) as math
      spaces, just in case you can safely use them. </p>       spaces, just in case you can safely use them. </p>
   -->
   
  <p> MimeTeX also supports <b>\hfill{<i>textwidth</i>}</b>, where   <p> MimeTeX also supports <b>\hfill{<i>textwidth</i>}</b>, where
      <b><i>textwidth</i></b> is roughly equivalent to LaTeX's       <b><i>textwidth</i></b> is roughly equivalent to LaTeX's
Line 1461  SECTION III.  SYNTAX REFERENCE Line 2424  SECTION III.  SYNTAX REFERENCE
      expression will span.  However, if <b>\hfill{&nbsp;}</b> appears       expression will span.  However, if <b>\hfill{&nbsp;}</b> appears
      within a <b>{&nbsp;}</b>-enclosed subexpression, then it applies       within a <b>{&nbsp;}</b>-enclosed subexpression, then it applies
      only to that subexpression.  For example, </p> <center>       only to that subexpression.  For example, </p> <center>
         <b>{abc \hfill{50} def} \hfill{100} ghi</b>          <b>{abc \hfill{75} def} \hfill{150} ghi</b>
         &nbsp; &nbsp; produces &nbsp; &nbsp;          &nbsp; &nbsp; produces &nbsp; &nbsp;
         <a href="#preview"><img id="mathspace1" onclick="eqntext('mathspace1')"          <a href="#preview"><img id="mathspace1" onclick="eqntext('mathspace1')"
         src="../cgi-bin/mimetex.cgi?3${abc\hfill{50}def}\hfill{100}ghi"          src="../cgi-bin/mimetex.cgi?\large{abc\hfill{75}def}\hfill{150}ghi"
         alt="" border=0 align=middle></a> </center> <p class="continue">          alt="" border=0 align=middle></a> </center> <p class="continue">
      The first/inner <b>\hfill{50}</b> inserts exactly enough whitespace so       The first/inner <b>\hfill{75}</b> inserts exactly enough whitespace so
      that subexpression "<b><i>abc&nbsp;&nbsp;def</i></b>" spans 50 pixels.       that subexpression "<b><i>abc&nbsp;&nbsp;def</i></b>" spans 75 pixels.
      Then the second/outer <b>\hfill{100}</b> inserts exactly  enough       Then the second/outer <b>\hfill{150}</b> inserts exactly  enough
      whitespace so that the entire expression spans 100 pixels.       whitespace so that the entire expression spans 150 pixels.
      Without explicit <b>{&nbsp;}</b>-nesting, mimeTeX evaluates expressions       Without explicit <b>{&nbsp;}</b>-nesting, mimeTeX evaluates expressions
      left-to-right (sinistrally), e.g., <b>...\hfill{100}...\hfill{50}...</b>       left-to-right (sinistrally), e.g., <b>...\hfill{150}...\hfill{75}...</b>
      is exactly equivalent to <b>...\hfill{100}{...\hfill{50}...}</b>.       is exactly equivalent to <b>...\hfill{150}{...\hfill{75}...}</b>.
      Notice that, this time, the second/right <b><i>textwidth</i></b>       Notice that, this time, the second/right <b><i>textwidth</i></b>
      argument is necessarily smaller than the first/left. </p>       argument is necessarily smaller than the first/left. </p>
   
Line 1488  SECTION III.  SYNTAX REFERENCE Line 2451  SECTION III.  SYNTAX REFERENCE
         <b>y=a+b+c+d\\\hspace{50}+e+f+g+h</b>          <b>y=a+b+c+d\\\hspace{50}+e+f+g+h</b>
         &nbsp; &nbsp; to produce &nbsp; &nbsp;          &nbsp; &nbsp; to produce &nbsp; &nbsp;
         <a href="#preview"><img id="mathspace2" onclick="eqntext('mathspace2')"          <a href="#preview"><img id="mathspace2" onclick="eqntext('mathspace2')"
         src="../cgi-bin/mimetex.cgi?3$y=a+b+c+d\\\hspace{50}+e+f+g+h"          src="../cgi-bin/mimetex.cgi?\large y=a+b+c+d\\\hspace{50}+e+f+g+h"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align=middle></a> </center>
   
  <p> However, mimeTeX can't correctly handle automatically-sized delimiters   <p> However, mimeTeX can't correctly handle automatically-sized delimiters
Line 1496  SECTION III.  SYNTAX REFERENCE Line 2459  SECTION III.  SYNTAX REFERENCE
         <b>y=\left\{a+b+c+d\\\hspace{50}+e+f+g+h\right\}</b>          <b>y=\left\{a+b+c+d\\\hspace{50}+e+f+g+h\right\}</b>
         &nbsp; &nbsp; produces &nbsp; &nbsp;          &nbsp; &nbsp; produces &nbsp; &nbsp;
         <a href="#preview"><img id="mathspace3" onclick="eqntext('mathspace3')"          <a href="#preview"><img id="mathspace3" onclick="eqntext('mathspace3')"
         src="../cgi-bin/mimetex.cgi?3$y=\{a+b+c+d\\\hspace{50}+e+f+g+h\}"          src="../cgi-bin/mimetex.cgi?\large y=\{a+b+c+d\\
         alt="" border=0 align=middle></a> <br>          \hspace{50}+e+f+g+h\}" alt="" border=0 align=middle></a> <br>
  whereas you probably wanted &nbsp; &nbsp; &nbsp; &nbsp;   whereas you probably wanted &nbsp; &nbsp; &nbsp; &nbsp;
         <a href="#preview"><img id="mathspace4" onclick="eqntext('mathspace4')"          <a href="#preview"><img id="mathspace4" onclick="eqntext('mathspace4')"
         src="../cgi-bin/mimetex.cgi?3$y=\big{a+b+c+d\\\hspace{50}+e+f+g+h\big}"          src="../cgi-bin/mimetex.cgi?\large y=\big{a+b+c+d\\
         alt="" border=0 align=middle></a> </center> <p class="continue">          \hspace{50}+e+f+g+h\big}" alt="" border=0 align=middle></a>
           </center> <p class="continue">
      which I produced using <b>\big{...\\...\big}</b> instead       which I produced using <b>\big{...\\...\big}</b> instead
      of <b>\left\{...\\...\right\}</b>.  Expressions of the       of <b>\left\{...\\...\right\}</b>.  Expressions of the
      form <b>\left...\right&nbsp;\\&nbsp;\left...\right</b> should all be       form <b>\left...\right&nbsp;\\&nbsp;\left...\right</b> should all be
Line 1554  and some other characters<font size=5>.. Line 2518  and some other characters<font size=5>..
   
 <h3> <a name="characters">Character Sets<font size=5>...</font></a> </h3>  <h3> <a name="characters">Character Sets<font size=5>...</font></a> </h3>
   
  <p> For complete information about the characters and math symbols   <p> The <a href="http://www.ctan.org/tex-archive/info/symbols/comprehensive/"
        target="_top"> Comprehensive&nbsp;LaTeX&nbsp;Symbol&nbsp;List </a>
        illustrates some 6,000 symbols supported by LaTeX. For complete
        information about the subset of these characters and math symbols
      available in mimeTeX, you'll need to browse through the bottom       available in mimeTeX, you'll need to browse through the bottom
      500-or-so lines of <b>mimetex.h</b>.  And several additional       1500-or-so lines of <b>mimetex.h</b>.  And several additional
      symbols like <b>\ldots</b> and <b>\AA</b> and <b>\hbar</b> are       symbols like <b>\ldots</b> and <b>\AA</b> and <b>\hbar</b> are
      defined by the mimeTeX preprocessor, function <b>mimeprep(&nbsp;)</b>       defined by the mimeTeX preprocessor, function <b>mimeprep(&nbsp;)</b>
      in <b>mimetex.c</b> &nbsp; &nbsp; Generally speaking, I've tried       in <b>mimetex.c</b> <br>
      to encode the cmmi10, cmsy10, cmr10, cmex10, rsfs10 and bbold10       &nbsp; &nbsp; &nbsp; &nbsp;
      families with "names", e.g., <b>\alpha \beta \forall \sqcup</b>, etc,       I haven't exhaustively checked all the name-number matchings for
      identical to your LaTeX expectations.  For example, the       the thousand-or-so symbols in mimetex.h.  You can eaily correct
      calligraphic symbols in cmsy10 are accessed by writing       any minor mistake you find in what I hope is an obvious manner.
      <b>\mathcal{A} \mathcal{B} \mathcal{XYZ}</b>.  Similarly, write       The fonts <a href="#fonts">Appendix&nbsp;IVa</a> below provides
      <b>\mathscr{A}</b> for the rsfs10 fonts, and write <b>\mathbb{R}</b>       additional information. </p>
      for bbold10. </p>  
    <p> Generally speaking, I've tried to
        encode the cmr10, cmmi10, cmmib10, cmsy10, cmex10, bbold10, rsfs10,
        stmary10 and wncyr10 families with "names", e.g., <b>\alpha \beta
        \forall \sqcup</b>, etc, identical to your LaTeX expectations.
        For example, the calligraphic symbols in cmsy10 are accessed by
        writing <b>\mathcal{A} \mathcal{B} \mathcal{XYZ}</b>.  Similarly,
        write <b>\mathbf{A}</b> for the cmmib fonts, write <b>\mathscr{A}</b>
        for rsfs10, write <b>\mathbb{R}</b> for bbold10, and write
        <b>{\cyr&nbsp;Khrushchev}</b> or <b>\cyr{Khrushchev}</b> to see
        <a href="#preview"><img id="cyrillic1" onclick="eqntext('cyrillic1')"
        src="../cgi-bin/mimetex.cgi?\large\cyr Khrushchev"
        alt="" border=0 align="middle"></a>.
        Most LaTeX distributions supply stmaryrd.dvi and stmaryrd.sty
        that both document the names of the stmary10 symbols.
        Similarly, amsfndoc.dvi documents the names of the wncyr10
        cyrillic symbols and ligatures. </p>
   
      <!-- But there are various additions and omissions and exceptions       <!-- But there are various additions and omissions and exceptions
      vis-a-vis LaTeX.  For example, </p>       vis-a-vis LaTeX.  For example, </p>
       <ul>        <ul>
Line 1577  and some other characters<font size=5>.. Line 2561  and some other characters<font size=5>..
              than their \xxx counterparts, and they automatically render               than their \xxx counterparts, and they automatically render
              super/subscripts in <a href="#modes">displaystyle</a>. </li>               super/subscripts in <a href="#modes">displaystyle</a>. </li>
       </ul> -->        </ul> -->
  <p> I haven't exhaustively checked all the name-number matchings for  
      the hundreds of symbols in mimetex.h.  You can eaily correct  
      any minor mistake you find in what I hope is an obvious manner.  
      The fonts <a href="#fonts">Appendix&nbsp;IVa</a> below provides  
      additional information. </p>  
   
  <p> In addition to extra LaTeX symbols like <b>\ldots</b>, <b>\AA</b>   <p> In addition to extra LaTeX symbols like <b>\ldots</b>, <b>\AA</b>
      and <b>\hbar</b>, mentioned above, the mimeTeX preprocessor       and <b>\hbar</b>, mentioned above, the mimeTeX preprocessor
Line 1590  and some other characters<font size=5>.. Line 2570  and some other characters<font size=5>..
      <b>&amp;quot;</b>, <b>&amp;amp;</b>, etc.  Some web tools apparently       <b>&amp;quot;</b>, <b>&amp;amp;</b>, etc.  Some web tools apparently
      translate characters like, e.g., <b>&gt;</b> to <b>&amp;gt;</b>,       translate characters like, e.g., <b>&gt;</b> to <b>&amp;gt;</b>,
      even inside quoted query_string's, so mimeTeX's preprocessor       even inside quoted query_string's, so mimeTeX's preprocessor
      translates them back to LaTeX symbols for you. </p>       translates them back to LaTeX symbols for you.  Moreover, html
        misinterprets quotes &nbsp;<b>&quot;</b>&nbsp; inside a quoted
        query string as the end of the query string.  So, for example,
        the cyrillic ligature <b>\&quot;E</b> has to be written in the
        even more cumbersome form <b>\&amp;quot;E</b> inside a query
        string. </p>
   
    <p> Illustrated below are some of the character sets and math symbols
        supported by mimeTeX, starting with several roman character fonts.
        The blackboard bold font contains many characters besides
        &nbsp; <b>a-z,A-Z</b>. &nbsp; Calligraphic and script fonts contain
        uppercase &nbsp; <b>A-Z</b> &nbsp; only. </p>
   
       <center><a href="#preview"><img id="roman8" onclick="eqntext('roman8')"
       src="../cgi-bin/mimetex.cgi?\large
       \begin{array}{|c+57|c|c|c0|c|c|c|c|c| C25 C+15} \hline
       \large \textrm{a-z} & \small \backslash\textrm{text} &
       \small \backslash\textrm{mathbb} & &
       \large \textrm{A-Z} & \small \backslash\textrm{text} &
       \small \backslash\textrm{mathbb} & \small \backslash\textrm{mathcal} &
       \small \backslash\textrm{mathscr} \\ \hline
       a&\text{a}&\mathbb{a}& &A&\text{A}&\mathbb{A}&\mathcal{A}&\mathscr{A}\\
       b&\text{b}&\mathbb{b}& &B&\text{B}&\mathbb{B}&\mathcal{B}&\mathscr{B}\\
       c&\text{c}&\mathbb{c}& &C&\text{C}&\mathbb{C}&\mathcal{C}&\mathscr{C}\\
       d&\text{d}&\mathbb{d}& &D&\text{D}&\mathbb{D}&\mathcal{D}&\mathscr{D}\\
       e&\text{e}&\mathbb{e}& &E&\text{E}&\mathbb{E}&\mathcal{E}&\mathscr{E}\\
       f&\text{f}&\mathbb{f}& &F&\text{F}&\mathbb{F}&\mathcal{F}&\mathscr{F}\\
       g&\text{g}&\mathbb{g}& &G&\text{G}&\mathbb{G}&\mathcal{G}&\mathscr{G}\\
       h&\text{h}&\mathbb{h}& &H&\text{H}&\mathbb{H}&\mathcal{H}&\mathscr{H}\\
       i&\text{i}&\mathbb{i}& &I&\text{I}&\mathbb{I}&\mathcal{I}&\mathscr{I}\\
       j&\text{j}&\mathbb{j}& &J&\text{J}&\mathbb{J}&\mathcal{J}&\mathscr{J}\\
       k&\text{k}&\mathbb{k}& &K&\text{K}&\mathbb{K}&\mathcal{K}&\mathscr{K}\\
       l&\text{l}&\mathbb{l}& &L&\text{L}&\mathbb{L}&\mathcal{L}&\mathscr{L}\\
       m&\text{m}&\mathbb{m}& &M&\text{M}&\mathbb{M}&\mathcal{M}&\mathscr{M}\\
       n&\text{n}&\mathbb{n}& &N&\text{N}&\mathbb{N}&\mathcal{N}&\mathscr{N}\\
       o&\text{o}&\mathbb{o}& &O&\text{O}&\mathbb{O}&\mathcal{O}&\mathscr{O}\\
       p&\text{p}&\mathbb{p}& &P&\text{P}&\mathbb{P}&\mathcal{P}&\mathscr{P}\\
       q&\text{q}&\mathbb{q}& &Q&\text{Q}&\mathbb{Q}&\mathcal{Q}&\mathscr{Q}\\
       r&\text{r}&\mathbb{r}& &R&\text{R}&\mathbb{R}&\mathcal{R}&\mathscr{R}\\
       s&\text{s}&\mathbb{s}& &S&\text{S}&\mathbb{S}&\mathcal{S}&\mathscr{S}\\
       t&\text{t}&\mathbb{t}& &T&\text{T}&\mathbb{T}&\mathcal{T}&\mathscr{T}\\
       u&\text{u}&\mathbb{u}& &U&\text{U}&\mathbb{U}&\mathcal{U}&\mathscr{U}\\
       v&\text{v}&\mathbb{v}& &V&\text{V}&\mathbb{V}&\mathcal{V}&\mathscr{V}\\
       w&\text{w}&\mathbb{w}& &W&\text{W}&\mathbb{W}&\mathcal{W}&\mathscr{W}\\
       x&\text{x}&\mathbb{x}& &X&\text{X}&\mathbb{X}&\mathcal{X}&\mathscr{X}\\
       y&\text{y}&\mathbb{y}& &Y&\text{Y}&\mathbb{Y}&\mathcal{Y}&\mathscr{Y}\\
       z&\text{z}&\mathbb{z}& &Z&\text{Z}&\mathbb{Z}&\mathcal{Z}&\mathscr{Z}\\
       \hline \end{array}"
       alt="" border=0 align="middle"></a></center>
   
    <p> Characters from the Greek alphabet supported by mimeTeX,
        along with &nbsp; <b>\mathbb{&nbsp;}</b> &nbsp; versions, are
        illustrated next.  For example, &nbsp; <b>\mathbb{\lambda}</b>
        &nbsp; renders &nbsp;
        <a href="#preview"><img id="bblambda" onclick="eqntext('bblambda')"
        src="../cgi-bin/mimetex.cgi?\large\mathbb{\lambda}"
        alt="" border=0 align="bottom"></a>. </p>
   
       <center><a href="#preview"><img id="greek2" onclick="eqntext('greek2')"
       src="../cgi-bin/mimetex.cgi?\large
       \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
       \hline \; \\
       \hspace{10}\backslash\textrm{Gamma}      & \Gamma   & \mathbb{\Gamma}  &
       \hspace{10}\backslash\textrm{Delta}      & \Delta   & \mathbb{\Delta}  &
       \hspace{10}\backslash\textrm{Theta}      & \Theta   & \mathbb{\Theta}  \\
       \hspace{10}\backslash\textrm{Lambda}     & \Lambda  & \mathbb{\Lambda} &
       \hspace{10}\backslash\textrm{Xi}         & \Xi      & \mathbb{\Xi}     &
       \hspace{10}\backslash\textrm{Pi}         & \Pi      & \mathbb{\Pi}     \\
       \hspace{10}\backslash\textrm{Sigma}      & \Sigma   & \mathbb{\Sigma}  &
       \hspace{10}\backslash\textrm{Upsilon}    & \Upsilon & \mathbb{\Upsilon}&
       \hspace{10}\backslash\textrm{Phi}        & \Phi     & \mathbb{\Phi}    \\
       \hspace{10}\backslash\textrm{Psi}        & \Psi     & \mathbb{\Psi}    &
       \hspace{10}\backslash\textrm{Omega}      & \Omega   & \mathbb{\Omega}  \\
       \; \\ \hline \; \\
       \hspace{10}\backslash\textrm{alpha}      & \alpha   & \mathbb{\alpha}  &
       \hspace{10}\backslash\textrm{beta}       & \beta    & \mathbb{\beta}   &
       \hspace{10}\backslash\textrm{gamma}      & \gamma   & \mathbb{\gamma}  \\
       \hspace{10}\backslash\textrm{delta}      & \delta   & \mathbb{\delta}  &
       \hspace{10}\backslash\textrm{epsilon}    & \epsilon & \mathbb{\epsilon}&
       \hspace{10}\backslash\textrm{zeta}       & \zeta    & \mathbb{\zeta}   \\
       \hspace{10}\backslash\textrm{eta}        & \eta     & \mathbb{\eta}    &
       \hspace{10}\backslash\textrm{theta}      & \theta   & \mathbb{\theta}  &
       \hspace{10}\backslash\textrm{iota}       & \iota    & \mathbb{\iota}   \\
       \hspace{10}\backslash\textrm{kappa}      & \kappa   & \mathbb{\kappa}  &
       \hspace{10}\backslash\textrm{lambda}     & \lambda  & \mathbb{\lambda} &
       \hspace{10}\backslash\textrm{mu}         & \mu      & \mathbb{\mu}     \\
       \hspace{10}\backslash\textrm{nu}         & \nu      & \mathbb{\nu}     &
       \hspace{10}\backslash\textrm{xi}         & \xi      & \mathbb{\xi}     &
       \hspace{10}\backslash\textrm{pi}         & \pi      & \mathbb{\pi}     \\
       \hspace{10}\backslash\textrm{rho}        & \rho     & \mathbb{\rho}    &
       \hspace{10}\backslash\textrm{sigma}      & \sigma   & \mathbb{\sigma}  &
       \hspace{10}\backslash\textrm{tau}        & \tau     & \mathbb{\tau}    \\
       \hspace{10}\backslash\textrm{upsilon}    & \upsilon & \mathbb{\upsilon}&
       \hspace{10}\backslash\textrm{phi}        & \phi     & \mathbb{\phi}    &
       \hspace{10}\backslash\textrm{chi}        & \chi     & \mathbb{\chi}    \\
       \hspace{10}\backslash\textrm{psi}        & \psi     & \mathbb{\psi}    &
       \hspace{10}\backslash\textrm{omega}      & \omega   & \mathbb{\omega}  \\
       \; \\ \hline \; \\
       \hspace{10}\backslash\textrm{varepsilon} & \varepsilon & &
       \hspace{10}\backslash\textrm{vartheta}   & \vartheta   & &
       \hspace{10}\backslash\textrm{varpi}      & \varpi      & \\
       \hspace{10}\backslash\textrm{varrho}     & \varrho     & &
       \hspace{10}\backslash\textrm{varsigma}   & \varsigma   & &
       \hspace{10}\backslash\textrm{varphi}     & \varphi     & \\
       \; \\ \hline
       \end{array}"
       alt="" border=0 align="middle"></a></center>
   
    <p> Finally, some of the math symbols supported by mimeTeX are illustrated
        below. Operators shown in two sizes are automatically
        "promoted" to the larger size in &nbsp <b>\displaystyle</b>
        &nbsp; mode.  For example, &nbsp;
        <b>f(x)=\int_{-\infty}^x&nbsp;e^{-t^2}dt</b> &nbsp; renders &nbsp;
        <a href="#preview"><img id="mathsy1" onclick="eqntext('mathsy1')"
        src="../cgi-bin/mimetex.cgi?\textstyle f(x)=\int_{-\infty}^x e^{-t^2}dt"
        alt="" border=0 align="middle"></a>
        &nbsp; whereas &nbsp;
        <b>\displaystyle&nbsp;f(x)=\int_{-\infty}^x&nbsp;e^{-t^2}dt</b>
        &nbsp; renders &nbsp;
        <a href="#preview"><img id="mathsy2" onclick="eqntext('mathsy2')"
        src="../cgi-bin/mimetex.cgi?\displaystyle
        f(x)=\int_{-\infty}^x e^{-t^2}dt" alt="" border=0 align="middle"></a>
        </p>
   
       <center><a href="#preview"><img id="mthtbl1" onclick="eqntext('mthtbl1')"
       src="../cgi-bin/mimetex.cgi?\large\textstyle
       \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
       \hline \; \\
       \hspace{10}\backslash\textrm{cdot}       & \cdot       &  &
       \hspace{10}\backslash\textrm{times}      & \times      &  &
       \hspace{10}\backslash\textrm{ast}        & \ast        &  \\
       \hspace{10}\backslash\textrm{div}        & \div        &  &
       \hspace{10}\backslash\textrm{diamond}    & \diamond    &  &
       \hspace{10}\backslash\textrm{pm}         & \pm         &  \\
       \hspace{10}\backslash\textrm{mp}         & \mp         &  &
       \hspace{10}\backslash\textrm{oplus}      & \oplus      & \Bigoplus &
       \hspace{10}\backslash\textrm{ominus}     & \ominus     &  \\
       \hspace{10}\backslash\textrm{otimes}     & \otimes     & \Bigotimes &
       \hspace{10}\backslash\textrm{oslash}     & \oslash     &  &
       \hspace{10}\backslash\textrm{odot}       & \odot       & \Bigodot \\
       \hspace{10}\backslash\textrm{bigcirc}    & \bigcirc    &  &
       \hspace{10}\backslash\textrm{circ}       & \circ       &  &
       \hspace{10}\backslash\textrm{bullet}     & \bullet     &  \\
       \hspace{10}\backslash\textrm{asymp}      & \asymp      &  &
       \hspace{10}\backslash\textrm{equiv}      & \equiv      &  &
       \hspace{10}\backslash\textrm{subseteq}   & \subseteq   &  \\
       \hspace{10}\backslash\textrm{supseteq}   & \supseteq   &  &
       \hspace{10}\backslash\textrm{leq}        & \leq        &  &
       \hspace{10}\backslash\textrm{geq}        & \geq        &  \\
       \hspace{10}\backslash\textrm{preceq}     & \preceq     &  &
       \hspace{10}\backslash\textrm{succeq}     & \succeq     &  &
       \hspace{10}\backslash\textrm{sim}        & \sim        &  \\
       \hspace{10}\backslash\textrm{approx}     & \approx     &  &
       \hspace{10}\backslash\textrm{subset}     & \subset     &  &
       \hspace{10}\backslash\textrm{supset}     & \supset     &  \\
       \hspace{10}\backslash\textrm{ll}         & \ll         &  &
       \hspace{10}\backslash\textrm{gg}         & \gg         &  &
       \hspace{10}\backslash\textrm{prec}       & \prec       &  \\
       \hspace{10}\backslash\textrm{succ}       & \succ       &  &
       \hspace{10}\normalsize\backslash\textrm{leftarrow}  & \leftarrow  &  &
       \hspace{10}\normalsize\backslash\textrm{rightarrow} & \rightarrow &  \\
       \hspace{10}\normalsize\backslash\textrm{uparrow}    & \uparrow    &  &
       \hspace{10}\normalsize\backslash\textrm{downarrow}  & \downarrow  &  &
       \hspace{10}\normalsize\backslash\textrm{leftrightarrow}&&\leftrightarrow\\
       \hspace{10}\backslash\textrm{nearrow}    & \nearrow    &  &
       \hspace{10}\backslash\textrm{searrow}    & \searrow    &  &
       \hspace{10}\backslash\textrm{simeq}      & \simeq      &  \\
       \hspace{10}\normalsize\backslash\textrm{Leftarrow}  & \Leftarrow  &  &
       \hspace{10}\normalsize\backslash\textrm{Rightarrow} & \Rightarrow &  &
       \hspace{10}\normalsize\backslash\textrm{Uparrow}    & \Uparrow    &  \\
       \hspace{10}\normalsize\backslash\textrm{Downarrow}  & \Downarrow  &  &
       \hspace{10}\normalsize\backslash\textrm{Leftrightarrow}&&\Leftrightarrow&
       \hspace{10}\backslash\textrm{nwarrow}    & \nwarrow    &  \\
       \hspace{10}\backslash\textrm{swarrow}    & \swarrow    &  &
       \hspace{10}\backslash\textrm{propto}     & \propto     &  &
       \hspace{10}\backslash\textrm{prime}      & \prime      &  \\
       \hspace{10}\backslash\textrm{infty}      & \infty      &  &
       \hspace{10}\backslash\textrm{in}         & \in         &  &
       \hspace{10}\backslash\textrm{ni}         & \ni         &  \\
       \hspace{10}\backslash\textrm{triangle}   & \triangle   &  &
       \hspace{10}\normalsize\backslash\textrm{bigtriangledown}&&\bigtriangledown&
       \hspace{10}\backslash^\prime             & \'          &  \\
       \hspace{10}\textrm{/}                    & /           &  &
       \hspace{10}\backslash\textrm{forall}     & \forall     &  &
       \hspace{10}\backslash\textrm{exists}     & \exists     &  \\
       \hspace{10}\backslash\textrm{neg}        & \neg        &  &
       \hspace{10}\backslash\textrm{emptyset}   & \emptyset   &  &
       \hspace{10}\backslash\textrm{Re}         & \Re         &  \\
       \hspace{10}\backslash\textrm{Im}         & \Im         &  &
       \hspace{10}\backslash\textrm{top}        & \top        &  &
       \hspace{10}\backslash\textrm{bot}        & \bot        &  \\
       \hspace{10}\backslash\textrm{aleph}      & \aleph      &  &
       \hspace{10}\normalsize\backslash\textrm{mathcal\lbrace A\rbrace}&\;\mathcal{A}&....&
       ....       \normalsize\backslash\textrm{mathcal\lbrace Z\rbrace}&\;\mathcal{Z}&\\
       \; \\ \hline
       \end{array}"
       alt="" border=0 align="middle"></a><br>
       <a href="#preview"><img id="mthtbl2" onclick="eqntext('mthtbl2')"
       src="../cgi-bin/mimetex.cgi?\large\textstyle
       \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
       \hline \; \\
       \hspace{10}\backslash\textrm{cup}        & \cup        & \Bigcup &
       \hspace{10}\backslash\textrm{cap}        & \cap        & \Bigcap &
       \hspace{10}\backslash\textrm{uplus}      & \uplus      & \Biguplus \\
       \hspace{10}\backslash\textrm{wedge}      & \wedge      & \Bigwedge &
       \hspace{10}\backslash\textrm{vee}        & \vee        & \Bigvee &
       \hspace{10}\backslash\textrm{vdash}      & \vdash      &  \\
       \hspace{10}\backslash\textrm{dashv}      & \dashv      &  &
       \hspace{10}\backslash\textrm{lfloor}     & \lfloor     &  &
       \hspace{10}\backslash\textrm{rfloor}     & \rfloor     &  \\
       \hspace{10}\backslash\textrm{lceil}      & \lceil      &  &
       \hspace{10}\backslash\textrm{rceil}      & \rceil      &  &
       \hspace{10}\backslash\textrm{lbrace}     & \lbrace     &  \\
       \hspace{10}\backslash\textrm{rbrace}     & \rbrace     &  &
       \hspace{10}\backslash\textrm{langle}     & \langle     &  &
       \hspace{10}\backslash\textrm{rangle}     & \rangle     &  \\
       \hspace{10}\backslash\textrm{mid}        & \mid        &  &
       \hspace{10}\backslash\textrm{parallel}   & \parallel   &  &
       \hspace{10}\normalsize\backslash\textrm{updownarrow}& & \updownarrow \\
       \hspace{10}\normalsize\backslash\textrm{Updownarrow}& & \Updownarrow &
       \hspace{10}\backslash\textrm{setminus}   & \setminus   &  &
       \hspace{10}\backslash\textrm{wr}         & \wr         &  \\
       \hspace{10}\backslash\textrm{surd}       & \raisebox{15}\surd &  &
       \hspace{10}\backslash\textrm{amalg}      & \amalg      &  &
       \hspace{10}\backslash\textrm{nabla}      & \nabla      &  \\
       \hspace{10}\backslash\textrm{int}        & \int        & \Bigint &
       \hspace{10}\backslash\textrm{sqcup}      & \sqcup      & \Bigsqcup &
       \hspace{10}\backslash\textrm{sqcap}      & \sqcap      &  \\
       \hspace{10}\normalsize\backslash\textrm{sqsubseteq} & \sqsubseteq &  &
       \hspace{10}\normalsize\backslash\textrm{sqsupseteq} & \sqsupseteq &  &
       \hspace{10}\backslash\textrm{S}          & \S          &  \\
       \hspace{10}\backslash\textrm{dag}        & \dag        &  &
       \hspace{10}\backslash\textrm{ddag}       & \ddag       &  &
       \hspace{10}\backslash\textrm{P}          & \P          &  \\
       \hspace{10}\backslash\textrm{clubsuit}   & \clubsuit   &  &
       \hspace{10}\backslash\textrm{Diamond}    & \Diamond    &  &
       \hspace{10}\backslash\textrm{Heart}      & \Heart      &  \\
       \hspace{10}\backslash\textrm{spadesuit}  & \spadesuit  &  \\
       \; \\ \hline
       \end{array}"
       alt="" border=0 align="middle"></a><br>
       <a href="#preview"><img id="mthtbl3" onclick="eqntext('mthtbl3')"
       src="../cgi-bin/mimetex.cgi?\large\textstyle
       \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
       \hline \; \\
       \hspace{10}\backslash\textrm{oint}       & \oint       & \Bigoint &
       \hspace{10}\backslash\textrm{sum}        & \sum        & \Bigsum &
       \hspace{10}\backslash\textrm{prod}       & \prod       & \Bigprod \\
       \hspace{10}\backslash\textrm{coprod}     & \coprod     & \Bigcoprod \\
       \; \\ \hline \; \\
       \hspace{10}\normalsize\backslash\textrm{leftharpoonup} &&\leftharpoonup&
          \normalsize\backslash\textrm{leftharpoondown} &&\;\leftharpoondown&
       \hspace{10}\normalsize\backslash\textrm{rightharpoonup}&&\rightharpoonup\\
          \normalsize\backslash\textrm{rightharpoondown}&&\;\rightharpoondown&
       \hspace{10}\normalsize\backslash\textrm{triangleright} &&\triangleright&
       \hspace{10}\normalsize\backslash\textrm{triangleleft}  &&\triangleleft\\
          \normalsize\backslash\textrm{rightleftharpoons}&&\;\rightleftharpoons&
       \hspace{10}\backslash\textrm{star}       & \LARGE{\star} &  &
       \hspace{10}\backslash\textrm{partial}    & \partial    &  \\
       \hspace{10}\backslash\textrm{flat}       & \flat       &  &
       \hspace{10}\backslash\textrm{natural}    & \natural    &  &
       \hspace{10}\backslash\textrm{sharp}      & \sharp      &  \\
       \hspace{10}\backslash\textrm{smile}      & \smile      &  &
       \hspace{10}\backslash\textrm{frown}      & \frown      &  &
       \hspace{10}\backslash\textrm{ell}        & \ell        &  \\
       \hspace{10}\backslash\textrm{imath}      & \imath      &  &
       \hspace{10}\backslash\textrm{jmath}      & \jmath      &  &
       \hspace{10}\backslash\textrm{wp}         & \wp         &  \\
       \; \\ \hline \; \\
       \hspace{10}\backslash\textrm{ss}         & \ss         &  &
       \hspace{10}\backslash\textrm{ae}         & \ae         &  &
       \hspace{10}\backslash\textrm{oe}         & \oe         &  \\
       \hspace{10}\backslash\textrm{AE}         & \AE         &  &
       \hspace{10}\backslash\textrm{OE}         & \OE         &  \\
       \; \\ \hline \; \\
       \hspace{10}\backslash\textrm{AA}         & \AA         &  &
       \hspace{10}\backslash\textrm{aa}         & \aa         &  &
       \hspace{10}\backslash\textrm{hbar}       & \hbar       &  \\
       \hspace{10}\backslash\textrm{ldots}      & \ldots      &  &
       \hspace{10}\backslash\textrm{cdots}      & \cdots      &  &
       \hspace{10}\backslash\textrm{vdots}      & \vdots      &  \\
       \hspace{10}\backslash\textrm{ddots}      & \ddots      &  &
       \hspace{10}\backslash\textrm{angle}      & \angle      &  &
       \hspace{10}\backslash\textrm{iint}       & \iint       & \Bigiint \\
       \; \\ \hline
       \end{array}"
       alt="" border=0 align="middle"></a></center>
   
 <h3> <a name="sizes">Font Sizes<font size=5>...</font></a> </h3>  <h3> <a name="sizes">Font Sizes<font size=5>...</font></a> </h3>
   
  <p> MimeTeX currently has six font sizes, numbered 0-5, with default 2.   <p> MimeTeX currently has eight font sizes, numbered 0-7, with default 3.
      This font size numbering corresponds to the usual LaTeX declarations       This font size numbering corresponds to the usual LaTeX directives
      &nbsp; <b>\tiny</b>, &nbsp; <b>\small</b>, &nbsp; <b>\normalsize</b>       &nbsp; <b>\tiny</b>, &nbsp; <b>\small</b>, &nbsp; <b>\normalsize</b>,
      (default), &nbsp; <b>\large</b>, &nbsp; <b>\Large</b> and <b>\LARGE</b>.       &nbsp; <b>\large</b> (default), &nbsp; <b>\Large</b>, &nbsp;
      These declarations can be placed anywhere in a mimeTeX expression,       <b>\LARGE</b>, &nbsp; <b>\huge</b> and <b>\Huge</b>.
        These directives can be placed anywhere in a mimeTeX expression,
      and they change font size from that point forwards.  However, as usual,       and they change font size from that point forwards.  However, as usual,
      a font size change inside a <b>{&nbsp;}</b>-subexpression remains       a font size change inside a <b>{&nbsp;}</b>-subexpression remains
      in effect only within that subexpression. </p>       in effect only within that subexpression. </p>
   
  <p> In mimeTeX you may also write <b>\fontsize{0}...\fontsize{5}</b> or   <p> In mimeTeX you may also write <b>\fontsize{0}...\fontsize{7}</b> or
      the shorter <b>\fs{0},...,\fs{5}</b> for <b>\tiny,...,\LARGE</b>.       the shorter <b>\fs{0},...,\fs{7}</b> for <b>\tiny,...,\Huge</b>.
      And since these arguments are all single digits, the even shorter       And since these arguments are all single digits, the even shorter
      form <b>\fs0,...,\fs5</b> works equally well.  For example, </p>       form <b>\fs0,...,\fs7</b> works equally well.  For example, </p>
      <center> <table cellpadding=0>       <center> <table cellpadding=0>
       <tr align=center>        <tr align=center>
         <td> &lt;img src="../cgi-bin/mimetex.cgi?<b></b>f(x)=x^2"&gt; </td>          <td align="left"> <b>0</b>: &nbsp;
         <td> produces </td>           &lt;img src="../cgi-bin/mimetex.cgi?<b>\tiny</b> f(x)=x^2"&gt;
            &nbsp; produces... </td>
           <td> <a href="#preview"><img id="sizes0" onclick="eqntext('sizes0')"
                src="../cgi-bin/mimetex.cgi?\tiny f(x)=x^2"
                alt="" border=0 align=middle></a> </td> </tr>
         <tr align=center>
           <td align="left"> <b>1</b>: &nbsp;
            &lt;img src="../cgi-bin/mimetex.cgi?<b>\fs1</b> f(x)=x^2"&gt; </td>
         <td> <a href="#preview"><img id="sizes1" onclick="eqntext('sizes1')"          <td> <a href="#preview"><img id="sizes1" onclick="eqntext('sizes1')"
              src="../cgi-bin/mimetex.cgi?f(x)=x^2"               src="../cgi-bin/mimetex.cgi?\fs1 f(x)=x^2"
              alt="" border=0 align=middle></a> </td>               alt="" border=0 align=middle></a> </td> </tr>
       </tr>  
       <tr align=center>        <tr align=center>
         <td> &lt;img src="../cgi-bin/mimetex.cgi?<b>\large</b> f(x)=x^2"&gt; </td>          <td align="left"> <b>2</b>: &nbsp;
         <td> &nbsp; </td>           &lt;img src="../cgi-bin/mimetex.cgi?<b>\normalsize</b> f(x)=x^2"&gt; </td>
         <td> <a href="#preview"><img id="sizes2" onclick="eqntext('sizes2')"          <td> <a href="#preview"><img id="sizes1" onclick="eqntext('sizes1')"
              src="../cgi-bin/mimetex.cgi?\large f(x)=x^2"               src="../cgi-bin/mimetex.cgi?\normalsize f(x)=x^2"
              alt="" border=0 align=middle></a> </td>               alt="" border=0 align=middle></a> </td> </tr>
       </tr>  
       <tr align=center>        <tr align=center>
         <td> &lt;img src="../cgi-bin/mimetex.cgi?<b>\fs4</b>f(x)=x^2"&gt; </td>          <td align="left"> <b>3</b>: &nbsp;
         <td> &nbsp; </td>           &lt;img src="../cgi-bin/mimetex.cgi?<b></b>f(x)=x^2"&gt; </td>
         <td> <a href="#preview"><img id="sizes3" onclick="eqntext('sizes3')"          <td> <a href="#preview"><img id="sizes3" onclick="eqntext('sizes3')"
              src="../cgi-bin/mimetex.cgi?\fs4f(x)=x^2"               src="../cgi-bin/mimetex.cgi?f(x)=x^2"
              alt="" border=0 align=middle></a> </td>               alt="" border=0 align=middle></a> </td> </tr>
       </tr>        <tr align=center>
           <td align="left"> <b>4</b>: &nbsp;
            &lt;img src="../cgi-bin/mimetex.cgi?<b>\Large</b> f(x)=x^2"&gt; </td>
           <td> <a href="#preview"><img id="sizes4" onclick="eqntext('sizes4')"
                src="../cgi-bin/mimetex.cgi?\Large f(x)=x^2"
                alt="" border=0 align=middle></a> </td> </tr>
         <tr align=center>
           <td align="left"> <b>5</b>: &nbsp;
            &lt;img src="../cgi-bin/mimetex.cgi?<b>\fs5</b> f(x)=x^2"&gt; </td>
           <td> <a href="#preview"><img id="sizes5" onclick="eqntext('sizes5')"
                src="../cgi-bin/mimetex.cgi?\fs5f(x)=x^2"
                alt="" border=0 align=middle></a> </td> </tr>
         <tr align=center>
           <td align="left"> <b>6</b>: &nbsp;
            &lt;img src="../cgi-bin/mimetex.cgi?<b>\huge</b> f(x)=x^2"&gt; </td>
           <td> <a href="#preview"><img id="sizes6" onclick="eqntext('sizes6')"
                src="../cgi-bin/mimetex.cgi?\huge f(x)=x^2"
                alt="" border=0 align=middle></a> </td> </tr>
         <tr align=center>
           <td align="left"> <b>7</b>: &nbsp;
            &lt;img src="../cgi-bin/mimetex.cgi?<b>\fs7</b> f(x)=x^2"&gt; </td>
           <td> <a href="#preview"><img id="sizes7" onclick="eqntext('sizes7')"
                src="../cgi-bin/mimetex.cgi?\fs7 f(x)=x^2"
                alt="" border=0 align=middle></a> </td> </tr>
      </table> </center> <p class="continue">       </table> </center> <p class="continue">
      rendering <b>f(x)=x^2</b> in mimeTeX font sizes &nbsp; <b>2</b>       rendering <b>f(x)=x^2</b> in mimeTeX font sizes &nbsp;
      (default \normalsize), &nbsp; <b>3</b> (\large or \fs3), and       <b>0</b> (\tiny or \fs0), &nbsp; <b>1</b> (\small or \fs1), &nbsp;
      &nbsp; <b>4</b> (\fs4 or \Large). </p>       <b>2</b> (\normalsize or \fs2), &nbsp; <b>3</b> (default \large), &nbsp;
        <b>4</b> (\Large or \fs4), &nbsp; <b>5</b> (\LARGE or \fs5), &nbsp;
        <b>6</b> (\huge or \fs6) &nbsp; and &nbsp; <b>7</b> (\Huge or \fs7). </p>
   
  <p> You'll soon notice that exponents and \frac's and \atop's   <p> You'll soon notice that exponents and \frac's and \atop's
      are automatically rendered one size smaller than their base       are automatically rendered one size smaller than their base
Line 1677  and some other characters<font size=5>.. Line 2974  and some other characters<font size=5>..
      by the usual rules, one size smaller than the <b>"x"</b>,       by the usual rules, one size smaller than the <b>"x"</b>,
      in font size&nbsp;1. </p>       in font size&nbsp;1. </p>
   
    <p> Finally, illustrated below are some examples of fonts and symbols
        at several mimeTeX sizes.  All symbols and sizes from cmr, cmmi,
        cmmib (use <b>\mathbf{&nbsp;}</b>), cmsy, cmex, bbold (use
        <b>\mathbb{&nbsp;}</b>), rsfs (use <b>\mathscr{&nbsp;}</b>),
        stmary and cyrillic wncyr (use <b>{\cyr&nbsp;&nbsp;}</b> or
        <b>\cyr{&nbsp;}</b>) should be available, but they're not all shown.
        <!-- And also not shown are various "constructed symbols" like \sqrt,
        accents, etc. --> The illustrated font sizes are numbered 4=\Large,
        3=\large and 2=\normalsize (not shown are 7=\Huge, 6=\huge,
        5=\LARGE, 1=\small and 0=\tiny). </p>
   
    <center> <table cellspacing="7">
     <tr> <td align="left">
   <font size="4">cmmi latin uppercase, and lowercase</font>
   <br><img src="../cgi-bin/mimetex.cgi?\array{r$
   2$\rm~size~4:~&4$A&4$B&4$C&4$D,&4$a&4$b&4$c&4$d\\
   2$\rm~3:~&3$E&3$F&3$G&3$H&3$I&3$J&3$K&3$L,&3$e&3$f&3$g&3$h&3$i&3$j&3$k&3$l\\
   2$\rm~2:~&2$M&2$N&2$O&2$P&2$Q&2$R&2$S&2$T&2$U&2$V&2$W&2$X&2$Y&2$Z,&
   2$m&2$n&2$o&2$p&2$q&2$r&2$s&2$t&2$u&2$v&2$w&2$x&2$y&2$z}"
   alt="" border=0 align=middle>
     </td> <tr>
     <tr> <td align="left">
   <font size="4">calligraphic, and rsfs (<b>\cal{A}, \scr{B}, etc</b>)</font>
   <br><img src="../cgi-bin/mimetex.cgi?\array{r$
   2$\rm~size~4:~&4$\calA&4$\calB&4$\calC&4$\calD&4$\calE&4$\calF&4$\calG,&
   4$\scrA&4$\scrB&4$\scrC&4$\scrD&4$\scrE&4$\scrF&4$\scrG\\
   2$\rm~3:~&3$\calH&3$\calI&3$\calJ&3$\calK&3$\calL&3$\calM&3$\calN&3$\calO&
   3$\calP,&
   3$\scrH&3$\scrI&3$\scrJ&3$\scrK&3$\scrL&3$\scrM&3$\scrN&3$\scrO&3$\scrP\\
   2$\rm~2:~&2$\calQ&2$\calR&2$\calS&2$\calT&2$\calU&
   2$\calV&2$\calW&2$\calX&2$\calY&2$\calZ,&
   2$\scrQ&2$\scrR&2$\scrS&2$\scrT&2$\scrU&2$\scrV&2$\scrW&
   2$\scrX&2$\scrY&2$\scrZ}"
   alt="" border=0 align=middle>
     </td> <tr>
     <tr> <td align="left">
   <font size="4">cmmi greek uppercase, and \var lowercase</font>
   <br><img src="../cgi-bin/mimetex.cgi?\array{r$
   2$\rm~size~4:~&4$\Gamma&4$\Delta&4$\Theta&4$\Lambda&4$\Xi&4$\Pi&4$\Sigma&
   4$\Upsilon&4$\Phi&4$\Psi&4$\Omega,&4$\rm~~&4$\varepsilon&4$\vartheta&4$\varpi&
   4$\varrho&4$\varsigma&4$\varphi\\
   2$\rm~3:~&3$\Gamma&3$\Delta&3$\Theta&3$\Lambda&3$\Xi&3$\Pi&3$\Sigma&
   3$\Upsilon&3$\Phi&3$\Psi&3$\Omega,&~&3$\varepsilon&3$\vartheta&3$\varpi&
   3$\varrho&3$\varsigma&3$\varphi\\
   2$\rm~2:~&2$\Gamma&2$\Delta&2$\Theta&2$\Lambda&2$\Xi&2$\Pi&2$\Sigma&
   2$\Upsilon&2$\Phi&2$\Psi&2$\Omega,&~&2$\varepsilon&2$\vartheta&2$\varpi&
   2$\varrho&2$\varsigma&2$\varphi}"
   alt="" border=0 align=middle>
     </td> <tr>
     <tr> <td align="left">
   <font size="4">cmmi greek lowercase</font>
   <br><img src="../cgi-bin/mimetex.cgi?\array{r$
   2$\rm~size~4:~&4$\alpha&4$\beta&4$\gamma&4$\delta&4$\epsilon&4$\zeta&
   4$\eta&4$\theta&4$\iota&4$\kappa&4$\lambda&4$\mu&4$\nu&4$\xi&4$%%\omicron%%&
   4$\pi&4$\rho&4$\sigma&4$\tau&4$\upsilon&4$\phi&4$\chi&4$\psi&4$\omega\\
   2$\rm~3:~&3$\alpha&3$\beta&3$\gamma&3$\delta&3$\epsilon&3$\zeta&
   3$\eta&3$\theta&3$\iota&3$\kappa&3$\lambda&3$\mu&3$\nu&3$\xi&3$%%\omicron%%&
   3$\pi&3$\rho&3$\sigma&3$\tau&3$\upsilon&3$\phi&3$\chi&3$\psi&3$\omega\\
   2$\rm~2:~&2$\alpha&2$\beta&2$\gamma&2$\delta&2$\epsilon&2$\zeta&
   2$\eta&2$\theta&2$\iota&2$\kappa&2$\lambda&2$\mu&2$\nu&2$\xi&2$%%\omicron%%&
   2$\pi&2$\rho&2$\sigma&2$\tau&2$\upsilon&2$\phi&2$\chi&2$\psi&2$\omega}"
   alt="" border=0 align=middle>
     </td> <tr>
     <tr> <td align="left">
   <font size="4">cmsy symbols at mimeTeX font size 3</font><br>
   <font size="3">(operators shown large are automatically "promoted"<br>
   to the larger size in \displaystyle mode)</font>
   <br><img src="../cgi-bin/mimetex.cgi?\array{3,r$1$\rm~chars~\\
   1$\rm~0-15:~&-&\cdot&\times&\ast&\div&\diamond&\pm&\mp&
   \oplus&\ominus&\otimes&\oslash&\odot&\bigcirc&\circ&\bullet\\
   1$\rm~16-31:~&\asymp&\equiv&\subseteq&\supseteq&\leq&\geq&\preceq&\succeq&
   \sim&\approx&\subset&\supset&\ll&\gg&\prec&\succ\\
   1$\rm~32-47:~&\leftar&\rightar&\uparr&\downar&\leftrightar&\near&\sear&
   \simeq&\Leftar&\Rightar&\Upar&\Downar&\Leftrightar&\nwar&\swar&\propto\\
   1$\rm~48-63:~&\prime&\infty&\in&\ni&\triangle&\bigtriangledo&/&\'&
   \forall&\exists&\neg&\emptyset&\Re&\Im&\top&\bot\\
   1$\rm~64-100:~&\aleph&&\calA&4$.\,.\,.&\calZ&&\cup&\cap&
   \uplus&\wedge&\vee&\vdash&\dashv&\lfloor&\rfloor&\lceil\\
   1$\rm~101-116:~&\rceil&\lbrace&\rbrace&\langle&\rangle&\mid&\parallel&
   \updownar&\Updownar&\setminus&\wr&\surd&\amalg&\nabla&\int&\sqcup\\
   1$\rm~117-127:~&\sqcap&\sqsubseteq&\sqsupseteq&\S&\dag&\ddag&\P&\clubsuit&
   \Diamond&\Heart&\spadesuit}" alt="" border=0 align=middle>
     </td> <tr>
     <tr> <td align="left">
   <font size="4">a few other cmmi, cmr, stmary and wncyr symbols
   at mimeTeX font size 4</font>
   <br><img src="../cgi-bin/mimetex.cgi?\array{4,r$
   1$\rm~cmmi:~&\leftharpoonup&\leftharpoondo&\rightharpoonup&\rightharpoondo&
   \triangleright&\triangleleft&\star&\partial&
   \flat&\natural&\sharp&\smile&\frown&\ell&\imath&\jmath&\wp&\vec\\
   1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE \\
   1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&
   \subsetpluseq&\supsetpluseq&\Yup&\Ydown\\
   1$\rm~wncyr:~&\cyr A&\cyr a&\cyr B&\cyr b&\cyr V&\cyr v&\cyr G&\cyr g&
   \cyr D&\cyr d&\cyr Dj&\cyr dj&\cyr\=E&\cyr\=e&\cyr Zh&\cyr zh}"
   alt="" border=0 align=middle>
     </td> <tr>
    </table> </center>
   
 <h3> <a name="modes">Modes<font size=5>...</font></a> </h3>  <h3> <a name="modes">Modes<font size=5>...</font></a> </h3>
   
  <p> MimeTeX is always in a math-like mode, so you needn't surround   <p> MimeTeX is always in a math-like mode, so you needn't surround
Line 1709  and some other characters<font size=5>.. Line 3105  and some other characters<font size=5>..
      For example, </p> <center>       For example, </p> <center>
         <!-- <b>\Bigsum_{i=1}^ni=\frac{n(n+1)}2</b> &nbsp; produces &nbsp;          <!-- <b>\Bigsum_{i=1}^ni=\frac{n(n+1)}2</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="modes1a" onclick="eqntext('modes1a')"          <a href="#preview"><img id="modes1a" onclick="eqntext('modes1a')"
         src="../cgi-bin/mimetex.cgi?\Bigsum_{i=1}^ni=\frac{n(n+1)}2"          src="../cgi-bin/mimetex.cgi?
           \normalsize\Bigsum_{i=1}^ni=\frac{n(n+1)}2"
         alt="" border=0 align=middle></a>, <br> -->          alt="" border=0 align=middle></a>, <br> -->
         <b>\sum_{i=1}^ni=\frac{n(n+1)}2</b>          <b>\normalsize \sum_{i=1}^ni=\frac{n(n+1)}2</b>
         &nbsp; &nbsp; produces &nbsp; &nbsp;          &nbsp; &nbsp; produces &nbsp; &nbsp;
         <a href="#preview"><img id="modes2a" onclick="eqntext('modes2a')"          <a href="#preview"><img id="modes2a" onclick="eqntext('modes2a')"
         src="../cgi-bin/mimetex.cgi?\sum_{i=1}^ni=\frac{n(n+1)}2"          src="../cgi-bin/mimetex.cgi?\normalsize\sum_{i=1}^ni=\frac{n(n+1)}2"
         alt="" border=0 align=middle></a>, &nbsp; whereas <br>          alt="" border=0 align=middle></a>, &nbsp; whereas <br>
         <b>\displaystyle \sum_{i=1}^ni=\frac{n(n+1)}2</b> &nbsp;produces&nbsp;          <b>\displaystyle \normalsize \sum_{i=1}^ni=\frac{n(n+1)}2</b>
           &nbsp;produces&nbsp;
         <a href="#preview"><img id="modes1b" onclick="eqntext('modes1b')"          <a href="#preview"><img id="modes1b" onclick="eqntext('modes1b')"
         src="../cgi-bin/mimetex.cgi?\displaystyle\sum_{i=1}^ni=\frac{n(n+1)}2"          src="../cgi-bin/mimetex.cgi?
           \normalsize\displaystyle\sum_{i=1}^ni=\frac{n(n+1)}2"
         alt="" border=0 align=middle></a>, </center>          alt="" border=0 align=middle></a>, </center>
      <p class=continue> and <!-- replacing <b>\Bigsum</b> with the smaller       <p class=continue> and <!-- replacing <b>\Bigsum</b> with the smaller
      <b>\sum</b> symbol, --> </p> <center>       <b>\sum</b> symbol, --> </p> <center>
Line 1735  and some other characters<font size=5>.. Line 3134  and some other characters<font size=5>..
   
  <p> As usual, <b>\nolimits</b> turns displaystyle off (or textstyle on)   <p> As usual, <b>\nolimits</b> turns displaystyle off (or textstyle on)
      for the operator immediately preceding it.  For example, </p> <center>       for the operator immediately preceding it.  For example, </p> <center>
         <b>\large\sum\nolimits_{i=1}^ni=\frac{n(n+1)}2</b>          <b>\large \sum\nolimits_{i=1}^ni=\frac{n(n+1)}2</b>
         &nbsp; produces &nbsp;          &nbsp; produces &nbsp;
         <a href="#preview"><img id="modes3" onclick="eqntext('modes3')"          <a href="#preview"><img id="modes3" onclick="eqntext('modes3')"
         src="../cgi-bin/mimetex.cgi?          src="../cgi-bin/mimetex.cgi?
Line 1743  and some other characters<font size=5>.. Line 3142  and some other characters<font size=5>..
         alt="" border=0 align=middle></a></center> <p class="continue">          alt="" border=0 align=middle></a></center> <p class="continue">
      and likewise, <b>\limits</b> turns displaystyle on for the operator       and likewise, <b>\limits</b> turns displaystyle on for the operator
      immediately preceding it.  For example, </p> <center>       immediately preceding it.  For example, </p> <center>
         <b>\sum\limits_{i=1}^ni=\frac{n(n+1)}2</b> &nbsp; produces &nbsp;          <b>\normalsize \sum\limits_{i=1}^ni=\frac{n(n+1)}2</b>
           &nbsp; produces &nbsp;
         <a href="#preview"><img id="modes4" onclick="eqntext('modes4')"          <a href="#preview"><img id="modes4" onclick="eqntext('modes4')"
         src="../cgi-bin/mimetex.cgi?\sum\limits_{i=1}^ni=\frac{n(n+1)}2"          src="../cgi-bin/mimetex.cgi?
           \normalsize\sum\limits_{i=1}^ni=\frac{n(n+1)}2"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align=middle></a> </center>
   
  <p> By the way, <b>\limits</b> affects <i><b>_any_</b></i> character   <p> By the way, <b>\limits</b> affects <i><b>_any_</b></i> character
      or subexpression immediately preceding it.  For example, </p> <center>       or subexpression immediately preceding it.  For example, </p> <center>
         <b>A^i_j</b> &nbsp; produces &nbsp;          <b>A^i_j</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="modes5" onclick="eqntext('modes5')"          <a href="#preview"><img id="modes5" onclick="eqntext('modes5')"
         src="../cgi-bin/mimetex.cgi?3$A^i_j"          src="../cgi-bin/mimetex.cgi?\large A^i_j"
         alt="" border=0 align=middle></a> &nbsp; &nbsp; as usual, whereas <br>          alt="" border=0 align=middle></a> &nbsp; &nbsp; as usual, whereas <br>
         <b>A\limits^i_j</b> &nbsp; produces &nbsp;          <b>A\limits^i_j</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="modes6" onclick="eqntext('modes6')"          <a href="#preview"><img id="modes6" onclick="eqntext('modes6')"
Line 1801  and some other characters<font size=5>.. Line 3202  and some other characters<font size=5>..
      <b>anything&nbsp;at&nbsp;all</b> in italic (font family cmmi10).       <b>anything&nbsp;at&nbsp;all</b> in italic (font family cmmi10).
      All four forms respect spaces between words, except that the       All four forms respect spaces between words, except that the
      first/required  space after <b>{\rm&nbsp;etc}</b> and       first/required  space after <b>{\rm&nbsp;etc}</b> and
      <b>{\it&nbsp;etc}</b> is still ignored.  For example, </p> <center>       <b>{\it&nbsp;etc}</b> is still ignored.  <!-- Math <b>$...$</b>
        subexpressions inside <b>\mbox{&nbsp;}</b> or <b>\text{&nbsp;}</b>
        are treated in the usual way. -->  For example, </p> <center>
         <b>anything&nbsp;at&nbsp;all</b> &nbsp; just produces &nbsp;          <b>anything&nbsp;at&nbsp;all</b> &nbsp; just produces &nbsp;
         <a href="#preview"><img id="textboxes1" onclick="eqntext('textboxes1')"          <a href="#preview"><img id="textboxes1" onclick="eqntext('textboxes1')"
         src="../cgi-bin/mimetex.cgi?anything at all"          src="../cgi-bin/mimetex.cgi?\normalsize anything at all"
         alt="" border=0 align=middle></a> &nbsp; &nbsp; whereas <br> <br>          alt="" border=0 align=middle></a> &nbsp; &nbsp; whereas <br> <br>
         <b>\text{anything&nbsp;at&nbsp;all}</b> &nbsp; produces &nbsp;          <b>\text{anything&nbsp;at&nbsp;all}</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="textboxes2" onclick="eqntext('textboxes2')"          <a href="#preview"><img id="textboxes2" onclick="eqntext('textboxes2')"
         src="../cgi-bin/mimetex.cgi?\text{anything at all}"          src="../cgi-bin/mimetex.cgi?\normalsize\text{anything at all}"
         alt="" border=0 align=middle></a> &nbsp; &nbsp; and <br> <br>          alt="" border=0 align=middle></a> &nbsp; &nbsp; and <br> <br>
         <b>\textit{anything&nbsp;at&nbsp;all}</b> &nbsp; produces &nbsp;          <b>\textit{anything&nbsp;at&nbsp;all}</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="textboxes3" onclick="eqntext('textboxes3')"          <a href="#preview"><img id="textboxes3" onclick="eqntext('textboxes3')"
         src="../cgi-bin/mimetex.cgi?\textit{anything at all}" alt=""          src="../cgi-bin/mimetex.cgi?\normalsize\textit{anything at all}"
         border=0 align=middle></a> &nbsp; &nbsp; instead. </center>          alt="" border=0 align=middle></a> &nbsp; &nbsp; instead. </center>
   
    <p> You don't usually surround mimeTeX expressions with <b>$</b>'s,
        but that works in the usual way for <b>\text{&nbsp;}</b> and
        <b>\mbox{&nbsp;}</b>, rendering the <b>$...$</b>-enclosed
        subexpression in mathmode.  For example, </p> <center>
           <b>n=\left\{m/2\text{&nbsp; &nbsp; if $m$ even}
           \\(m+1)/2\text{&nbsp; if $m$ odd}\right.</b>
           &nbsp; produces &nbsp;
           <a href="#preview"><img id="textboxes9" onclick="eqntext('textboxes9')"
           src="../cgi-bin/mimetex.cgi?
           n=\left\{m/2\text{    if $m$ even}\\(m+1)/2\text{ if $m$ odd}\right."
           alt="" border=0 align=middle></a> </center>
   
   
 <h2> <a name="delimiters"> (IIIc) Delimiters &nbsp; </a> </h2>  <h2> <a name="delimiters"> (IIIc) Delimiters &nbsp; </a> </h2>
Line 1821  and some other characters<font size=5>.. Line 3236  and some other characters<font size=5>..
 <h3> <a name="parens">Parentheses and Braces  <h3> <a name="parens">Parentheses and Braces
 (delimiters)<font size=5>...</font></a> </h3>  (delimiters)<font size=5>...</font></a> </h3>
   
  <p> LaTeX's <b>\left(</b> and <b>\right)</b> may be written exactly   <p> LaTeX's <b>\left(&nbsp;...&nbsp;\right)</b> and the other 21
        standard LaTeX delimiters are also recognized by mimeTeX.
        And mimeTeX also recognizes an etex-like <b>\middle</b>. &nbsp;
        <!-- may be written exactly
      like that, or may be abbreviated <b>\(</b> and <b>\)</b> in mimeTeX.       like that, or may be abbreviated <b>\(</b> and <b>\)</b> in mimeTeX.
      Not all <b>\left</b> and <b>\right</b> LaTeX delimiters are currently       Not all <b>\left</b> and <b>\right</b> LaTeX delimiters are currently
      available in mimeTeX, but those that are can be written in the usual       available in mimeTeX, but those that are can be written in the usual
Line 1829  and some other characters<font size=5>.. Line 3247  and some other characters<font size=5>..
      that <b>\left\|...\right\|</b> must instead be abbreviated       that <b>\left\|...\right\|</b> must instead be abbreviated
      <b>\=...\=</b> or can be written in full <b>\left\|...\right\|</b>       <b>\=...\=</b> or can be written in full <b>\left\|...\right\|</b>
      as usual.  Also, <b>\left\langle...\right\rangle</b> is abbreviated       as usual.  Also, <b>\left\langle...\right\rangle</b> is abbreviated
      <b>\&lt;...\&gt;</b>&nbsp;. </p>       <b>\&lt;...\&gt;</b>&nbsp;. </p> -->
  <p> Mixing abbreviated and unabbreviated delimiters within a matching       <!-- <p> Mixing abbreviated and unabbreviated delimiters within
      pair is not allowed, e.g., \left(...\) <b>_won't_</b> work.  But you       a matching pair is not allowed, e.g., \left(...\) <b>_won't_</b> work.
      can mix nested pairs, e.g., <b>\left(...\(...\)...\right)</b> will       But you can mix nested pairs, e.g., <b>\left(...\(...\)...\right)</b>
      work as long as the matching delimiters comprising each pair are       will work as long as the matching delimiters comprising each pair are
      either both abbreviated or both unabbreviated. </p>       either both abbreviated or both unabbreviated. </p>
  <p> The complete list of automatically sized delimiters       <p> --> Several of the most common automatically sized delimiters
      available in mimeTeX is </p> <center>       are illustrated below... </p> <center>
        <!-- <table cellpadding=3 cellspacing=0 border=1> -->         <!-- <table cellpadding=3 cellspacing=0 border=1> -->
        <table cellspacing=0 cellpadding=2 border=1>         <table cellspacing=0 cellpadding=2 border=1>
         <tr align=center>          <tr align=center>
            <td> <b>LaTeX or <br> mimeTeX</b> </td>             <!-- <td> <b>LaTeX or <br> mimeTeX</b> </td> -->
            <td> <b>or mimeTeX <br> abbreviation</b> </td>             <td> <b>Delimiter</b> </td>
              <!-- <td> <b>or mimeTeX <br> abbreviation</b> </td> -->
            <td> <b>example...</b> </td>             <td> <b>example...</b> </td>
            <td> <b>...renders</b> </td>             <td> <b>...renders</b> </td>
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left(&nbsp;...&nbsp;\right) </td>             <td> \left(&nbsp;...&nbsp;\right) </td>
            <td> \(&nbsp;...&nbsp;\) </td>             <!-- <td> \(&nbsp;...&nbsp;\) </td> -->
            <td> \left( \frac1{1-x^2} \right)^2 </td>             <td> \left( \frac1{1-x^2} \right)^2 </td>
            <td> <a href="#preview"><img id="parens1" onclick="eqntext('parens1')"             <td> <a href="#preview"><img id="parens1" onclick="eqntext('parens1')"
                  src="../cgi-bin/mimetex.cgi?\Large\left(\frac1{1-x^2}\right)^2"                   src="../cgi-bin/mimetex.cgi?\Large\left(\frac1{1-x^2}\right)^2"
Line 1855  and some other characters<font size=5>.. Line 3274  and some other characters<font size=5>..
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left[&nbsp;...&nbsp;\right] </td>             <td> \left[&nbsp;...&nbsp;\right] </td>
            <td> \[&nbsp;...&nbsp;\] </td>             <!-- <td> \[&nbsp;...&nbsp;\] </td> -->
            <td> \left[ 1+\frac xn \right]^n </td>             <td> \left[ \frac1{\sqrt2}x - y \right]^n </td>
            <td> <a href="#preview"><img id="parens2" onclick="eqntext('parens2')"             <td> <a href="#preview"><img id="parens2" onclick="eqntext('parens2')"
                  src="../cgi-bin/mimetex.cgi?\Large\left[1+\frac xn\right]^n"                   src="../cgi-bin/mimetex.cgi?\Large
                    \left[ \frac1{\sqrt2}x - y \right]^n"
                  alt="" border=0 align=middle></a> </td>                   alt="" border=0 align=middle></a> </td>
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left\{&nbsp;...&nbsp;\right\} </td>             <td> \left\{&nbsp;...&nbsp;\right\} </td>
            <td> \{&nbsp;...&nbsp;\} </td>             <!-- <td> \{&nbsp;...&nbsp;\} </td> -->
            <td> \left\{ 1^2,2^2,3^2,\ldots \right\} </td>             <td> \left\{ 1^2,2^2,3^2,\ldots \right\} </td>
            <td> <a href="#preview"><img id="parens3" onclick="eqntext('parens3')"             <td> <a href="#preview"><img id="parens3" onclick="eqntext('parens3')"
                  src="../cgi-bin/mimetex.cgi?                   src="../cgi-bin/mimetex.cgi?
Line 1873  and some other characters<font size=5>.. Line 3293  and some other characters<font size=5>..
         <tr align=center>          <tr align=center>
            <td> \left\langle &nbsp; ...<br>             <td> \left\langle &nbsp; ...<br>
                 &nbsp; &nbsp; &nbsp; &nbsp; ... &nbsp;\right\rangle </td>                  &nbsp; &nbsp; &nbsp; &nbsp; ... &nbsp;\right\rangle </td>
            <td> \<&nbsp;...&nbsp;\> </td>             <!-- <td> \<&nbsp;...&nbsp;\> </td> -->
            <td> \left\langle \varphi |\hat H|<br>             <td> \left\langle \varphi \middle| \hat H <br>
                 &nbsp; &nbsp; &nbsp; &nbsp; \phi \right\rangle </td>                  &nbsp; &nbsp; &nbsp; &nbsp; \middle| \phi \right\rangle </td>
            <td> <a href="#preview"><img id="parens4" onclick="eqntext('parens4')"             <td> <a href="#preview"><img id="parens4" onclick="eqntext('parens4')"
                  src="../cgi-bin/mimetex.cgi?                   src="../cgi-bin/mimetex.cgi?\Large
                  \Large\left\langle\varphi|\hat H|\phi\right\rangle"                   \left\langle\varphi\middle|\hat H\middle|\phi\right\rangle"
                  alt="" border=0 align=middle></a> </td>                   alt="" border=0 align=middle></a> </td>
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left|&nbsp;...&nbsp;\right| </td>             <td> \left|&nbsp;...&nbsp;\right| </td>
            <td> \|&nbsp;...&nbsp;\| </td>             <!-- <td> \|&nbsp;...&nbsp;\| </td> -->
            <td> \det \left| \begin{array}{cc} 1&2\\<br>             <td> \left| \begin{matrix} a_1 & a_2 \\<br>
                 &nbsp; &nbsp; &nbsp; &nbsp; 3&4 \end{array} \right|</td>                  &nbsp; &nbsp; &nbsp; a_3 & a_4 \end{matrix} \right|</td>
            <td> <a href="#preview"><img id="parens5" onclick="eqntext('parens5')"             <td> <a href="#preview"><img id="parens5" onclick="eqntext('parens5')"
                  src="../cgi-bin/mimetex.cgi?                   src="../cgi-bin/mimetex.cgi?\large
                  \large\det\left|\begin{array}{cc}1&2\\3&4\end{array}\right|"                   \left|\begin{matrix}a_1&a_2\\a_3&a_4\end{matrix}\right|"
                  alt="" border=0 align=middle></a> </td>                   alt="" border=0 align=middle></a> </td>
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left\|&nbsp;...&nbsp;\right\| </td>             <td> \left\|&nbsp;...&nbsp;\right\| </td>
            <td> \=&nbsp;...&nbsp;\= </td>             <!-- <td> \=&nbsp;...&nbsp;\= </td> -->
            <td> \left\|x^2-y^2\right\| </td>             <td> \left\|x^2-y^2\right\| </td>
            <td> <a href="#preview"><img id="parens6" onclick="eqntext('parens6')"             <td> <a href="#preview"><img id="parens6" onclick="eqntext('parens6')"
                  src="../cgi-bin/mimetex.cgi?\large\left\|x^2-y^2\right\|"                   src="../cgi-bin/mimetex.cgi?\large\left\|x^2-y^2\right\|"
                  alt="" border=0 align=middle></a> </td>                   alt="" border=0 align=middle></a> </td>
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left\{&nbsp;...&nbsp;\right<b>.</b> </td>             <td> \left\{&nbsp;...&nbsp;
            <td> \{&nbsp;...&nbsp;\<b>.</b> </td>                  \right<font size="5"><b>.</b></font> </td>
            <td> y=\left\{ \text{this\atop that} \right<b>.</b> </td>             <!-- <td> \{&nbsp;...&nbsp;\<b>.</b> </td> -->
              <td> y=\left\{ \text{this\\that}
                   \right<font size="5"><b>.</b></font> </td>
            <td> <a href="#preview"><img id="parens7" onclick="eqntext('parens7')"             <td> <a href="#preview"><img id="parens7" onclick="eqntext('parens7')"
                  src="../cgi-bin/mimetex.cgi?                   src="../cgi-bin/mimetex.cgi?
                  \large y=\left\{\text{this\atop that}\right."                   \large y=\left\{\text{this\\that}\right."
                  alt="" border=0 align=middle></a> </td>                   alt="" border=0 align=middle></a> </td>
         </tr>          </tr>
         <tr align=center>          <tr align=center>
            <td> \left<b>.</b>&nbsp;...&nbsp;\right\} </td>             <td> \left<font size="5"><b>.</b></font>
            <td> \<b>.</b>&nbsp;...&nbsp;\} </td>                  &nbsp;...&nbsp;\right\} </td>
            <td> \left<b>.</b> \text{this\atop that} \right\}=y </td>             <!-- <td> \<b>.</b>&nbsp;...&nbsp;\} </td> -->
              <td> \left<font size="5"><b>.</b></font>
                   \text{this\\that} \right\}=y </td>
            <td> <a href="#preview"><img id="parens8" onclick="eqntext('parens8')"             <td> <a href="#preview"><img id="parens8" onclick="eqntext('parens8')"
                  src="../cgi-bin/mimetex.cgi?                   src="../cgi-bin/mimetex.cgi?
                  \large\left.\text{this\atop that}\right\}=y"                   \large\left.\text{this\\that}\right\}=y"
                  alt="" border=0 align=middle></a> </td>                   alt="" border=0 align=middle></a> </td>
         </tr>          </tr>
        </table> </center>         </table> </center>
  <p> <b><u>Notes...&nbsp;</u></b> </p>   <p> <b><u>Notes...&nbsp;</u></b> </p>
      <ol compact type=1>       <ol compact type=1>
        <li> The other LaTeX delimiters, i.e., floor's, ceil's,         <!-- <li> The other LaTeX delimiters, i.e., floor's, ceil's,
             arrows, etc, can't yet be sized to fit. </li>              arrows, etc, can't yet be sized to fit. </li> -->
        <li> <a href="#sizes">Size&nbsp;declarations</a> inside any of the         <li> <a href="#sizes">Size&nbsp;declarations</a> inside any of the
             above delimiter pairs affect only the enclosed subexpression,              above delimiter pairs affect only the enclosed subexpression,
             e.g., <b>\Large w=\left(\small x+y\right)+z</b> produces              e.g., <b>\Large w=\left(\small x+y\right)+z</b> produces
             <a href="#preview"><img id="parens9" onclick="eqntext('parens9')"              <a href="#preview"><img id="parens9" onclick="eqntext('parens9')"
             src="../cgi-bin/mimetex.cgi?\Large w=\left(\small x+y\right)+z"              src="../cgi-bin/mimetex.cgi?\Large w=\left(\small x+y\right)+z"
             alt="" border=0 align=middle></a> </li>              alt="" border=0 align=middle></a> </li>
        <li> An abbreviated left delimiter must be paired with the same         <li> An expression may contain as many etex-like <b>\middle</b>'s as
               you like, and in mimeTeX the surrounding <b>\left...\right</b>
               isn't required.  When omitted, the scope of <b>\middle</b> is
               either the entire expression or the &nbsp; <b>{&nbsp;}</b>-enclosed
               subexpression in which the <b>\middle</b>'s occur.  For example, &nbsp;
               <b>\frac{a+1}b&nbsp;\middle/&nbsp;\middle(\frac{c+1}d&nbsp;\middle/&nbsp;\frac{e+1}f\middle)</b>
               &nbsp; renders &nbsp;
               <img src="../cgi-bin/mimetex.cgi?\large
               \frac{a+1}b\middle/\middle(\frac{c+1}d\middle/\frac{e+1}f\middle)"
               border=0 align=middle>. </li>
          <li> In the last two examples, note that mimeTeX recognizes the
               &nbsp; <b>\\</b> &nbsp; in &nbsp; <b>\text{this\\that}</b> &nbsp;
               as a linebreak.  For example, <b>x=1\\y=2\\z=3</b> renders &nbsp;
               <a href="#preview"><img id="parens9b" onclick="eqntext('parens9b')"
               src="../cgi-bin/mimetex.cgi?\small x=1\\y=2\\z=3"
               alt="" border=0 align=middle></a> </li>
          <!-- <li> An abbreviated left delimiter must be paired with the same
             "type" of matching right delimiter, e.g., <b>\[...\]</b> works              "type" of matching right delimiter, e.g., <b>\[...\]</b> works
             whereas <b>\[...\)</b> doesn't work.  To render an "unmatched"              whereas <b>\[...\)</b> doesn't work.  To render an "unmatched"
             pair of delimiters you must use the unabbreviated form, e.g.,              pair of delimiters you must use the unabbreviated form, e.g.,
             <b>\left[...\right)</b> works fine. </li>              <b>\left[...\right)</b> works fine. </li> -->
        <li> Similarly, "unusual" delimiter abbreviations like <b>\)...\(</b>         <!-- <li> Similarly, "unusual" delimiter abbreviations like
             also don't work in mimeTeX.  That is, &nbsp;              <b>\)...\(</b> also don't work in mimeTeX.  That is, &nbsp;
             <b>(,&nbsp;[,&nbsp;&lt;,&nbsp;{,</b> etc, must always be "left"              <b>(,&nbsp;[,&nbsp;&lt;,&nbsp;{,</b> etc, must always be "left"
             in mimeTeX, and &nbsp; <b>),&nbsp;],&nbsp;&gt;,&nbsp;},</b> etc,              in mimeTeX, and &nbsp; <b>),&nbsp;],&nbsp;&gt;,&nbsp;},</b> etc,
             must always be "right".  To render "unusual" delimiter pairs you              must always be "right".  To render "unusual" delimiter pairs you
             must use the unabbreviated form, e.g., <b>\left)...\right[</b>              must use the unabbreviated form, e.g., <b>\left)...\right[</b>
             works fine. </li>              works fine. </li> -->
        <li> <b>\right.</b> may be paired with any of the automatically         <!-- <li> <b>\right.</b> may be paired with any of the automatically
             sized delimiters, and may optionally be abbreviated as <b>\.</b>              sized delimiters, and may optionally be abbreviated as <b>\.</b>
             &nbsp;&nbsp; The same <b>\.</b> also serves as an abbreviation              &nbsp;&nbsp; The same <b>\.</b> also serves as an abbreviation
             for <b>\left.</b> &nbsp;&nbsp; MimeTeX correctly interprets your              for <b>\left.</b> &nbsp;&nbsp; MimeTeX correctly interprets your
Line 1949  and some other characters<font size=5>.. Line 3389  and some other characters<font size=5>..
             <b>y=\{{this\atop&nbsp;that}\.</b> renders the usual useful              <b>y=\{{this\atop&nbsp;that}\.</b> renders the usual useful
             construction              construction
             <a href="#preview"><img id="parens10" onclick="eqntext('parens10')"              <a href="#preview"><img id="parens10" onclick="eqntext('parens10')"
             src="../cgi-bin/mimetex.cgi?y=\{\text{this\atop that}\."              src="../cgi-bin/mimetex.cgi?
             alt="" border=0 align=middle></a> illustrated above. </li>              \normalsize y=\{\text{this\atop that}\."
        <li> However, abbreviated <b>\.</b>'s cannot be nested in mimeTeX,              alt="" border=0 align=middle></a> illustrated above. </li> -->
          <!-- <li> However, abbreviated <b>\.</b>'s cannot be nested in mimeTeX,
             e.g., <b>\[\(...\.\.</b> doesn't work.  Instead, unabbreviated              e.g., <b>\[\(...\.\.</b> doesn't work.  Instead, unabbreviated
             <b>\left.</b> and <b>\right.</b> may be nested, e.g.,              <b>\left.</b> and <b>\right.</b> may be nested, e.g.,
             <b>\left[\left(...\right.\right.</b> works fine. </li>              <b>\left[\left(...\right.\right.</b> works fine. </li> -->
        <li> Simply nested abbreviations like <b>\[\(...\)\]</b> work fine in         <!-- <li> Simply nested abbreviations like <b>\[\(...\)\]</b> work
             mimeTeX.  But abbreviated delimiters like <b>\|...\|</b>              fine in mimeTeX.  But abbreviated delimiters like <b>\|...\|</b>
             and <b>\=...\=</b>, whose left and right forms are              and <b>\=...\=</b>, whose left and right forms are
             identical, cannot be nested.  To nest these delimiters you              identical, cannot be nested.  To nest these delimiters you
             must use the corresponding unabbreviated <b>\left|..\right|</b>              must use the corresponding unabbreviated <b>\left|..\right|</b>
             and <b>\left\|...\right\|</b>. </li>              and <b>\left\|...\right\|</b>. </li> -->
        <li> All <b>\left(...\right)</b>'s (and abbreviated <b>\(...\)</b>'s),         <!-- <li> All <b>\left(...\right)</b>'s (and abbreviated
             etc, must be correctly balanced, which may include being matched              <b>\(...\)</b>'s), etc, must be correctly balanced,
             with <b>\left.</b> or <b>\right.</b> (or abbreviated <b>\.</b>).              which may include being matched with <b>\left.</b>
               or <b>\right.</b> (or abbreviated <b>\.</b>).
             &nbsp;&nbsp; And, to repeat, you may <b>_not_</b> mix              &nbsp;&nbsp; And, to repeat, you may <b>_not_</b> mix
             abbreviated and unabbreviated \(...\right), etc, within a              abbreviated and unabbreviated \(...\right), etc, within a
             matching pair. </li>              matching pair. </li> -->
      </ol>       </ol>
   
  <p> Besides the <b>\left...\right</b> delimiters discussed above,   <p> Besides the <b>\left...\right</b> delimiters discussed above,
Line 1976  and some other characters<font size=5>.. Line 3418  and some other characters<font size=5>..
      and its matching <b>\right<b>.</b></b> &nbsp; delimiter.       and its matching <b>\right<b>.</b></b> &nbsp; delimiter.
      The <b>\right</b> delimiter needn't necessarily be       The <b>\right</b> delimiter needn't necessarily be
      the <b>\right<b>.</b></b> &nbsp; illustrated, e.g.,       the <b>\right<b>.</b></b> &nbsp; illustrated, e.g.,
      <b>\left\int_a^b&nbsp;x^2dx&nbsp;=\frac{x^3}3\right|\nolimits_a^b</b>       <b>\left\int_a^b&nbsp;x^2dx&nbsp;=\frac{x^3}3\right|_a^b</b>
      produces       produces
      <a href="#preview"><img id="parens11" onclick="eqntext('parens11')"       <a href="#preview"><img id="parens11" onclick="eqntext('parens11')"
      src="../cgi-bin/mimetex.cgi?\large       src="../cgi-bin/mimetex.cgi?\large
      \left\int_a^bx^2dx=\frac{x^3}3\right|\nolimits_a^b" border=0 alt=""       \left\int_a^bx^2dx=\frac{x^3}3\right|_a^b" border=0 alt=""
      align=middle></a>.  Except for Opening (TeX class 4) and       align=middle></a>.  <!-- Except for Opening (TeX class 4) and
      Closing (class 5) delimiter characters like <b>(&nbsp;)</b> and       Closing (class 5) delimiter characters like <b>(&nbsp;)</b> and
      <b>[&nbsp;]</b> and <b>\{&nbsp;\}</b>, limits are default-rendered       <b>[&nbsp;]</b> and <b>\{&nbsp;\}</b>, limits are default-rendered
      \displaystyle, which is why <b>\right|\nolimits_a^b</b> was required.       \displaystyle, which is why <b>\right|\nolimits_a^b</b> was required. -->
      You can also write <b>\left\sum</b>, <b>\left\prod</b>,       You can also write <b>\left\sum</b>, <b>\left\prod</b>,
      <b>\left\cup</b>, etc, for many of the symbols in CMEX10.       <b>\left\cup</b>, etc, for many of the symbols in CMEX10 and STMARY10.
      And any symbol that works with <b>\left</b> will also work       And any symbol that works with <b>\left</b> will also work
      with <b>\right</b>&nbsp;.  But mimeTeX abbreviations like &nbsp;       with <b>\right</b>&nbsp;.  <!-- But mimeTeX abbreviations like &nbsp;
      <b>\(...\)</b> &nbsp; for &nbsp; <b>\left(...\right)</b> &nbsp;       <b>\(...\)</b> &nbsp; for &nbsp; <b>\left(...\right)</b> &nbsp;
      won't work with any of these CMEX10 symbols.  You'll have to write       won't work with any of these CMEX10 symbols.  You'll have to write
      the usual unabbreviated <b>\left...\right</b> form. </p>       the usual unabbreviated <b>\left...\right</b> form. --> </p>
   
  <p> Unescaped <b>(&nbsp;)</b>'s and <b>[&nbsp;]</b>'s and <b>|&nbsp;|</b>'s   <p> Unescaped <b>(&nbsp;)</b>'s and <b>[&nbsp;]</b>'s and <b>|&nbsp;|</b>'s
      and <b>&lt;&nbsp;&gt;</b>'s don't need to be balanced since mimeTeX just       and <b>&lt;&nbsp;&gt;</b>'s don't need to be balanced since mimeTeX just
Line 2017  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3459  Raise&nbsp;and&nbsp;rotate, Compose, Abb
 <h3> Accents<font size=5>...</font> </h3>  <h3> Accents<font size=5>...</font> </h3>
       
  <p class="continue">    <p class="continue"> 
      <b>\vec{&nbsp;} \hat{&nbsp;} \bar{&nbsp;} \tilde{&nbsp;} \dot{&nbsp;}</b>       <b>\vec{&nbsp;} \hat{&nbsp;} \bar{&nbsp;} \tilde{&nbsp;} \dot{&nbsp;}
      and <b>\ddot{&nbsp;}</b> are the only accents currently supported,       \ddot{&nbsp}</b> &nbsp; and &nbsp; <b>\acute{&nbsp;} \grave{&nbsp;}
      and they're all "wide".  You can write <b>\widehat{&nbsp;}</b> if you       \breve{&nbsp;} \check{&nbsp}</b> are the only accents currently
      like, but there's absolutely no difference either way.       supported.  The first four are all "wide".  For example, you can write
      <b>\bar{&nbsp;}</b> and <b>\overline{&nbsp;}</b> are identical. <p>       <b>\widehat{&nbsp;}</b> if you like, but there's absolutely no
        difference either way (and <b>\bar{&nbsp;}</b> and
        <b>\overline{&nbsp;}</b> are identical).  The last four accents
        only take a single character argument. <p>
   
    <p> Other accent-like directives available in mimeTeX are &nbsp;
        <b>\underline{&nbsp;} \cancel{&nbsp;} \sout{&nbsp;}</b>, &nbsp;
        as well as &nbsp;
        <b>\overset{&nbsp;}{&nbsp;} &nbsp; \underset{&nbsp;}{&nbsp;}</b> &nbsp;
        and the more ususal &nbsp;
        <b>\overbrace{&nbsp;}^{&nbsp;} &nbsp; \underbrace{&nbsp;}_{&nbsp;}</b>.
        &nbsp; And <b>\not</b> also works on the single character immediately
        following it.  Some of these directives are discussed in more detail
        below. </p>
   
 <h3> <a name="functions">Function names<font size=5>...</font></a> </h3>  <h3> <a name="functions">Function names<font size=5>...</font></a> </h3>
   
Line 2032  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3487  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      also behave as expected, e.g., </p> <center>       also behave as expected, e.g., </p> <center>
         <b>\lim_{n\to\infty}S_n=S</b> &nbsp; produces &nbsp;          <b>\lim_{n\to\infty}S_n=S</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="functions1" onclick="eqntext('functions1')"          <a href="#preview"><img id="functions1" onclick="eqntext('functions1')"
         src="../cgi-bin/mimetex.cgi?3$\lim_{n\to\infty}S_n=S"          src="../cgi-bin/mimetex.cgi?\large\lim_{n\to\infty}S_n=S"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align=middle></a> </center>
   
 <h3> <a name="arrows">long Arrows<font size=5>...</font></a> </h3>  <h3> <a name="arrows">long Arrows<font size=5>...</font></a> </h3>
Line 2057  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3512  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      any white space after the arrow, e.g., <b>f:x\longrightarrow~[0,1]</b>       any white space after the arrow, e.g., <b>f:x\longrightarrow~[0,1]</b>
      produces       produces
      <a href="#preview"><img id="arrows3" onclick="eqntext('arrows3')"       <a href="#preview"><img id="arrows3" onclick="eqntext('arrows3')"
      src="../cgi-bin/mimetex.cgi?f:x\longrightarrow~[0,1]"       src="../cgi-bin/mimetex.cgi?\normalsize f:x\longrightarrow~[0,1]"
      alt="" border=0 align=middle></a>.  Without any intervening white space,       alt="" border=0 align=middle></a>.  Without any intervening white space,
      mimeTeX would have "eaten" the [0,1]. </p>       mimeTeX would have "eaten" the [0,1]. </p>
   
Line 2099  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3554  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      displays super/subscripts in the usual way. </p>       displays super/subscripts in the usual way. </p>
   
 <h3> <a name="raiserotate">\raisebox{&nbsp;}{&nbsp;} and  <h3> <a name="raiserotate">\raisebox{&nbsp;}{&nbsp;} and
 \rotatebox{&nbsp;}{&nbsp;}<font size=5>...</font></a> </h3>  \rotatebox{&nbsp;}{&nbsp;} and \reflectbox[&nbsp;]{&nbsp;}
   <font size=5>...</font></a> </h3>
   
  <p> The <b>\raisebox{<i>height</i>}{<i>expression</i>}</b>   <p> The <b>\raisebox{<i>height</i>}{<i>expression</i>}</b>
      and <b>\rotatebox{<i>angle</i>}{<i>expression</i>}</b>       and <b>\rotatebox{<i>angle</i>}{<i>expression</i>}</b>
      commands help you fine-tune and manipulate mimeTeX renderings.       and <b>\reflectbox[<i>axis</i>]{<i>expression</i>}</b>
      The <b><i>height</i></b> argument is number of pixels, scaled by       commands help you fine-tune and manipulate mimeTeX renderings: </p>
      <a href="#unitlength">\unitlength</a>, and can be positive       <ul>
      or negative.  The <b><i>angle</i></b> argument is number of degrees,         <li> <b>\raisebox</b>'s <b><i>height</i></b> argument is number
      and can also be positive (for clockwise) or negative, but must be a              of pixels, scaled by <a href="#unitlength">\unitlength</a>,
      multiple of 90.  Finally, the <b><i>expression</i></b> can be any              and can be positive or negative. </li>
      valid LaTeX/mimeTeX expression.  For example, mimeTeX's preprocessor         <li> <b>\rotatebox</b>'s <b><i>angle</i></b> argument is number
               of degrees, and can also be positive (for clockwise) or
               negative, but must be a multiple of 90. </li>
          <li> <b>\reflectbox</b>'s optional <b><i>axis</i></b> argument
               defaults to 1 if not given, which reflects horizontally
               (the usual LaTeX behavior), or reflects vertically if
               specified as 2. </li>
          <li> For all three commands, the <b><i>expression</i></b>
               can be any valid LaTeX/mimeTeX expression. </li>
        </ul>
    <p> For example, mimeTeX's preprocessor
      defines the LaTeX <b>?`</b> symbol, an upside-down question       defines the LaTeX <b>?`</b> symbol, an upside-down question
      mark, like </p> <center>       mark, like </p> <center>
         <b>abc\raisebox{-2}{\rotatebox{180}?}def</b> &nbsp; produces &nbsp;          <b>abc\raisebox{-2}{\rotatebox{180}?}def</b> &nbsp; produces &nbsp;
Line 2117  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3583  Raise&nbsp;and&nbsp;rotate, Compose, Abb
         src="../cgi-bin/mimetex.cgi?          src="../cgi-bin/mimetex.cgi?
         \large\rm abc\raiseb{-2}{\rotateb{180}{\LARGE?}}def"          \large\rm abc\raiseb{-2}{\rotateb{180}{\LARGE?}}def"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align=middle></a> </center>
    <p> Using <b>\reflectbox[2]{&nbsp;}</b> instead of
        <b>\rotatebox{180}{&nbsp;}</b> would result in the slightly
        different </p> <center>
           <b>abc\raisebox{-2}{\reflectbox[2]?}def</b> &nbsp; produces &nbsp;
           <a href="#preview"><img id="raiserot2" onclick="eqntext('raiserot2')"
           src="../cgi-bin/mimetex.cgi?
           \large\rm abc\raiseb{-2}{\reflectb[2]{\LARGE?}}def"
           alt="" border=0 align="bottom"></a> </center>
   
 <h3> <a name="compose">\compose{&nbsp;}{&nbsp;}<font size=5>...</font></a></h3>  <h3> <a name="compose">\compose{&nbsp;}{&nbsp;}<font size=5>...</font></a></h3>
   
Line 2124  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3598  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      <b>\compose[<i>offset</i>]{<i>base</i>}{<i>overlay</i>}</b>       <b>\compose[<i>offset</i>]{<i>base</i>}{<i>overlay</i>}</b>
      superimposes the <b><i>overlay</i></b> expression on top of the       superimposes the <b><i>overlay</i></b> expression on top of the
      <b><i>base</i></b> expression, displaying the result.       <b><i>base</i></b> expression, displaying the result.
      Optionally, the overlay is horizontally <b><i>offset</i></b>       The superimposed <b><i>overlay</i></b> is centered, both
      by the specified number of pixels (positive offsets to the right,       horizontally and vertically, on the <b><i>base</i></b> image,
      negative to the left). For example, </p> <center>       with the composite image baseline
         <b>\compose{\LARGE O}{\normalsize c}</b> &nbsp; produces &nbsp;       <!-- the same as the <b><i>base</i></b>. -->
        completely ignored.
        That means the <b><i>base</i></b> remains positioned in your expression
        just as if it had been rendered alone, while the <b><i>overlay</i></b>
        is moved around, vertically as well as horizontally, to accommodate it.
        For example, </p> <center>
           <b>\compose{\LARGE O}{\normalsize c}</b> &nbsp; renders &nbsp;
         <a href="#preview"><img id="compose1" onclick="eqntext('compose1')"          <a href="#preview"><img id="compose1" onclick="eqntext('compose1')"
         src="../cgi-bin/mimetex.cgi?\compose{\LARGE O}{\normalsize c}"          src="../cgi-bin/mimetex.cgi?\compose{\LARGE O}{\normalsize c}"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align="bottom"></a> </center>
   
    <p> Optionally, the <b><i>overlay</i></b> is horizontally
        <b><i>offset</i></b> by the specified number of pixels
        (positive offsets to the right, negative to the left).
        For example, </p> <center>
           <b>\compose[-4]{\LARGE O}{\normalsize c}</b> &nbsp; renders &nbsp;
           <a href="#preview"><img id="compose2" onclick="eqntext('compose2')"
           src="../cgi-bin/mimetex.cgi?\compose[-4]{\LARGE O}{\normalsize c}"
           alt="" border=0 align="bottom"></a> </center>
   
    <p> Vertical offset can be obtained using a <b>\raisebox</b>
        in either the <b><i>base</i></b> or <b><i>overlay</i></b>
        expression, or in both. (Although, note that 
        <b>\compose{\raisebox{10}{<i>base</i>}}{<i>overlay</i>}</b>
        renders identically to
        <b>\raisebox{10}{\compose{<i>base</i>}{<i>overlay</i>}}</b>,
        so applying <b>\raisebox</b> to the <b><i>base</i></b>
        expression is typically unnecessary.)
        Vertical <b><i>overlay</i></b> offset is relative to the
        centered image, as discussed immediately above,
        i.e.,&nbsp;<b>\compose{<i>base</i>}{\raisebox{0}{<i>overlay</i>}}</b>
        has no effect at all, and the <b><i>overlay</i></b> image
        remains centered on the <b><i>base</i></b>.
        For example, </p> <center>
           <b>abc\compose{\LARGE O}{\raisebox{5}{\normalsize c}}def</b>
           &nbsp; renders &nbsp;
           <a href="#preview"><img id="compose3" onclick="eqntext('compose3')"
           src="../cgi-bin/mimetex.cgi?
           abc\compose{\LARGE O}{\raisebox{5}{\normalsize c}}def"
           alt="" border=0 align="bottom"></a>, and <br>
           <b>abc\compose{\raisebox{10}{\LARGE O}}{\raisebox{-20}{\normalsize c}}def</b>
           &nbsp; renders &nbsp;
           <a href="#preview"><img id="compose3" onclick="eqntext('compose3')"
           src="../cgi-bin/mimetex.cgi?abc
           \compose{\raisebox{10}{\LARGE O}}{\raisebox{-20}{\normalsize c}}def"
           alt="" border=0 align="bottom"></a></center>
   
  <p> Separately or in some judicious combination, <b>\compose</b> and   <p> Separately or in some judicious combination, <b>\compose</b> and
      <b>\raisebox</b> and <b>\rotatebox</b> should help you construct       <b>\raisebox</b> and <b>\rotatebox</b> and <b>\reflectbox</b>,
      special symbols not "natively" available with mimeTeX's limited       discussed above, perhaps along with <b>\rule</b> and <b>\eval</b>
      set of built-in font families.  This can be especially useful       discussed immediately below, may help you construct special symbols
      in conjunction with the <b>-DNEWCOMMANDS</b> compile-time       not "natively" available with mimeTeX's limited set of built-in font
        families. This can be especially useful in conjunction with the
        <a href="#newcommands">&#150;DNEWCOMMANDS</a> compile-time
      <a href="#options">option</a> discussed above. </p>       <a href="#options">option</a> discussed above. </p>
   
   <h3> <a name="rule">\rule{&nbsp;}{&nbsp;}<font size=5>...</font></a></h3>
   
    <p class="continue"> 
        <b>\rule{<i>width</i>}{<i>height</i>}</b> behaves in the usual way,
        rendering a black rectangle <b><i>width</i></b> pixels wide and
        <b><i>height</i></b> pixels high, with its base on the established
        baseline.  For example, </p> <center>
           <b>\frac12xyz\rule{10}{20}ghi</b> &nbsp; produces &nbsp;
           <a href="#preview"><img id="rule1" onclick="eqntext('rule1')"
           src="../cgi-bin/mimetex.cgi?\frac12xyz\rule{10}{20}ghi"
           alt="" border=0 align=middle></a> </center>
   
    <p> The mimeTeX version of <b>\rule</b> has an optional
        <b>[<i>lift</i>]</b> argument, so that its full form is
        <b>\rule[<i>lift</i>]{<i>width</i>}{<i>height</i>}</b>.
        <b><i>lift</i></b> moves the rule's baseline by the specified
        number of pixels, up if positive or down if negative.
        For example, </p> <center>
           <b>\frac12xyz\rule[5]{10}{20}ghi</b> &nbsp; produces &nbsp;
           <a href="#preview"><img id="rule2" onclick="eqntext('rule2')"
           src="../cgi-bin/mimetex.cgi?\frac12xyz\rule[5]{10}{20}ghi"
           alt="" border=0 align=middle></a> &nbsp; and <br>
           <b>\frac12xyz\rule[-15]{10}{20}ghi</b> &nbsp; produces &nbsp;
           <a href="#preview"><img id="rule3" onclick="eqntext('rule3')"
           src="../cgi-bin/mimetex.cgi?\frac12xyz\rule[-15]{10}{20}ghi"
           alt="" border=0 align=middle></a> </center>
   
   <h3> <a name="evaluate">\eval{&nbsp;}<font size=5>...</font></a> </h3>
   
    <p class="continue"> mimeTeX can evaluate arithmetic expressions,
        which is a feature intended primarily for use in
        <a href="#newcommands">\newcommand's</a> discussed above.
        Expressions can be built up from the following elements </p>
        <ul>
          <li> digits &nbsp; <b>0</b>-<b>9</b>
            &nbsp; and numbers composed of uninterrupted (no whitespace)
            sequences of digits, </li>
          <li> binary operators &nbsp;
            <b>+</b>,&nbsp;<b>-</b>,&nbsp;<b>*</b>,&nbsp;<b>/</b>,&nbsp;<b>%</b>
            &nbsp; (<b>+</b>&nbsp;and&nbsp;<b>-</b> can be unary, preceding
            the first number in an expression, and&nbsp;<b>%</b>&nbsp;is
            the modulo operator), </li>
          <li> balanced &nbsp; <b>(</b>&nbsp;...&nbsp;<b>)</b>
            &nbsp; parentheses nested to any level (see below), </li>
          <li> whitespace anywhere
            (except between digits comprising a number), </li>
          <li> One additional construction interpreted by <b>\eval{&nbsp;}</b>
            is similar to (but not identical to) the
            <a href="http://wikipedia.org/wiki/Conditional_(programming)#As_a_ternary_operator"
            target="_top">?:&nbsp;conditional</a>, as follows.
            The expression <b>(i?v0:v1:v2:<i>etc</i>)</b>, usually
            parenthesized as illustrated, evaluates to <b>v0</b>
            if <b>i</b> evaluates to <b>0</b>, or evaluates to <b>v1</b>
            if <b>i</b> evaluates to <b>1</b>, etc. If <b>i&nbsp;&lt;&nbsp;0</b>
            then <b>v0</b> is used, and if <b>i</b> is too large, the last
            <b>v</b> is used. All components, <b>i</b> and all <b>v</b>'s,
            can themselves be expressions, even another
            <b>(i?v0:v1:v2:<i>etc</i>)</b>, which in this case must be
            parenthesized. The only situation where parentheses aren't
            required is when <b>i?v0:v1:v2:<i>etc</i></b> comprises
            your entire expression.
            For example, <br> <nobr>&nbsp; &nbsp; &nbsp;
              <b>\eval{1+2?10:11:12:13:14:15}</b> renders
             <a href="#preview"><img id="eval1" onclick="eqntext('eval1')"
             src="../cgi-bin/mimetex.cgi?\large\eval{1+2?10:11:12:13:14:15}"
             alt="" border=0 align=bottom></a></nobr></li>
          <li> and <u>&nbsp;most&nbsp;importantly,&nbsp;</u>
              the built-in variables<br>
              &nbsp; &nbsp; &nbsp; <b>fs</b> for current fontsize and<br>
              &nbsp; &nbsp; &nbsp; <b>unitlength</b> for unitlength<br>
            which provide the capability for useful constructions,
            as follows... </li>
        </ul>
   
    <p> All optional <b>[</b>&nbsp;<b>]</b> and mandatory
        <b>{</b>&nbsp;<b>}</b> numeric arguments for &nbsp;
        <a href="#rule">\rule[lift]{width}{height}</a>, &nbsp;
        <a href="#compose">\compose[offset]{&nbsp;}{&nbsp;}</a>, &nbsp;
        <a href="#raiserotate">\raisebox{height}{&nbsp;}</a>, &nbsp;
        <a href="#raiserotate">\rotatebox{angle}{&nbsp;}</a>, &nbsp; and &nbsp;
        <a href="#arrows">\longarrow[width]</a> &nbsp;
        can be expressions as described above, rather than just
        numeric constants. By using the <b>fs</b> variable, you can
        construct <a href="#newcommands">\newcommand</a>
        expressions that properly scale with font&nbsp;size.
        For example, the <b>\mapsto</b> symbol is not explicitly provided
        in any mimeTeX font, but is instead constructed by the
        embedded <a href="#newcommands">\newcommand</a><br>
          <nobr>&nbsp; &nbsp; &nbsp;<b>
          { "\\mapsto", NULL, "{\\rule[fs/2]{1}{5+fs}\\hspace{-99}\\to}" },</b>
          </nobr><br>
        where \rule's [lift]=fs/2 and {height}=5+fs are scaled by
        font&nbsp;size to render symbols<br>
        &nbsp;
         <a href="#preview"><img id="eval2" onclick="eqntext('eval2')"
         src="../cgi-bin/mimetex.cgi?\small\text\begin{array}{rrl}
         \backslash tiny & fs=\tiny\eval{fs} & \tiny\mapsto \\
         \backslash small & fs=\small\eval{fs} & \small\mapsto \\
         \backslash normalsize & fs=\normal\eval{fs} & \normal\mapsto\\
         \backslash large & fs=\large\eval{fs} & \large\mapsto \\
         etc. & &
         \end{array}" alt="" border=0 align=middle></a><br>
        whose rendering automatically varies appropriately with font&nbsp;size.
        This kind of <a href="#newcommands">\newcommand</a> construction
        is the primary use intended for mimeTeX's expression evaluation feature.
        </p>
   
    <p> But mimeTeX also provides the <b>\eval{<i>expression</i>}</b>
        command to make the expression evaluation feature render
        &quot;visible&quot; results. It's not particularly useful,
        but an expression like &nbsp; <b>1+2+3+4+5=\eval{1+2+3+4+5}</b> &nbsp;
        renders &nbsp;
         <a href="#preview"><img id="eval2" onclick="eqntext('eval2')"
         src="../cgi-bin/mimetex.cgi?\small 1+2+3+4+5=\eval{1+2+3+4+5}"
         alt="" border=0 align="bottom"></a>. </p>
   
    <p> Finally, one little &quot;gotcha&quot; is mimeTeX's
        order&nbsp;of&nbsp;evaluation when interpreting expressions.
        Parentheses are respected as you'd expect. But within
        &nbsp; <b>(</b>...<b>)</b> &nbsp; parentheses, or in an
        unparenthesized expression, mimeTeX finds the first (reading
        from the left) operator, then iteratively evaluates the
        separate subexpressions to that operator's left and to its right,
        and then finally combines those two separate results.
        So an expression like <b>2*3+4</b>&nbsp;renders&nbsp;<b>14</b>,
        and you need to write <b>(2*3)+4</b>&nbsp;to&nbsp;get&nbsp;<b>10</b>.
        </p>
   
   
   <h3> <a name="magstep"> \magstep{&nbsp;} &nbsp; and &nbsp;
        \magbox{&nbsp;}{&nbsp;}<font size=5>...</font></a> </h3>
   
    <p class="continue">
        &nbsp;<b>\magstep{<i>magnification</i>}</b>, placed anywhere
        within an expression, magnifies the entire expression
        by an integer factor <b>1&lt;=<i>magnification</i>&lt;=10</b>
        in both width and height.
        Each single pixel thus becomes a square box, <i>e.g.</i>,
        for <b><i>magnification</i>=2</b> each single pixel becomes
        a four-pixel square box with dimensions&nbsp;<b>2</b>-by-<b>2</b>.
        This compromises mimeTeX's anti-aliasing algorithm,
        and the resulting image is both hazy/blurry and jagged/staircased
        compared to an unmagnified image of the same expression.
        For example, at <b>\LARGE</b> size,<br>
         <nobr> &nbsp; &nbsp; &nbsp &nbsp;     
           <b>f(x)=x^2</b> &nbsp;
           renders &nbsp;
           <a href="#preview"><img id="magbox1" onclick="eqntext('magbox1')"
           src="../cgi-bin/mimetex.cgi?\LARGE f(x)=x^2"
           alt="" border=0 align="absmiddle"></a> &nbsp; and </nobr><br>
         <nobr> &nbsp; &nbsp; &nbsp &nbsp;     
           <b>\magstep{2} f(x)=x^2</b> &nbsp;
           renders &nbsp;
           <a href="#preview"><img id="magbox2" onclick="eqntext('magbox2')"
           src="../cgi-bin/mimetex.cgi?\LARGE\magstep{2} f(x)=x^2"
           alt="" border=0 align="absmiddle"></a>&nbsp;, &nbsp; whereas </nobr><br>
         at mimeTeX's largest &quot;native&quot; font&nbsp;size, <br>
         <nobr> &nbsp; &nbsp; &nbsp &nbsp;     
           <b>\Huge f(x)=x^2</b> &nbsp;
           renders &nbsp;
           <a href="#preview"><img id="magbox3" onclick="eqntext('magbox3')"
           src="../cgi-bin/mimetex.cgi?\HUGE f(x)=x^2"
           alt="" border=0 align="absmiddle"></a>&nbsp;. </nobr><br>
        Nevertheless, if you still want to render images larger than
        mimeTeX's <b>\Huge</b> size, then <b>\magstep{<i>magnification</i>}</b>
        may render almost-acceptable results. </p>
   
    <p> To magnify just part of an expression,
        you can use <b>\magbox{<i>magnification</i>}{<i>expression</i>}</b>,
        which only magnifies each pixel within the enclosed
        <b>{<i>expression</i>}</b>, again
        by an integer factor <b>1&lt;=<i>magnification</i>&lt;=10</b>
        in both width and height, and also adjusts the baseline accordingly.
        But <b>\magbox</b> is applied directly to mimeTeX's black-and-white
        bitmap <u><b><i>&nbsp;before&nbsp;anti-aliasing&nbsp;</i></b></u>.
        At the present time, this virtually completely defeats
        mimeTeX's anti-aliasing algorithm, and the resulting image
        exhibits even more pronounced jagged-line/staircase effects.
        For example, <br>
         <nobr> &nbsp; &nbsp; &nbsp &nbsp;     
           <b>\LARGE f(x)={\magbox{2}{x}}^2</b> &nbsp;
           renders &nbsp;
           <a href="#preview"><img id="magbox5" onclick="eqntext('magbox5')"
           src="../cgi-bin/mimetex.cgi?\LARGE f(x)={\magbox{2}{x}}^2"
           alt="" border=0 align="absmiddle"></a>.<br>
        </p>
   
 <h3> <a name="abbreviations">Abbreviations<font size=5>...</font></a> </h3>  <h3> <a name="abbreviations">Abbreviations<font size=5>...</font></a> </h3>
   
  <p class="continue">    <p class="continue"> 
Line 2172  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3877  Raise&nbsp;and&nbsp;rotate, Compose, Abb
       \Large\color{blue} e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"        \Large\color{blue} e^x=\sum_{n=0}^\infty\frac{x^n}{n!}"
       alt="" border=0 align=middle></a> </center>        alt="" border=0 align=middle></a> </center>
   
 <h3> <a name="squash">&quot;Squash&quot;<font size=5>...</font></a> </h3>  <h3> <a name="smash">&quot;Smash&quot;<font size=5>...</font></a> </h3>
   
  <p> TeX represents characters by boxes, with no idea how ink will be   <p> TeX represents characters by boxes, with no idea how ink will be
      distributed inside.  So an expression like       distributed inside.  So an expression like
      <b>\frac12\int_{a+b+c}^{d+e+f}g(x)dx</b> is typically rendered as &nbsp;       <b>\frac12\int_{a+b+c}^{d+e+f}g(x)dx</b> is typically rendered as &nbsp;
      <a href="#preview"><img id="squash1" onclick="eqntext('squash1')"       <a href="#preview"><img id="smash1" onclick="eqntext('smash1')"
      src="../cgi-bin/mimetex.cgi?\displaystyle       src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
      \nosquash\frac12\int_{a+b+c}^{d+e+f}{g(x)dx}"       \nosmash\frac12\int_{a+b+c}^{d+e+f}{g(x)dx}"
      alt="" border=0 align=middle></a>.       alt="" border=0 align=middle></a>.
      But mimeTeX knows the character shapes of its fonts, and therefore tries       But mimeTeX knows the character shapes of its fonts, and therefore tries
      to remove extra whitespace, rendering the same expression as &nbsp;       to remove extra whitespace, rendering the same expression as &nbsp;
      <a href="#preview"><img id="squash2" onclick="eqntext('squash2')"       <a href="#preview"><img id="smash2" onclick="eqntext('smash2')"
      src="../cgi-bin/mimetex.cgi?\displaystyle       src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
      \squash\frac12\int_{a+b+c}^{d+e+f}{g(x)}dx"       \smash\frac12\int_{a+b+c}^{d+e+f}{g(x)}dx"
      alt="" border=0 align=middle></a> &nbsp; instead. </p>       alt="" border=0 align=middle></a> &nbsp; instead. </p>
   
  <p> Precede any expression with the mimeTeX directive <b>\nosquash</b>   <p> Precede any expression with the mimeTeX directive <b>\nosmash</b>
      to render it without "squashing".  Or compile mimetex.c with the       to render it without "smashing".  Or compile mimetex.c with the
      <b>-DNOSQUASH</b> <a href="#options">option</a> if you prefer       <b>-DNOSMASH</b> <a href="#options">option</a> if you prefer
      the typical TeX behavior as mimeTeX's default.  In this case,       the typical TeX behavior as mimeTeX's default.  In this case,
      precede any expression with <b>\squash</b> to render it "squashed".       precede any expression with <b>\smash</b> to render it "smashed".
      And note that explicit space like <b>\hspace{10}</b>       And note that explicit space like <b>\hspace{10}</b>
      or <b>\;</b>&nbsp;, etc, is never squashed. </p>       or <b>\;</b>&nbsp;, etc, is never smashed. </p>
   
  <p> The scope of <b>\squash</b> and <b>\nosquash</b> is the   <p> The scope of <b>\smash</b> and <b>\nosmash</b> is the
      <b>{&nbsp;}</b>-enclosed subexpression in which the directive occurs.       <b>{&nbsp;}</b>-enclosed subexpression in which the directive occurs.
      For example, if you want the <b><i>g(x)</i></b>&nbsp;part of the       For example, if you want the <b><i>g(x)</i></b>&nbsp;part of the
      preceding example squashed, but not the <b>1/2</b>&nbsp;part,       preceding example smashed, but not the <b>1/2</b>&nbsp;part,
      then the expression       then the expression
      <b>\nosquash\frac12{\squash\int_{a+b+c}^{d+e+f}g(x)dx}</b>       <b>\nosmash\frac12{\smash\int_{a+b+c}^{d+e+f}g(x)dx}</b>
      renders as &nbsp;       renders as &nbsp;
      <a href="#preview"><img id="squash3" onclick="eqntext('squash3')"       <a href="#preview"><img id="smash3" onclick="eqntext('smash3')"
      src="../cgi-bin/mimetex.cgi?\displaystyle       src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
      \nosquash\frac12{\squash\int_{a+b+c}^{d+e+f}{g(x)dx}}"       \nosmash\frac12{\smash\int_{a+b+c}^{d+e+f}{g(x)dx}}"
      alt="" border=0 align=middle></a>.       alt="" border=0 align=middle></a>.
      <!-- Moreover, explicit space like       <!-- Moreover, explicit space like
      <b>\hspace{10}</b> or <b>\;</b>, etc, is never squashed.       <b>\hspace{10}</b> or <b>\;</b>, etc, is never smashed.
      So <b>{\frac12\;\;}\int_{a+b+c}^{d+e+f}g(x)dx</b> renders as &nbsp;       So <b>{\frac12\;\;}\int_{a+b+c}^{d+e+f}g(x)dx</b> renders as &nbsp;
      <a href="#preview"><img id="squash4" onclick="eqntext('squash4')"       <a href="#preview"><img id="smash4" onclick="eqntext('smash4')"
      src="../cgi-bin/mimetex.cgi?\displaystyle       src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
      {\frac12\;\;}\int_{a+b+c}^{d+e+f}{g(x)dx}"       {\frac12\;\;}\int_{a+b+c}^{d+e+f}{g(x)dx}"
      alt="" border=0 align=middle></a>. --> </p>       alt="" border=0 align=middle></a>. --> </p>
   
  <p> For finer-grained control, note that <b>\squash</b> is shorthand   <p> For finer-grained control, note that <b>\smash</b> is shorthand
      for the default <b>\squashmargin{+3}</b> (and <b>\nosquash</b> is       for the default <b>\smashmargin{+3}</b> (and <b>\nosmash</b> is
      shorthand for <b>\squashmargin{0}</b>).  <b>\squashmargin</b>'s value       shorthand for <b>\smashmargin{0}</b>).  <b>\smashmargin</b>'s value
      is the minimum number of pixels between squashed symbols.  The leading       is the minimum number of pixels between smashed symbols.  The leading
      <b>+</b> is optional.  If present, the font size (\tiny=0,...,\LARGE=5)       <b>+</b> is optional.  If present, the font size (\tiny=0,...,\Huge=7)
      is added to the specified minimum.  Compile mimetex.c with the       is added to the specified minimum.  Compile mimetex.c with the
      <b>-DSQUASHMARGIN=<i>n</i></b> <a href="#options">option</a> to change       <b>-DSMASHMARGIN=<i>n</i></b> <a href="#options">option</a> to change
      the default from <b>3</b> to <b><i>n</i></b>.  Compare the preceding       the default from <b>3</b> to <b><i>n</i></b>.  Compare the preceding
      example with the over-squashed <b>\squashmargin{1}</b> &nbsp;       example with the over-smashed <b>\smashmargin{1}</b> &nbsp;
      <a href="#preview"><img id="squash5" onclick="eqntext('squash5')"       <a href="#preview"><img id="smash5" onclick="eqntext('smash5')"
      src="../cgi-bin/mimetex.cgi?\displaystyle       src="../cgi-bin/mimetex.cgi?\normalsize\displaystyle
      \squashmargin1\frac12\int_{a+b+c}^{d+e+f}{g(x)}dx"       \smashmargin1\frac12\int_{a+b+c}^{d+e+f}{g(x)}dx"
      alt="" border=0 align=middle></a> &nbsp; instead. </p>       alt="" border=0 align=middle></a> &nbsp; instead. </p>
   
  <p> Squashing is in "alpha testing" and some expressions still don't look   <p> Smashing is in "beta testing" and some expressions still don't look
      quite right when squashed, e.g., <b>1^2,2^2,3^2,\ldots</b> renders as       quite right when smashed, e.g., <b>1^2,2^2,3^2,\ldots</b> renders as
      <a href="#preview"><img id="squash6" onclick="eqntext('squash6')"       <a href="#preview"><img id="smash6" onclick="eqntext('smash6')"
      src="../cgi-bin/mimetex.cgi?\Large1^2,2^2,3^2,\ldots"       src="../cgi-bin/mimetex.cgi?\Large1^2,2^2,3^2,\ldots"
      alt="" border=0 align=middle></a>.  Just compile with <b>-DNOSQUASH</b>       alt="" border=0 align=middle></a>.  Just compile with <b>-DNOSMASH</b>
      if you come across numerous annoying situations. </p>       if you come across numerous annoying situations. </p>
   
 <h3> <a name="not">\not and \Not and \sout<font size=5>...</font></a> </h3>  <h3> <a name="not">\not and \cancel and \sout<font size=5>...</font></a> </h3>
   
  <p> The usual LaTeX &nbsp; <b>\not</b> &nbsp; "slashes" the single symbol   <p> The usual LaTeX &nbsp; <b>\not</b> &nbsp; "slashes" the single symbol
      following it, e.g., &nbsp; <b>i\not\partial\equiv&nbsp;i\not\nabla</b>       following it, e.g., &nbsp; <b>i\not\partial\equiv&nbsp;i\not\nabla</b>
      &nbsp; produces <a href="#preview">       &nbsp; produces <a href="#preview">
      <img id="not1" onclick="eqntext('not1')"       <img id="not1" onclick="eqntext('not1')"
      src="../cgi-bin/mimetex.cgi?i\not\partial\equiv i\not\nabla"       src="../cgi-bin/mimetex.cgi?\normalsize i\not\partial\equiv i\not\nabla"
      alt="" border=0 align=middle></a>. </p>       alt="" border=0 align=middle></a>. </p>
   
  <p> For arbitrary expressions, mimeTeX provides &nbsp; <b>\Not</b> &nbsp;   <p> For arbitrary expressions, mimeTeX provides &nbsp; <b>\cancel</b> &nbsp;
      which draws a line from the upper-right to lower-left corner of its       which draws a line from the upper-right to lower-left corner of its
      argument, e.g., &nbsp; <b>a\Not{x^2}=bx^{\not3}</b> &nbsp; produces       argument, e.g., &nbsp; <b>a\cancel{x^2}=bx^{\not3}</b> &nbsp; produces
      &nbsp; <a href="#preview"><img id="not2" onclick="eqntext('not2')"       &nbsp; <a href="#preview"><img id="not2" onclick="eqntext('not2')"
      src="../cgi-bin/mimetex.cgi?\large a\Not{x^2}=bx^{\not3}"       src="../cgi-bin/mimetex.cgi?\large a\cancel{x^2}=bx^{\not3}"
      alt="" border=0 align=bottom></a>. </p>       alt="" border=0 align=bottom></a>. </p>
   
  <p> Finally, similar to the <b>ulem.sty</b> package, &nbsp; <b>\sout</b>   <p> Finally, similar to the <b>ulem.sty</b> package, &nbsp; <b>\sout</b>
      &nbsp; draws a horizontal strikeout line through its argument,       &nbsp; draws a horizontal strikeout line through its argument,
      e.g., &nbsp; <b>\sout{abcdefg}</b> &nbsp; produces <a href="#preview">       e.g., &nbsp; <b>\sout{abcdefg}</b> &nbsp; produces <a href="#preview">
      <img id="not3" onclick="eqntext('not3')"       <img id="not3" onclick="eqntext('not3')"
      src="../cgi-bin/mimetex.cgi?\sout{abcdefg}"       src="../cgi-bin/mimetex.cgi?\normalsize\sout{abcdefg}"
      alt="" border=0 align=middle></a>.  MimeTeX's <b>\sout</b> also       alt="" border=0 align=middle></a>.  MimeTeX's <b>\sout</b> also
      takes an optional argument that adjusts the vertical position of its       takes an optional argument that adjusts the vertical position of its
      strikeout line by the specified number of pixels, e.g., &nbsp;       strikeout line by the specified number of pixels, e.g., &nbsp;
      <b>\sout[+2]{abcdefg}</b> produces <a href="#preview">       <b>\sout[+2]{abcdefg}</b> produces <a href="#preview">
      <img id="not4" onclick="eqntext('not4')"       <img id="not4" onclick="eqntext('not4')"
      src="../cgi-bin/mimetex.cgi?\sout[+2]{abcdefg}"       src="../cgi-bin/mimetex.cgi?\normalsize\sout[+2]{abcdefg}"
      alt="" border=0 align=middle></a> &nbsp; and &nbsp;       alt="" border=0 align=middle></a> &nbsp; and &nbsp;
      <b>\sout[-2]{abcdefg}</b> produces       <b>\sout[-2]{abcdefg}</b> produces
      <a href="#preview"><img id="not5" onclick="eqntext('not5')"       <a href="#preview"><img id="not5" onclick="eqntext('not5')"
      src="../cgi-bin/mimetex.cgi?\sout[-2]{abcdefg}"       src="../cgi-bin/mimetex.cgi?\normalsize\sout[-2]{abcdefg}"
      alt="" border=0 align=middle></a>. </p>       alt="" border=0 align=middle></a>. </p>
   
   
Line 2285  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 3990  Raise&nbsp;and&nbsp;rotate, Compose, Abb
        <tr> <td align="left">   <b>\begin{matrix}</b>        </td>         <tr> <td align="left">   <b>\begin{matrix}</b>        </td>
             <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>              <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>
             <td align="left">   <b>\end{matrix}</b>          </td> </tr>              <td align="left">   <b>\end{matrix}</b>          </td> </tr>
          <tr> <td align="left">   <b>\begin{tabular}</b>       </td>
               <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>
               <td align="left">   <b>\end{tabular}</b>         </td> </tr>
        <tr> <td align="left">   <b>\begin{pmatrix}</b>       </td>         <tr> <td align="left">   <b>\begin{pmatrix}</b>       </td>
             <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>              <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>
             <td align="left">   <b>\end{pmatrix}</b>         </td> </tr>              <td align="left">   <b>\end{pmatrix}</b>         </td> </tr>
Line 2306  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4014  Raise&nbsp;and&nbsp;rotate, Compose, Abb
        <tr> <td align="left">   <b>\begin{align}</b>         </td>         <tr> <td align="left">   <b>\begin{align}</b>         </td>
             <td align="center"> <b>a&=b \\ c&=d \\ etc</b>   </td>              <td align="center"> <b>a&=b \\ c&=d \\ etc</b>   </td>
             <td align="left">   <b>\end{align}</b>           </td> </tr>              <td align="left">   <b>\end{align}</b>           </td> </tr>
          <tr> <td align="left">   <b>\begin{cases}</b>         </td>
               <td align="center"> <b>a&b \\ c&d \\ etc</b>     </td>
               <td align="left">   <b>\end{cases}</b>           </td> </tr>
        <tr> <td align="left">   <b>\begin{gather}</b>        </td>         <tr> <td align="left">   <b>\begin{gather}</b>        </td>
             <td align="center"> <b>a \\ b \\ etc</b>         </td>              <td align="center"> <b>a \\ b \\ etc</b>         </td>
             <td align="left">   <b>\end{gather}</b>          </td> </tr>              <td align="left">   <b>\end{gather}</b>          </td> </tr>
Line 2348  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4059  Raise&nbsp;and&nbsp;rotate, Compose, Abb
   
  <p> The default font size is unchanged by <b>\array{&nbsp;}</b>, but you   <p> The default font size is unchanged by <b>\array{&nbsp;}</b>, but you
      can explicitly control it in the usual way, e.g.,       can explicitly control it in the usual way, e.g.,
      <b>{\large\begin{matrix}...\end{matrix}}</b> renders the entire array       <b>{\Large\begin{matrix}...\end{matrix}}</b> renders the entire array
      in font size 3.  In addition, any <b>&...&</b> cell may contain font       in font size 4.  In addition, any <b>&...&</b> cell may contain font
      size declarations which are always local to that cell,       size declarations which are always local to that cell,
      e.g., <b>&\fs{-1}...&</b> renders that one cell one font size smaller       e.g., <b>&\fs{-1}...&</b> renders that one cell one font size smaller
      than current. </p>       than current. </p>
Line 2536  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4247  Raise&nbsp;and&nbsp;rotate, Compose, Abb
             (50,35){\circle(50,45;34)} %%lower lip%% &nbsp; }</b></font></p>              (50,35){\circle(50,45;34)} %%lower lip%% &nbsp; }</b></font></p>
   <center>    <center>
    <a href="#preview"><img id="circleline2" onclick="eqntext('circleline2')"     <a href="#preview"><img id="circleline2" onclick="eqntext('circleline2')"
    src="../cgi-bin/mimetex.cgi?\unitlength{.6}\picture(100){     src="../cgi-bin/mimetex.cgi?\normalsize\unitlength{.6}\picture(100){
    (50,50){\circle(99)} (20,55;50,0;2){\fs{+1}\hat\bullet} (50,40){\bullet}     (50,50){\circle(99)} (20,55;50,0;2){\fs{+1}\hat\bullet} (50,40){\bullet}
    (50,35){\circle(50,25;34)} (50,35){\circle(50,45;34)}}"     (50,35){\circle(50,25;34)} (50,35){\circle(50,45;34)}}"
    alt="" border=0 align=middle></a><br>Have a nice day!</center>     alt="" border=0 align=middle></a><br>Have a nice day!</center>
Line 2564  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4275  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      in LaTeX, and won't be discussed further.  Short discussions       in LaTeX, and won't be discussed further.  Short discussions
      of some other commands follow. </p>       of some other commands follow. </p>
   
 <h3> <a name="stackrel">\stackrel{&nbsp;}{&nbsp;} and  <h3> <a name="stackrel">\overset{&nbsp;}{&nbsp;} or 
 \relstack{&nbsp;}{&nbsp;}<font size=5>...</font></a> </h3>  \stackrel{&nbsp;}{&nbsp;} &nbsp; and &nbsp;
   \underset{&nbsp;}{&nbsp;} or \relstack{&nbsp;}{&nbsp;}
   <font size=5>...</font></a> </h3>
   
  <p class="continue">   <p class="continue">
      <b>\stackrel{&nbsp;}{&nbsp;}</b> behaves as usual in LaTeX,       <b>\stackrel{&nbsp;}{&nbsp;}</b> behaves as usual in LaTeX,
      rendering its first argument one font size smaller and centered above       rendering its first argument one font size smaller and centered above
      its second.  And the amsmath-style <b>\overset{&nbsp;}{&nbsp;}</b> is       its second.  And the amsmath-style <b>\overset{&nbsp;}{&nbsp;}</b> is
      identical.  For example, </p> <center>       identical.  For example, </p> <center>
      <b>"\vec x\stackrel{\rm def}=(x_1\ldots x_n)"</b>       <b>"\vec x\overset{\rm def}=(x_1\ldots x_n)"</b>
      &nbsp; produces &nbsp;       &nbsp; produces &nbsp;
         <a href="#preview"><img id="stackrel1" onclick="eqntext('stackrel1')"          <a href="#preview"><img id="stackrel1" onclick="eqntext('stackrel1')"
         src="../cgi-bin/mimetex.cgi?          src="../cgi-bin/mimetex.cgi?
         \Large\vec x\,\stackrel{\small\rm def}=          \Large\vec x\,\overset{\small\rm def}=
         \,(x_1\ldots x_n)" alt="" border=0 align=middle></a> </center>          \,(x_1\ldots x_n)" alt="" border=0 align=middle></a> </center>
   
  <p> "Conversely" to <b>\stackrel{&nbsp;}{&nbsp;}</b>, mimeTeX provides   <p> "Conversely" to <b>\stackrel{&nbsp;}{&nbsp;}</b>, mimeTeX provides
Line 2586  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4299  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      first argument one font size smaller and centered below its second.       first argument one font size smaller and centered below its second.
      For example, the <b>\log</b> function name doesn't treat       For example, the <b>\log</b> function name doesn't treat
      limits like <b>\lim_</b>, but you can write, for example, </p> <center>       limits like <b>\lim_</b>, but you can write, for example, </p> <center>
         <b>"\relstack{\log}{\rm base 2}32=5"</b> &nbsp; to render &nbsp;          <b>"\underset{\rm base 2}\log32=5"</b> &nbsp; to render &nbsp;
         <a href="#preview"><img id="stackrel2" onclick="eqntext('stackrel2')"          <a href="#preview"><img id="stackrel2" onclick="eqntext('stackrel2')"
         src="../cgi-bin/mimetex.cgi?          src="../cgi-bin/mimetex.cgi?
         \Large\relstack\log{\small\rm base 2}32\,=\,5"          \Large\underset{\small\rm base 2}\log32\,=\,5"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align=middle></a> </center>
   
  <p> MimeTeX's <b>\limits</b> provides an easier but non-standard   <p> MimeTeX's <b>\limits</b> provides an easier but non-standard
Line 2612  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4325  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      the usual <b>\fbox{<i>expression</i>}</b> command, e.g., </p> <center>       the usual <b>\fbox{<i>expression</i>}</b> command, e.g., </p> <center>
         <b>"\fbox{x=\frac12}"</b> &nbsp; produces &nbsp;          <b>"\fbox{x=\frac12}"</b> &nbsp; produces &nbsp;
         <a href="#preview"><img id="fbox1" onclick="eqntext('fbox1')"          <a href="#preview"><img id="fbox1" onclick="eqntext('fbox1')"
         src="../cgi-bin/mimetex.cgi?4$\fbox{x=\frac12}"          src="../cgi-bin/mimetex.cgi?\Large\fbox{x=\frac12}"
         alt="" border=0 align=middle></a> </center>          alt="" border=0 align=middle></a> </center>
   
  <p> You can also write <b>\fbox[<i>width</i>]{<i>expression</i>}</b>   <p> You can also write <b>\fbox[<i>width</i>]{<i>expression</i>}</b>
Line 2620  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4333  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      <b>\fbox[<i>width</i>][<i>height</i>]{<i>expression</i>}</b>       <b>\fbox[<i>width</i>][<i>height</i>]{<i>expression</i>}</b>
      to explicitly set both width and height. </p>       to explicitly set both width and height. </p>
   
   <h3> <a name="today">\today and \calendar<font size=5>...</font></a> </h3>
   
    <p class="continue"> <b>\today</b> &nbsp; renders &nbsp;
           <a href="#preview"><img id="today1" onclick="eqntext('today1')"
           src="../cgi-bin/mimetex.cgi?\normalsize\today"
           border=0 align=middle></a> &nbsp;
        in the usual LaTeX text&nbsp;mode way.
        That's <b>\today</b>'s default format#1.  MimeTeX has
        an optional format argument so that, for example, &nbsp;
        <b>\blue\today[2]</b> &nbsp; renders &nbsp;
           <a href="#preview"><img id="today2" onclick="eqntext('today2')"
           src="../cgi-bin/mimetex.cgi?\normalsize\blue\today[2]"
           border=0 align=middle></a>, &nbsp;
        showing both date and time.  And &nbsp;
        <b>\red\today[3]</b> &nbsp; renders &nbsp;
           <a href="#preview"><img id="today3" onclick="eqntext('today3')"
           src="../cgi-bin/mimetex.cgi?\normalsize\red\today[3]"
           border=0 align=bottom></a>,
        &nbsp; showing time only. </p>
   
    <p> To accommodate time zones, you may also write, for example, &nbsp;
        <b>\small\blue\today[2,+3]</b>, &nbsp; which renders &nbsp;
           <a href="#preview"><img id="today4" onclick="eqntext('today4')"
           src="../cgi-bin/mimetex.cgi?\small\blue\today[2,+3]"
           border=0 align=middle></a>, &nbsp;
        adding three hours to format#2.
        The arguments may be in either order. The time zone increment
        must always be preceded by either <b>+</b>&nbsp;or&nbsp;<b>-</b>,
        and must be in the range <b>-</b>23&nbsp;to&nbsp;<b>+</b>23. </p>
   
    <p class="continue"> <b>\calendar</b> &nbsp; renders a calendar for
        the current month, as illustrated by the left-hand image below.
        For a different month, the optional argument &nbsp
        <b>\small\blue\calendar[2001,9]</b> &nbsp; renders the right-hand
        image, for the requested year and month.  Years must be
        1973<b>...</b>2099 and months must be 1<b>...</b>12. </p>
        <center>
           <a href="#preview"><img id="today5" onclick="eqntext('today5')"
           src="../cgi-bin/mimetex.cgi?\normalsize\calendar"
           border=0 align=middle> </a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
           <a href="#preview"><img id="today6" onclick="eqntext('today6')"
           src="../cgi-bin/mimetex.cgi?\small\blue\calendar[2001,9]"
           border=0 align=middle> </a> </center>
   
    <p> The default calendar emphasizes the current day of the current month,
        while any other month emphasizes no day.  Day emphasis is controlled
        by an optional third argument.  &nbsp; <b>\calendar[0,0,1]</b> &nbsp;
        emphasizes the first day of the current month, and
        &nbsp; <b>\calendar[2001,9,11]</b> &nbsp; emphasizes the eleventh
        day of that month.  &nbsp; <b>\calendar[0,0,99]</b> &nbsp;
        renders the current month with no day emphasized. </p>
   
 <h3> <a name="input">\input{&nbsp;}<font size=5>...</font></a> </h3>  <h3> <a name="input">\input{&nbsp;}<font size=5>...</font></a> </h3>
   
  <p class="continue">   <p class="continue">
Line 2635  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4400  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      In any case, if <b><i>filename</i></b> isn't found, then       In any case, if <b><i>filename</i></b> isn't found, then
      <b>\input</b> tries to read <b><i>filename</i>.tex</b> instead.</p>       <b>\input</b> tries to read <b><i>filename</i>.tex</b> instead.</p>
   
    <p> And for further security, <b>\input{&nbsp;}</b> is disabled by default
        unless mimeTeX is compiled with either the <b>-DINPUTOK</b> or
        <b>-DINPUTPATH</b> or <b>-DINPUTREFERER</b>
        <a href="#options">compile&nbsp;option</a> discussed above.
        When it's disabled, the command  <b>\input{<i>filename</i>}</b>
        renders the error message
        <b>[\input{<i>filename</i>}&nbsp;not&nbsp;permitted]</b>&nbsp;. </p>
   
  <p> MimeTeX also supports the optional form   <p> MimeTeX also supports the optional form
      <b>\input{<i>filename:tag</i>}</b>.  In this case,       <b>\input{<i>filename:tag</i>}</b>.  In this case,
      <b><i>filename</i></b> is read as before, but only those characters       <b><i>filename</i></b> is read as before, but only those characters
Line 2659  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4432  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      the <b>\counter</b> command, Unix "touch" and "chmod" those files       the <b>\counter</b> command, Unix "touch" and "chmod" those files
      so they're mimeTeX readable and writable. </p>       so they're mimeTeX readable and writable. </p>
   
    <p> Also as with <b>\input</b>, for security <b>\counter</b> is
        disabled by default unless mimeTeX is compiled with either
        the <b>-DINPUTOK</b> or the <b>-DCOUNTEROK</b>
        <a href="#options">compile&nbsp;option</a>
        (notice that <b>-DINPUTOK</b> also enables <b>\counter</b>).
        If you've compiled mimeTeX with <b>\counter</b> enabled,
        then it behaves as <nobr>follows...</nobr> </p>
   
  <p> If <b><i>counterfile</i></b> isn't readable and writable,   <p> If <b><i>counterfile</i></b> isn't readable and writable,
      then the <b>\counter</b> command always displays       then the <b>\counter</b> command always displays
      <b>1<sup><u>st</u></sup></b>.  Otherwise, it maintains a       <b>1<sup><u>st</u></sup></b>.  Otherwise, it maintains a
Line 2686  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4467  Raise&nbsp;and&nbsp;rotate, Compose, Abb
  <p> Somewhat more detailed log information can be accumulated in   <p> Somewhat more detailed log information can be accumulated in
      the optional <b><i>logfile</i></b>.  If you provide that       the optional <b><i>logfile</i></b>.  If you provide that
      filename, mimeTeX writes a line to it of the form       filename, mimeTeX writes a line to it of the form
      <b>2004-09-20:12:59:33pm&nbsp;&lt;<i>tag</i>&gt;=99&nbsp;192.168.1.1&nbsp;<i>http_referer</i></b>       <b>2008-09-07:12:59:33pm&nbsp;&lt;<i>tag</i>&gt;=99&nbsp;192.168.1.1&nbsp;<i>http_referer</i></b>
      containing a timestamp, the counter tag and its current value,       containing a timestamp, the counter tag and its current value,
      and the user's IP address and http_referer page if they're       and the user's IP address and http_referer page if they're
      available. </p>       available. </p>
Line 2700  Raise&nbsp;and&nbsp;rotate, Compose, Abb Line 4481  Raise&nbsp;and&nbsp;rotate, Compose, Abb
      unless/until you "touch" and "chmod" counters.txt (and, optionally,       unless/until you "touch" and "chmod" counters.txt (and, optionally,
      counters.log) in your mimetex.cgi directory. </p>       counters.log) in your mimetex.cgi directory. </p>
   
   <h3> <a name="environment">\environment
   <font size=5>...</font></a> </h3>
    <p> Submitting the expression &nbsp; <b>\environment</b> &nbsp;
        to mimeTeX renders </p> <center>
          <img id="environ1"
          src="../cgi-bin/mimetex.cgi?\nocaching\environment"
          align="middle" border=0> </center>
    <p class="continue"> displaying the http environment variables
        known to mimeTeX.  This is primarily a programming aid,
        showing information available to mimeTeX that might facilitate
        future enhancements. </p>
   
    <p> As with <b>\input</b> and <b>\counter</b> above,
        for security <b>\environment</b> is
        disabled by default unless mimeTeX is compiled with either
        the <b>-DINPUTOK</b> or the <b>-DENVIRONOK</b>
        <a href="#options">compile&nbsp;option</a>
        (notice that <b>-DINPUTOK</b> also enables <b>\environment</b>). </p>
   
   
 <h2> <a name="exceptions"> (IIIh) Other Exceptions  <h2> <a name="exceptions"> (IIIh) Other Exceptions
 to LaTeX Syntax &nbsp; </a> </h2>  to LaTeX Syntax &nbsp; </a> </h2>
Line 2716  to LaTeX Syntax &nbsp; </a> </h2> Line 4516  to LaTeX Syntax &nbsp; </a> </h2>
      e.g., you must write <b>\sqrt{\frac\alpha\beta}</b>, etc. </p>       e.g., you must write <b>\sqrt{\frac\alpha\beta}</b>, etc. </p>
   
   
   <h2> <a name="messages"> (IIIi) mimeTeX Errors
   and Messages &nbsp; </a> </h2>
   
   <h3> mimeTeX Errors<font size=5>...</font> </h3>
   
    <p> Any (La)TeX error is typically also a mimeTeX error.
        However, mimeTeX has no command line interface or
        <b>.</b>log file for reporting errors.  Its only
        communication with you is through the mimeTeX image
        rendered by your browser.  So error messages are embedded
        in that image whenever feasible.  For example,
        suppose you want to see
         <a href="#preview"><img id="messages1" onclick="eqntext('messages1')"
         src="../cgi-bin/mimetex.cgi?\normalsize\alpha\beta\gamma\delta"
         border=0 align=bottom></a>, but you mistakenly type
         &nbsp; <b>\alpha\bethe\gamma\delta</b> &nbsp; instead.
        Then the image rendered is
         <a href="#preview"><img id="messages2" onclick="eqntext('messages2')"
         src="../cgi-bin/mimetex.cgi?\normalsize\alpha\bethe\gamma\delta"
         border=0 align=bottom></a>, indicating the unrecognized
        <b>[\bethe?]</b> where you wanted to type &nbsp; <b>\beta</b> &nbsp;
        and hoped to see
         <a href="#preview"><img id="messages3" onclick="eqntext('messages3')"
         src="../cgi-bin/mimetex.cgi?\normalsize\bf\beta"
         border=0 align=bottom></a>.
        If your expression contains some unprintable character
        (meaning any character mimeTeX has no bitmap for),
        then just &nbsp;
         <a href="#preview"><img id="messages4" onclick="eqntext('messages4')"
         src="../cgi-bin/mimetex.cgi?\small\bf[?]"
         border=0 align=bottom></a> &nbsp; is displayed in the
        corresponding position. </p>
   
    <p> The preceding example illustrates a pretty trivial error.
        Any non-trivial errors in your expression are likely to
        go unrecognized and unreported by mimeTeX, and to render
        unexpected images.  While checking your input expression
        for syntax errors, keep in mind the following points
        about mimeTeX's behavior: </p>
        <ul>
          <li> An unmatched left brace &nbsp; <b>{</b> &nbsp; is matched
               by mimeTeX with a "phantom" right brace &nbsp; <b>}</b> &nbsp;
               that's imagined to be at the end of your expression. </li>
          <li> Likewise, an unmatched &nbsp; <b>\left(</b>, &nbsp;
               or <b>\left\{</b> &nbsp; or <b>\left\</b><i>anything</i>, &nbsp;
               is matched by mimeTeX with a "phantom" &nbsp; <b>\right.</b>
               &nbsp; at the end of your expression. </li>
          <li> On the other hand, an unmatched right brace &nbsp; <b>}</b>
               &nbsp; is displayed in place, as if you had typed \rbrace. </li>
          <li> But an unmatched &nbsp; <b>\right\</b><i>anything</i> &nbsp;
               is interpreted as an abbreviation for <b>\</b>rightarrow
               followed by <b>\</b><i>anything</i>.  For example, &nbsp;
               <b>\leff(&nbsp;abc&nbsp;\right)&nbsp;def</b> &nbsp; renders &nbsp;
                 <a href="#preview"><img id="messages5"
                 onclick="eqntext('messages5')"
                 src="../cgi-bin/mimetex.cgi?\small\leff(abc\right)def"
                 border=0 align=bottom></a>. </li>
        </ul> <!-- p class="continue">
        </p -->
   
   <h3> mimeTeX Messages<font size=5>...</font> </h3>
   
   <!--
    <p> The special mimeTeX directive &nbsp; <b>\version</b> &nbsp;
        displays the following information </p>
        <center>
          <a href="#preview"><img id="messages6" onclick="eqntext('messages6')"
          src="../cgi-bin/mimetex.cgi?\version"
          border=0 align=middle> </a> </center>
   -->
    <p> The latest release of mimeTeX is version
          <a href="#preview"><img id="messages11" onclick="eqntext('messages11')"
          src="../cgi-bin/mimetex.cgi?\small\versionnumber"
          alt="" border=0 align="bottom"></a>
        which was last revised
          <a href="#preview"><img id="messages12" onclick="eqntext('messages12')"
          src="../cgi-bin/mimetex.cgi?\small\revisiondate"
          alt="" border=0 align="bottom"></a>.
        The special mimeTeX directive &nbsp; <b>\version</b> &nbsp;
        displays that same information, </p>
         <center>
          <a href="#preview"><img id="messages13" onclick="eqntext('messages13')"
          src="../cgi-bin/mimetex.cgi?\version"
          alt="" border=0 align=middle></a> </center>
    <p> To check that your own release of mimeTeX is current,
        type a url into your browser's locator window something like <br>
           &nbsp; &nbsp; &nbsp; &nbsp;
        <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?\version</b> <br>
        which will display the version and revision date of
        mimeTeX installed on your server. </p>
   
   
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 SECTION IV.  APPENDICES  SECTION IV.  APPENDICES
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
Line 2739  SECTION IV.  APPENDICES Line 4631  SECTION IV.  APPENDICES
   (supplied with your mimeTeX distribution). </p>    (supplied with your mimeTeX distribution). </p>
   
 <p> The final output from each such sequence of three runs  <p> The final output from each such sequence of three runs
   (metafont &gt; gftype -i &gt; gfuntype) gives mimeTeX the information    (metafont &gt; gftype -i &gt; gfuntype) gives mimeTeX the
   it needs to render one particular font family at one particular    bitmap information it needs to render one particular font
   size.  The file <b>texfonts.h</b> supplied with your mimeTeX    family at one particular size.  The file <b>texfonts.h</b>
   distribution collects the output from 36 such (sequences of)    supplied with your mimeTeX distribution collects the output
   runs, representing six font families at six sizes each. </p>    from 72 such (sequences of) runs, representing nine font
     families at eight sizes each. </p>
   
 <p> This collection of information in  texfonts.h  is  <p> This collection of information in &nbsp; texfonts.h &nbsp; is
   "wired" into mimeTeX through tables maintained in <b>mimetex.h</b>.    "wired" into mimeTeX through tables maintained in <b>mimetex.h</b>.
   To change mimeTeX's fonts, you'll have to first modify (or totally    To change mimeTeX's fonts, you'll have to first modify (or totally
   replace) texfonts.h using your own gfuntype output, and then    replace) texfonts.h using your own gfuntype output, and then
Line 2762  SECTION IV.  APPENDICES Line 4655  SECTION IV.  APPENDICES
 <p> Running <b>metafont</b> to generate a <b>.gf</b> file from <b>.mf</b>  <p> Running <b>metafont</b> to generate a <b>.gf</b> file from <b>.mf</b>
   source will usually be your very first step.  A typical such run    source will usually be your very first step.  A typical such run
   might be </p>    might be </p>
  <center><b>mf '\mode=onetz; mag=magstep(.5); input cmmi10'</b></center>   <!-- <b>mf '\mode=onetz; mag=magstep(.5); input cmmi10'</b> --> <center>
    <b>mf '\mode=preview; mag=magstep(-16.393225); input cmmi10'</b></center>
 <p class="continue"> which in this case generates output file  <p class="continue"> which in this case generates output file
   <b>cmmi10.131gf</b> (which is mimeTeX's font size 3 for the    <b>cmmi10.131gf</b> (which is mimeTeX's font size 3 for the
   cmmi family). </p>    cmmi family). </p>
Line 2788  SECTION IV.  APPENDICES Line 4682  SECTION IV.  APPENDICES
   Then pull all the output files into one big <b>texfonts.h</b> file    Then pull all the output files into one big <b>texfonts.h</b> file
   (or write a small texfonts.h which just #include's them all). </p>    (or write a small texfonts.h which just #include's them all). </p>
   
 <p> For your information, the 36 sequences of runs represented  <p> For your information, the 72 sequences of runs represented
   in the texfonts.h file supplied with your mimeTeX distribution    in the texfonts.h file supplied with your mimeTeX distribution
   correspond to the following six inital metafont runs for cmr10 </p>    correspond to the following eight inital metafont runs for cmr10 </p>
   <pre>   size=0 (.83gf)   mf '\mode=eighthre; input cmr10'  <!-- 
         1 (.100gf)  mf '\mode=nextscrn; input cmr10'          1 (.100gf)  mf '\mode=nextscrn; input cmr10'
         2 (.118gf)  mf '\mode=lview; input cmr10'          2 (.118gf)  mf '\mode=lview; input cmr10'
         3 (.131gf)  mf '\mode=onetz; mag=magstep(.5); input cmr10'          3 (.131gf)  mf '\mode=onetz; mag=magstep(.5); input cmr10'
         4 (.160gf)  mf '\mode=itoh; input cmr10'          4 (.160gf)  mf '\mode=itoh; input cmr10'
         5 (.180gf)  mf '\mode=lqlores; input cmr10'</pre>          5 (.180gf)  mf '\mode=lqlores; input cmr10'
   -->
     <pre>   size=0 (.83gf)   mf '\mode=eighthre; input cmr10'
           1 (.100gf)  mf '\mode=preview; mag=magstep(-17.874274); input cmr10'
           2 (.118gf)  mf '\mode=preview; mag=magstep(-16.966458); input cmr10'
           3 (.131gf)  mf '\mode=preview; mag=magstep(-16.393225); input cmr10'
           4 (.160gf)  mf '\mode=preview; mag=magstep(-15.296391); input cmr10'
           5 (.180gf)  mf '\mode=preview; mag=magstep(-14.650373); input cmr10'
           6 (.210gf)  mf '\mode=preview; mag=magstep(-13.804885); input cmr10'
           7 (.250gf)  mf '\mode=preview; mag=magstep(-12.848589); input cmr10'</pre>
   <p class="continue">    <p class="continue">
   Then ditto for the five other font families cmmi10, cmsy10, cmex10,    Then ditto for the eight other font families cmmi10, cmmib10, cmsy10,
   rsfs10, bbold10.  All the subsequent gftype and gfuntype runs just    cmex10, bbold10, rsfs10, stmary10 and wncyr10.  And to generate other
   follow the usual format described above. </p>    <b>.</b><i>dpi</i><b>gf</b> font sizes, calculate magsteps &nbsp;
     <img src="../cgi-bin/mimetex.cgi?\normalsize\frac{\log(dpi/2602)}{\log1.2}"
     alt="" align=middle border=0>. &nbsp;  All the subsequent gftype and
     gfuntype runs just follow the standard format described above. </p>
   
 <p> To incorporate all this font information you just generated into  <p> To incorporate all this font information you just generated into
   mimeTeX, edit your <b>mimetex.h</b> file and find the table that looks    mimeTeX, edit your <b>mimetex.h</b> file and find the table that looks
   something like </p><pre>    static fontfamily aafonttable[] =    something like </p><pre>static fontfamily aafonttable[] = {
      { /* -------------------------------------------------------------   /* ----------------------------------------------------------------------------------------
           family   size=0,       1,       2,       3,       4,      5      family    size=0,        1,        2,        3,        4,        5,        6,        7
        ------------------------------------------------------------- */   ----------------------------------------------------------------------------------------- */
        {  CMR10, {  cmr83,  cmr100,  cmr118,  cmr131,  cmr160,  cmr180 } },   {   CMR10,{   cmr83,   cmr100,   cmr118,   cmr131,   cmr160,   cmr180,   cmr210,   cmr250}},
        { CMMI10, { cmmi83, cmmi100, cmmi118, cmmi131, cmmi160, cmmi180 } },   {  CMMI10,{  cmmi83,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,  cmmi210,  cmmi250}},
        { CMSY10, { cmsy83, cmsy100, cmsy118, cmsy131, cmsy160, cmsy180 } },   { CMMIB10,{ cmmib83, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180, cmmib210, cmmib250}},
        { CMEX10, { cmex83, cmex100, cmex118, cmex131, cmex160, cmex180 } },   {  CMSY10,{  cmsy83,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,  cmsy210,  cmsy250}},
        { RSFS10, { rsfs83, rsfs100, rsfs118, rsfs131, rsfs160, rsfs180 } },   {  CMEX10,{  cmex83,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,  cmex210,  cmex250}},
        {BBOLD10, {bbold83,bbold100,bbold118,bbold131,bbold160,bbold180 } },   {  RSFS10,{  rsfs83,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},
        {   -999, {   NULL,    NULL,    NULL,    NULL,    NULL,    NULL } }   { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},
      } ; /* --- end-of-fonttable[] --- */</pre><p class="continue">   {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},
   Note the 36 names <b>cmr83...bbold180</b> in the table.  These must   {   CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180, wncyr210, wncyr250}},
    {    -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}
   } ; /* --- end-of-fonttable[] --- */</pre><p class="continue">
     Note the 72 names <b>cmr83...wncyr250</b> in the table.  These must
   correspond to (or must be changed to) the names following the <b>-n</b>    correspond to (or must be changed to) the names following the <b>-n</b>
   switch you specified for your  gfuntype  runs. </p>    switch you specified for your &nbsp; gfuntype &nbsp; runs. </p>
   
 <p> If you want more than six font sizes, first build up texfonts.h  <p> If you want more than eight font sizes, first build up texfonts.h
   with all the necessary information.  Then change LARGESTSIZE (and    with all the necessary information.  Then change LARGESTSIZE (and
   probably NORMALSIZE) in mimetex.h, and finally edit the above aafonttable[]    probably NORMALSIZE) in mimetex.h, and finally edit the above aafonttable[]
   by extending the columns in each row up to your largest size. </p>    by extending the columns in each row up to your largest size. </p>
Line 2831  SECTION IV.  APPENDICES Line 4740  SECTION IV.  APPENDICES
   after reviewing mimetex.h).  A new row would be required,    after reviewing mimetex.h).  A new row would be required,
   for example, to make another font available in mimeTeX. </p>    for example, to make another font available in mimeTeX. </p>
   
   <p> One small problem with the above procedure is that the default
     &nbsp; gftype &nbsp; program supplied with most TeX distributions
     can't emit the long lines needed to display mimeTeX's larger font sizes.
     <a href="http://www.forkosh.com/gftype.zip"
     target="_top">gftype.zip</a>&nbsp;contains a statically linked linux
     executable modified to emit the necessary long lines.
     It may or may not run on your intel linux machine.
     If not, you'll need to compile your own version from source.
     The following instructions are for Unix/Linux: <br> &nbsp; &nbsp;
     &nbsp; &nbsp; First, download both 
     <!-- http://www.ctan.org/tex-archive/systems/web2c/web-7.5.3.tar.gz -->
     <a href="http://www.forkosh.com/web-7.5.3.tar.gz"
     target="_top">web-7.5.3.tar.gz</a> and
     <!-- http://www.ctan.org/tex-archive/systems/web2c/web2c-7.5.3.tar.gz -->
     <a href="http://www.forkosh.com/web2c-7.5.3.tar.gz"
     target="_top">web2c-7.5.3.tar.gz</a>
     <!-- or more recent versions. --> (note: these files are no longer
     explicitly archived by&nbsp;<a href="http://www.ctan.org/"
     target="_top">ctan</a>, having been superceded
     by&nbsp;<a href="http://www.ctan.org/tex-archive/systems/texlive"
     target="_top">texlive</a>&nbsp;sources, so the preceding two links
     point to copies kept on my site, www.forkosh.com).
     Then &nbsp; untar &nbsp; both gzipped tar files,
     &nbsp; cd&nbsp;web2c-7.5.3/ &nbsp; and run &nbsp; ./configure &nbsp;
     and &nbsp; make &nbsp; in the usual way (make may fail before
     completion if you don't have all needed fonts installed,
     but it will create and compile gftype.c before failing).  Now edit
     &nbsp; texk/web2c/gftype.c&nbsp; and notice three lines very near the top
     that &nbsp; #define&nbsp;maxrow&nbsp;(79) &nbsp and similarly for
     maxcol and linelength. Change all three 79's to 1024, and
     then re-run make. The new &nbsp; texk/web2c/gftype &nbsp; executable
     image can emit the long lines needed for mimeTeX's larger font sizes. </p>
   
   <p> Finally, the Unix/Linux bash shell script
     <a href="http://www.forkosh.com/texfonts.sh"
     target="_top">texfonts.sh</a> generates file &nbsp; texfonts.h &nbsp;
     containing the information for all 72 mimeTeX fonts discussed above
     (and, optionally, an extra 1200dpi cmr font used to test mimeTeX's
     supersampling algorithm).  You'll need to understand and edit this
     script to use it meaningfully.  But it helps automate mimeTeX's font
     generation procedure in case you want to experiment with different
     fonts.  (Note that metafont emits a complaint while generating the
     83dpi rsfs font.  Just press &lt;CR&gt; and it completes
     successfully.) </p>
   
   
 <h2> <a name="makeraster"> (IVb) mimeTeX's make_raster()  <h2> <a name="makeraster"> (IVb) mimeTeX's make_raster()
 function &nbsp; </a> </h2>  function &nbsp; </a> </h2>
Line 2855  function &nbsp; </a> </h2> Line 4809  function &nbsp; </a> </h2>
   
 <p> Cut-and-paste the above sample code from this file to, say,  <p> Cut-and-paste the above sample code from this file to, say,
  mimedemo.c (and fix the brackets around stdio.h).  Then compile <br>   mimedemo.c (and fix the brackets around stdio.h).  Then compile <br>
    &nbsp; &nbsp; &nbsp; &nbsp; cc mimedemo.c mimetex.c -lm -o mimedemo <br>     &nbsp; &nbsp; &nbsp; &nbsp;
      cc -DTEXFONTS mimedemo.c mimetex.c -lm -o mimedemo <br>
  and run it from your unix shell command line like <br>   and run it from your unix shell command line like <br>
    &nbsp; &nbsp; &nbsp; &nbsp; ./mimedemo &nbsp; &quot;x^2+y^2&quot; </p>     &nbsp; &nbsp; &nbsp; &nbsp; ./mimedemo &nbsp; &quot;x^2+y^2&quot; </p>
     
Line 2910  function &nbsp; </a> </h2> Line 4865  function &nbsp; </a> </h2>
  }</pre>   }</pre>
   
 <p> Cut-and-paste as before, compile like <br>  <p> Cut-and-paste as before, compile like <br>
    &nbsp; &nbsp; &nbsp; &nbsp; cc mimedemo.c mimetex.c gifsave.c     &nbsp; &nbsp; &nbsp; &nbsp;
    -lm -o mimedemo <br>     cc -DTEXFONTS mimedemo.c mimetex.c gifsave.c -lm -o mimedemo <br>
  and run it like the first example, but this time you may want to redirect   and run it like the first example, but this time you may want to redirect
  stdout <br>   stdout <br>
    &nbsp; &nbsp; &nbsp; &nbsp; ./mimedemo &nbsp; &quot;x^2+y^2&quot;     &nbsp; &nbsp; &nbsp; &nbsp; ./mimedemo &nbsp; &quot;x^2+y^2&quot;
Line 3194  Footer across bottom of page Line 5149  Footer across bottom of page
 <hr size=4>  <hr size=4>
 <table> <tr>  <table> <tr>
  <td> <font size=3 color="maroon"> <b>   <td> <font size=3 color="maroon"> <b>
   <nobr>Copyright <font size=5>&copy;</font> 2002-2005,    <nobr>Copyright <font size=5>&copy;</font> 2002-2012,
   <a href="http://www.forkosh.com">John Forkosh Associates, Inc.</a>    <a href="http://www.forkosh.com">John Forkosh Associates, Inc.</a>
   </nobr><br>    </nobr><br>
   email: <a href="mailto:john&#64;forkosh&#46;com">john&#64;forkosh&#46;com</a>    email: <a href="mailto:john&#64;forkosh&#46;com">john&#64;forkosh&#46;com</a>

Removed from v.1.1  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>