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

version 1.2, 2006/03/24 23:08:33 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 82  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 117  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 125  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>
   
        <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">       <a href="http://www.forkosh.com/mimetex.zip">
      <!-- jfa <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> -->
      <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 136  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> <br><br>  </font></b> <br><br>
Line 169  Table of Contents Line 280  Table of Contents
    <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="#compile">    a. Compile </a><br>      <a href="#compile">    a. Compile </a><br>
Line 185  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 194  Table of Contents Line 307  Table of Contents
     <br><a href="#remarks"> &nbsp; Remarks &nbsp; </a> </font> </td>      <br><a href="#remarks"> &nbsp; Remarks &nbsp; </a> </font> </td>
  </tr>   </tr>
 </table>  </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  + Installation and Usage Summary
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 <br>  <!-- br -->
   <center>
 <table border="0">  <table border="0">
 <tr> <!-- banner -->  <tr> <!-- banner -->
  <td align="left">   <td align="left">
Line 219  Table of Contents Line 352  Table of Contents
        <b> &nbsp; &nbsp; unzip mimetex.zip</b> <br>         <b> &nbsp; &nbsp; unzip mimetex.zip</b> <br>
        <b> &nbsp; &nbsp; cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi</b>         <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>         <br>Now just <b>mv</b> mimetex.cgi to your <b>cgi-bin/</b>
        directory, <br> and you're all done. </font></td></tr>         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 colspan="2"> <font size="2">&nbsp;</font> </td></tr>
     <tr><td align="right" valign="top">      <tr><td align="right" valign="top">
       <a href="#introduction">Usage</a>: &nbsp; &nbsp; </td>        <a href="#introduction">Usage</a>: &nbsp; &nbsp; </td>
Line 251  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?\normalsize            &#150;lm &#150;o mimetex.cgi</b></nobr> <br>
     f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"      <nobr> &nbsp; &nbsp; &nbsp; &nbsp;
     alt="" border=0 align=middle></a> wherever you put that &lt;img&gt tag.         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
     create separate gif files for each converted expression. </p>      create separate gif files for each converted expression.
       (But you can enable image caching with mimeTeX's
 <p> There's also no inherent need to repeatedly write the cumbersome      &nbsp; <b>-DCACHEPATH=\&quot;<i>path/</i>\&quot;</b> &nbsp;
     &lt;img&gt; tag illustrated above.  You can write your own custom      <a href="#options">compile&nbsp;option</a>.)
     tags, or write a wrapper script around mimeTeX to simplify the      &nbsp; And there's no inherent need to repeatedly write the
     notation. For example,      cumbersome &lt;img&gt; tag illustrated above.
     <a href="http://www.pmichaud.com/wiki/PmWiki/PmWiki" target="_top">      You can write your own
     PmWiki</a> already has a      <a href="#scripts">wrapper&nbsp;scripts</a>,
     <a href="http://www.pmichaud.com/wiki/Cookbook/MimeTeX" target="_top">      discussed below, around mimeTeX to simplify the notation. </p>
     mimeTeX&nbsp;plugin</a> that lets you just write  
     <b>{$&nbsp;f(x)=\int_{-\infty}^xe^{-t^2}dt&nbsp;$}</b>  
     to obtain the same image.  Or, if you're using  
     <a href="http://www.phpbb.com" target="_top">phpBB</a>, then  
     <a href="http://www.themathforum.com" target="_top">Jameson</a>  
     contributed the following one-line mod that lets you just write  
     <b>[tex]&nbsp;...&nbsp;[/tex]</b> to obtain mimeTeX images: </p>  
     <pre class="medium">   #--------[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>  
   
   <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 298  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?\normalsize      '\small f(x)=\int\limits_{-\infty}^xe^{-t^2}dt'); ?>,
     f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"      with arbitrary mean
     alt="" border=0 align=middle></a>, with arbitrary mean      <?php mimetextag('imageI3','\normalsize\mu'); ?> and standard deviation
     <a href="#preview"><img id="imageI3" onclick="eqntext('imageI3')"      <?php mimetextag('imageI4','\normalsize\sigma'); ?>,
     src="../cgi-bin/mimetex.cgi?\large\mu" alt="" border=0 align=middle></a>      and at mimeTeX's next larger font size, looks like </p>
     and standard deviation  
     <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 338  SECTION I.  INTRODUCTION Line 475  SECTION I.  INTRODUCTION
     target="_top">www.tug.org/interest.html</a> and in the      target="_top">www.tug.org/interest.html</a> and in the
     <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>
