One of the biggest obstacles to using mathematical expressions on the web is that the user currently needs to worry about layout. Web users should not have to learn a layout engine.

The class is built as a recursive parser. It is pretty easy to add operations to the parser, but it will not scale to a huge set of operations. That is OK, we want to keep things simple. At some point a layout engine may be required for a complexity level. This is not a layout engine.

Currently, only graphical output is generated, but it is hoped that MathML output can be generated automatically if the browser supports it instead of the graphic.



Source is available.


f(x)function of x
f'(x)derivative of x
f"(x)second derivative of x
sqrt xSquare root of x
root y xyth root of x
int _ _ xintegral of x
int 1 3 xintegral from 1 to 3 of x
sum _ _ xsummation of x
sum 1 n xsummation from 1 to n of x
x ^ yx raised to the yth power
x * yx times y
bar xx bar
hat xx hat
x . yx times y
x / yx divided by y
x + yx plus y
x - yx minus y
x_yx sub y
forall xfor all x
exists xthere exists an x
backepsilonback epsilon
x ortho yx is orthogonal to y
x le yx is less than or equal to y
x <= yx is less than or equal to y
x =< yx is less than or equal to y
leftrightleft right arrow
leftleft arrow
upup arrow
rightright arrow
downdown arrow
pmplus or minus
+-plus or minus
x ge yx is greater than or equal to y
x >= yx is greater than or equal to y
x => yx is greater than or equal to y
x times yx times y
x cross yx cross y
x prop yx is proportional to y
partial / {partial x}derivative with respect to x
x dot yx dot y
x divide yx divided by y
x div yx divided by y
x ne yx not equal to y
x <> yx not equal to y
x congr yx is congruent to y
x approx yx is approximately y
imimaginary number
realreal number
wpp function (wp), Weierstrass p
x otimes yx otimes y
x oplus yx oplus y
nullnull or empty set
emptynull or empty set
x intersect yx intersection y
x union yx union y
x supset yx is a superset of y
x supseteq yx is a proper superset of y
x notsubset yx is not a subset of y
x propsubset yx is a proper subset of y
x subset yx is a subset of y
x element yx is an element of y
x in yx is in y
x notelement yx is not an element of y
x notin yx is not in y
angle xthe angle x
not xnot x
x and yx and y
x or yx or y
x equiv yx is logically equivalent to y
doubleleftrightdouble left right arrow
doubleleftdouble left arrow
doubleupdouble up arrow
doublerightdouble right arrow
x implies yx implies y
doubledowndouble down arrow
(x over y)x choose y


visible ()
invisible {}

Greek letters:

alpha is lowercase, Alpha is uppercase.

If you want to send actual e-mail, think about this: My name is david and my domain is