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