Line 368  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>.
Line 397  QUICKSTART Line 578  QUICKSTART
            &nbsp; renders &nbsp;             &nbsp; renders &nbsp;
            <a href="#preview"> <img id="imageBu" onclick="eqntext('imageBu')"             <a href="#preview"> <img id="imageBu" onclick="eqntext('imageBu')"
            src="../cgi-bin/mimetex.cgi?\large a+\small b+c"             src="../cgi-bin/mimetex.cgi?\large a+\small b+c"
            alt="" border=0 align=bottom></a>, &nbsp; whereas &nbsp;             alt="" border=0 style="Vertical-Align:-2px"></a>, &nbsp;
            "<b>\small&nbsp;a+{\Large&nbsp;b+}c</b>" &nbsp; renders &nbsp;             whereas &nbsp; "<b>\small&nbsp;a+{\Large&nbsp;b+}c</b>" &nbsp;
              renders &nbsp;
            <a href="#preview"> <img id="imageBv" onclick="eqntext('imageBv')"             <a href="#preview"> <img id="imageBv" onclick="eqntext('imageBv')"
            src="../cgi-bin/mimetex.cgi?\small a+{\Large b+}c"             src="../cgi-bin/mimetex.cgi?\small a+{\Large b+}c"
            alt="" border=0 align=bottom></a>. </li>             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 432  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 LaTeX expression, use the sample provided,       Now enter your own LaTeX expression, use the sample provided,
Line 480  QUICKSTART Line 709  QUICKSTART
      <a href="#preview"><img id="imageIA3" onclick="eqntext('imageIA3')"       <a href="#preview"><img id="imageIA3" onclick="eqntext('imageIA3')"
      src="../cgi-bin/mimetex.cgi?\normalsize       src="../cgi-bin/mimetex.cgi?\normalsize
      f(x)=\int\limits_{-\infty}^x e^{-t^2}dt"       f(x)=\int\limits_{-\infty}^x e^{-t^2}dt"
      alt="" border=0 align=middle></a> if you submit the sample expression       alt="" border=0 style="Vertical-Align:-11px"></a> &nbsp;
      already in the box. </p>       if you submit the sample expression already in the box.
        Or see <a href="#messages">error&nbsp;messages</a> whenever an
  <p> And the &lt;img&gt; tag to embed this same integral anywhere       unexpected image is displayed instead. &nbsp; And (as discussed
      in your own document is </p>       above) the &lt;img&gt; tag to embed this same integral anywhere
 <pre> &lt;img&nbsp;src="../cgi-bin/mimetex.cgi?\large f(x)=\int_{-\infty}^xe^{-t^2}dt"       in your own document is <br>
   alt="" border=0 align=middle&gt;</pre>         <nobr><b> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
             &lt;img&nbsp;
  <p> <!-- You can see numerous additional examples illustrating html            src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt" &gt;</b></nobr><br>
      &lt;img&gt; tags using mimeTeX by viewing this page's source. -->       </p>
      The typical mimeTeX &lt;img&gt; tag has the form </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   Error messages<font size=5>...</font></a> </h3>
             program mimeTeX to recognize valid LaTeX syntax.   <p> Any (La)TeX error is typically also a mimeTeX error.
             One particular "gotcha" 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>, or       but you mistakenly type &nbsp; <b>\alpha\bethe\gamma\delta</b> &nbsp;
             <b>\frac\alpha{\sqrt\beta}</b>, etc.       instead.  Then the image rendered is
             The <a href="#reference">Syntax&nbsp;Reference</a> section        <a href="#preview"><img id="messages2" onclick="eqntext('messages2')"
             contains much additional information.  <!-- Or you can just begin        src="../cgi-bin/mimetex.cgi?\normalsize\alpha\bethe\gamma\delta"
             playing with mimeTeX for yourself to see if it might have        alt="" border=0 align="bottom"></a>
             any potential usefulness for you. --> </li>       indicating the unrecognized <b>[\bethe?]</b> where you wanted to type
        <li> Besides such exceptions, mimeTeX       &nbsp; <b>\beta</b> &nbsp; and had hoped to see &nbsp;
             also provides various LaTeX extensions. <!-- , i.e., LaTeX errors        <a href="#preview"><img id="messages3" onclick="eqntext('messages3')"
             permitted by mimetex. -->  For example, font size        src="../cgi-bin/mimetex.cgi?\normalsize\bf\beta"
             directives like <b>\Large</b> are permitted within mimeTeX        alt="" border=0 align="bottom"></a><b>.</b> &nbsp;
             math&nbsp;mode expressions, but flagged as errors by LaTeX.       If your expression contains some unprintable character
             <!-- But note well: if you take advantage of mimeTeX extensions,       (meaning any character mimeTeX has no bitmap for),
             your math&nbsp;mode expressions will no longer be accepted by       then just &nbsp;
             standard TeX engines. --> </li> </ul>        <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 532  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 563  EXAMPLES Line 852  EXAMPLES
       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">
