ASCIIMath Image Fallback Scripts

These JavaScript scripts, derived from Peter Jipsen's ASCIIMathML script, are designed to provide image-based fallback for browsers without MathML support, using Mimetex or another serverside TeX rendering engine.

There are three scripts, depending upon your purpose:

To download any script, right-click on the script name above and "Save-As". For ASCIIMathMLwFallback.js and ASCIIMathTeXImg.js you just need to include the line

<script type="text/javascript" src="ASCIIMathMLwFallback.js"></script>

in the <head> section of your webpage. Right now, it's set to use a public Mimetex server, but if you have your own installation of Mimetex, edit the script to specify the location of your installation. For ASCIIMath syntax information, see the ASCIIMathML homepage

Also available:

Note: I don't update this page often. The most recent version

Examples (from the ASCIIMathML homepage, rendered as images):

Type this See that Comment
\`x^2+y_1+z_12^34\` `x^2+y_1+z_12^34` subscripts as in TeX, but numbers are treated as a unit
\`sin^-1(x)\` `sin^-1(x)` function names are treated as constants
\`d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h\` `d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h` complex subscripts are bracketed, displayed under lim
\$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}\$ $\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$ standard LaTeX notation is an alternative
\`f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n\` `f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n` f^((n))(a) must be bracketed, else the numerator is only `a`
\$f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n\$ $f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n$ standard LaTeX produces the same result
\`int_0^1f(x)dx\` `int_0^1f(x)dx` subscripts must come before superscripts
\`[[a,b],[c,d]]((n),(k))\` `[[a,b],[c,d]]((n),(k))` matrices and column vectors are simple to type
\`x/x={(1,if x!=0),(text{undefined},if x=0):}\` `x/x={(1,if x!=0),(text{undefined},if x=0):}` piecewise defined function are based on matrix notation
\`a//b\` `a//b` use // for inline fractions
\`(a/b)/(c/d)\` `(a/b)/(c/d)` with brackets, multiple fraction work as expected
\`a/b/c/d\` `a/b/c/d` without brackets the parser chooses this particular expression
\`((a*b))/c\` `((a*b))/c` only one level of brackets is removed; * gives standard product
\`sqrtsqrtroot3x\` `sqrtsqrtroot3x` spaces are optional, only serve to split strings that should not match
\`(:a,b:) and {:(x,y),(u,v):}\` `(:a,b:) and {:(x,y),(u,v):}` angle brackets and invisible brackets
\`(a,b]={x in RR : a < x <= b}\` `(a,b]={x in RR : a < x <= b}` grouping brackets don't have to match
\`abc-123.45^-1.1\` `abc-123.45^-1.1` non-tokens are split into single characters,
but decimal numbers are parsed with possible sign
\`hat(ab) bar(xy) ulA vec v dotx ddot y\` `hat(ab) bar(xy) ulA vec v dotx ddot y` accents can be used on any expression (work well in IE)
\`bb{AB3}.bbb(AB].cc(AB).fr{AB}.tt[AB].sf(AB)\` `bb{AB3}.bbb(AB].cc(AB).fr{AB}.tt[AB].sf(AB)` font commands; can use any brackets around argument
\`stackrel"def"= or \stackrel{\Delta}{=}" "("or ":=)\` `stackrel"def"= or \stackrel{\Delta}{=}" "("or ":=)` symbols can be stacked
\`{::}_(\ 92)^238U\` `{::}_(\ 92)^238U` prescripts simulated by subsuperscripts

Try it yourself