Line 671  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}
     \large\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}}"
     alt="" border=0 align=middle></a> </td>      alt="" border=0 align=middle></a> </td>
   <td>    <td>
Line 692  EXAMPLES Line 981  EXAMPLES
         <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 703  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.cccc}&1&2&\cdots&n\\           \begin{array}{c.cccc}&1&2&\cdots&n\\
          \hdash1&a_{11}&a_{12}&\cdots&a_{1n}\\           \hdash1&a_{11}&a_{12}&\cdots&a_{1n}\\
          2&a_{21}&a_{22}&\cdots&a_{2n}\\           2&a_{21}&a_{22}&\cdots&a_{2n}\\
Line 724  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 757  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 790  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,29){\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 831  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>  <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,       available with mimeTeX.  All symbols and sizes from cmr, cmmi,
      cmmib (use <b>\mathbf{&nbsp;}</b>), cmsy, cmex, bbold (use       cmmib (use <b>\mathbf{&nbsp;}</b>), cmsy, cmex, bbold (use
      <b>\mathbb{&nbsp;}</b>), rsfs (use <b>\mathscr{&nbsp;}</b>),       <b>\mathbb{&nbsp;}</b>), rsfs (use <b>\mathscr{&nbsp;}</b>),
      and stmary should be available, but they're not all shown.       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 7=\Huge, 6=\huge,       3=\large and 2=\normalsize (not shown are 7=\Huge, 6=\huge,
Line 912  to the larger size in \displaystyle mode Line 1203  to the larger size in \displaystyle mode
 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, cmr, and stmary 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 \\  1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE \\
 1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&  1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&
 \subsetpluseq&\supsetpluseq&\Yup&\Ydown}"  \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>  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 951  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 975  SECTION II.  BUILDING MIMETEX Line 1562  SECTION II.  BUILDING MIMETEX
     <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
         <a href="http://www.forkosh.com/mimetex.zip">          <a href="http://www.forkosh.com/mimetex.zip">
         <!-- jfa <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 1003  SECTION II.  BUILDING MIMETEX Line 1590  SECTION II.  BUILDING MIMETEX
   <ul>    <ul>
    <li> Download and unzip      <li> Download and unzip 
         <a href="http://www.forkosh.com/mimetex.zip">          <a href="http://www.forkosh.com/mimetex.zip">
         <!-- jfa <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.          mimetex.zip</a> in any convenient working directory.
         Your working directory should now contain <center>          Your working directory should now contain <center>
         <table cellpadding=0 cellspacing=0>          <table cellpadding=0 cellspacing=0>
          <tr><td width=100>README</td> <td>mimeTeX release notes</td></tr>           <tr><td width=100>README</td> <td>mimeTeX release notes</td></tr>
          <tr><td>LICENSE</td>    <td>GPL license, under which you may use           <tr><td>COPYING</td>    <td>GPL license, under which you may use
                                      mimeTeX</td></tr>                                       mimeTeX</td></tr>
          <tr><td>mimetex.c</td>  <td>mimeTeX source program and all required           <tr><td>mimetex.c</td>  <td>mimeTeX source program and all required
                                      functions</td></tr>                                       functions</td></tr>
Line 1068  SECTION II.  BUILDING MIMETEX Line 1655  SECTION II.  BUILDING MIMETEX
         <a href="http://www.shitalshah.com">Shital&nbsp;Shah</a>, and          <a href="http://www.shitalshah.com">Shital&nbsp;Shah</a>, and
         download <a href="http://www.shitalshah.com/dev/eq2img_all.zip">          download <a href="http://www.shitalshah.com/dev/eq2img_all.zip">
         eq2img_all.zip</a> containing Shital's latest code. </li>          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> -->
Line 1137  Ascii dump of bitmap image... Line 1734  Ascii dump of bitmap image...
       <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?x^2+y^2</b> <br>        <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?x^2+y^2</b> <br>
      which should display &nbsp;       which should display &nbsp;
      <img src="../cgi-bin/mimetex.cgi?\normalsize x^2+y^2" alt="" border=0       <img src="../cgi-bin/mimetex.cgi?\normalsize x^2+y^2" alt="" border=0
      align=middle> &nbsp; in the upper-left corner of your window,       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>       just like clicking this link does, which tests my mimetex.cgi, <br>
      &nbsp; &nbsp; &nbsp; &nbsp;       &nbsp; &nbsp; &nbsp; &nbsp;
       <a href="http://www.forkosh.com/cgi-bin/mimetex.cgi?x^2+y^2"        <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>        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?       If you see the same &nbsp; <img src="../cgi-bin/mimetex.cgi?
      \normalsize x^2+y^2" alt="" border=0 align=middle> &nbsp; image       \normalsize x^2+y^2" alt="" border=0 style="Vertical-Align:-3px"> &nbsp;
      from the <b><i>yourdomain</i></b> link, then you've completed       image from the <b><i>yourdomain</i></b> link, then you've completed
      a successful mimeTeX installation. </p>       a successful mimeTeX installation. </p>
   
  <p> If you don't see the image, then your installation failed.   <p> If you don't see the image, then your installation failed.
Line 1230  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>        <dt><b>-DDEFAULTSIZE=<i>n</i></b> </dt>
Line 1249  Ascii dump of bitmap image... Line 1856  Ascii dump of bitmap image...
            <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?             src="../cgi-bin/mimetex.cgi?
            \normalsize\displaystyle\int\nolimits_a^b"             \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 1262  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
Line 1313  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>-DNOREFMAXLEN=<i>n</i></b> </dt>
          <dd> The environment variable HTTP_REFERER identifies the
              domain a request originates from.  If HTTP_REFERER is not
              defined, then NOREFMAXLEN is the maximum length query&nbsp;string
              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 1324  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 1355  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>-DSMASHMARGIN=<i>n</i> or <br>        <dt><b>-DSMASHMARGIN=<i>n</i> &nbsp; &nbsp; &nbsp; <i>-or-</i><br>
           -DNOSMASH</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">
Line 1373  Ascii dump of bitmap image... Line 2111  Ascii dump of bitmap image...
            number of pixels between smashed symbols (default is 3),             number of pixels between smashed symbols (default is 3),
            compile with <b>-DSMASHMARGIN=<i>n</i></b>.             compile with <b>-DSMASHMARGIN=<i>n</i></b>.
            See <a href="#smash">Smash</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 1387  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>
   
   
Line 1403  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 1468  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 fontsize   0-7, font size.  Font size can also be specified       -s fontsize   0-7, font size.  Font size can also be specified
           within the expression by a directive, e.g., \Large f(x)=x^2            within the expression by a directive, e.g., \Large f(x)=x^2
Line 1555  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?\small\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 1574  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?\large{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 1668  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 to       in <b>mimetex.c</b> <br>
        &nbsp; &nbsp; &nbsp; &nbsp;
        I haven't exhaustively checked all the name-number matchings for
        the thousand-or-so 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> Generally speaking, I've tried to
      encode the cmr10, cmmi10, cmmib10, cmsy10, cmex10, bbold10, rsfs10,       encode the cmr10, cmmi10, cmmib10, cmsy10, cmex10, bbold10, rsfs10,
      and stmary10 families with "names", e.g., <b>\alpha \beta       stmary10 and wncyr10 families with "names", e.g., <b>\alpha \beta
      \forall \sqcup</b>, etc, identical to your LaTeX expectations.       \forall \sqcup</b>, etc, identical to your LaTeX expectations.
      For example, the calligraphic symbols in cmsy10 are accessed by       For example, the calligraphic symbols in cmsy10 are accessed by
      writing <b>\mathcal{A} \mathcal{B} \mathcal{XYZ}</b>.  Similarly,       writing <b>\mathcal{A} \mathcal{B} \mathcal{XYZ}</b>.  Similarly,
      write <b>\mathbf{A}</b> for the cmmib fonts, write <b>\mathscr{A}</b>       write <b>\mathbf{A}</b> for the cmmib fonts, write <b>\mathscr{A}</b>
      for rsfs10, and write <b>\mathbb{R}</b> for bbold10.       for rsfs10, write <b>\mathbb{R}</b> for bbold10, and write
      And see stmaryrd.dvi or stmaryrd.sty, supplied with most LaTeX       <b>{\cyr&nbsp;Khrushchev}</b> or <b>\cyr{Khrushchev}</b> to see
      distributions, for the names of the stmary10 symbols. </p>       <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 1693  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 1706  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>
   
Line 1824  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 1953  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?\normalsize anything at all"          src="../cgi-bin/mimetex.cgi?\normalsize anything at all"
Line 1967  and some other characters<font size=5>.. Line 3218  and some other characters<font size=5>..
         src="../cgi-bin/mimetex.cgi?\normalsize\textit{anything at all}"          src="../cgi-bin/mimetex.cgi?\normalsize\textit{anything at all}"
         alt="" 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 2165  and some other characters<font size=5>.. Line 3428  and some other characters<font size=5>..
      <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;
Line 2291  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 2309  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 2316  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 2477  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 2498  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 2756  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 2778  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 2879  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 2903  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 2930  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 2944  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 2960  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 2987  SECTION IV.  APPENDICES Line 4635  SECTION IV.  APPENDICES
   bitmap information it needs to render one particular font    bitmap information it needs to render one particular font
   family at one particular size.  The file <b>texfonts.h</b>    family at one particular size.  The file <b>texfonts.h</b>
   supplied with your mimeTeX distribution collects the output    supplied with your mimeTeX distribution collects the output
   from 56 such (sequences of) runs, representing seven font    from 72 such (sequences of) runs, representing nine font
   families at eight sizes each. </p>    families at eight sizes each. </p>
   
 <p> This collection of information in &nbsp; texfonts.h &nbsp; is  <p> This collection of information in &nbsp; texfonts.h &nbsp; is
Line 3034  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 64 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 eight inital metafont runs for cmr10 </p>    correspond to the following eight inital metafont runs for cmr10 </p>
 <!--   <!-- 
Line 3053  SECTION IV.  APPENDICES Line 4701  SECTION IV.  APPENDICES
         6 (.210gf)  mf '\mode=preview; mag=magstep(-13.804885); 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>          7 (.250gf)  mf '\mode=preview; mag=magstep(-12.848589); input cmr10'</pre>
   <p class="continue">    <p class="continue">
   Then ditto for the seven other font families cmmi10, cmmib10, cmsy10,    Then ditto for the eight other font families cmmi10, cmmib10, cmsy10,
   cmex10, bbold10, rsfs10, stmary10.  And to generate other    cmex10, bbold10, rsfs10, stmary10 and wncyr10.  And to generate other
   <b>.</b><i>dpi</i><b>gf</b> font sizes, calculate magsteps &nbsp;    <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}"    <img src="../cgi-bin/mimetex.cgi?\normalsize\frac{\log(dpi/2602)}{\log1.2}"
   alt="" align=middle border=0>. &nbsp;  All the subsequent gftype and    alt="" align=middle border=0>. &nbsp;  All the subsequent gftype and
Line 3074  SECTION IV.  APPENDICES Line 4722  SECTION IV.  APPENDICES
  {  RSFS10,{  rsfs83,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},   {  RSFS10,{  rsfs83,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},
  { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},   { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},
  {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},   {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},
    {   CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180, wncyr210, wncyr250}},
  {    -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}   {    -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}
 } ; /* --- end-of-fonttable[] --- */</pre><p class="continue">  } ; /* --- end-of-fonttable[] --- */</pre><p class="continue">
   Note the 64 names <b>cmr83...stmary250</b> in the table.  These must    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 &nbsp; gfuntype &nbsp; runs. </p>    switch you specified for your &nbsp; gfuntype &nbsp; runs. </p>
   
Line 3093  SECTION IV.  APPENDICES Line 4742  SECTION IV.  APPENDICES
   
 <p> One small problem with the above procedure is that the default  <p> One small problem with the above procedure is that the default
   &nbsp; gftype &nbsp; program supplied with most TeX distributions    &nbsp; gftype &nbsp; program supplied with most TeX distributions
   can't emit the long lines needed to display mimeTeX's larger font    can't emit the long lines needed to display mimeTeX's larger font sizes.
   sizes.  You'll need to compile your own version from source.    <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;    The following instructions are for Unix/Linux: <br> &nbsp; &nbsp;
   &nbsp; &nbsp; First, download both     &nbsp; &nbsp; First, download both 
   <a href="http://www.ctan.org/tex-archive/systems/web2c/web-7.5.3.tar.gz"    <!-- 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    target="_top">web-7.5.3.tar.gz</a> and
   <a href="http://www.ctan.org/tex-archive/systems/web2c/web2c-7.5.3.tar.gz"    <!-- http://www.ctan.org/tex-archive/systems/web2c/web2c-7.5.3.tar.gz -->
   target="_top">web2c-7.5.3.tar.gz</a>,    <a href="http://www.forkosh.com/web2c-7.5.3.tar.gz"
   or more recent versions.  Then &nbsp; untar &nbsp; them both,    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;    &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    and &nbsp; make &nbsp; in the usual way (make may fail before
   completion if you don't have all needed fonts installed,    completion if you don't have all needed fonts installed,
   but it will create and compile gftype.c before failing).  Now edit    but it will create and compile gftype.c before failing).  Now edit
   &nbsp; texk/web2c/gftype.c&nbsp; and notice two lines very near the top    &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.    that &nbsp; #define&nbsp;maxrow&nbsp;(79) &nbsp and similarly for
   Change both 79's to 1024, and then re-run make.  The new &nbsp;    maxcol and linelength. Change all three 79's to 1024, and
   texk/web2c/gftype &nbsp; executable image can emit the long    then re-run make. The new &nbsp; texk/web2c/gftype &nbsp; executable
   lines needed for mimeTeX's larger font sizes. </p>    image can emit the long lines needed for mimeTeX's larger font sizes. </p>
   
 <p> Finally, the Unix/Linux bash shell script  <p> Finally, the Unix/Linux bash shell script
   <a href="http://www.forkosh.com/texfonts.sh"    <a href="http://www.forkosh.com/texfonts.sh"
   target="_top">texfonts.sh</a> generates file &nbsp; texfonts.h &nbsp;    target="_top">texfonts.sh</a> generates file &nbsp; texfonts.h &nbsp;
   containing the information for all 64 mimeTeX fonts discussed above    containing the information for all 72 mimeTeX fonts discussed above
   (and, optionally, an extra 1200dpi cmr font used to test mimeTeX's    (and, optionally, an extra 1200dpi cmr font used to test mimeTeX's
   supersampling algorithm).  You'll need to understand and edit this    supersampling algorithm).  You'll need to understand and edit this
   script to use it meaningfully.  But it helps automate mimeTeX's font    script to use it meaningfully.  But it helps automate mimeTeX's font
Line 3148  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 3203  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 3487  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.2  
changed lines
  Added in v.1.5


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