Introduction
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.
Thanks
Thanks goes to all of the people that have submitted bugs and feature requests. Thanks also to Randy Morrow for updating
integral and derivative support and fixing a size bug.
Demo:
Source:
Source is available.
Here is a zip file.
Requirements
Simple Equation requires PHP 4.2.0 or greater. Extension include: GD 2,
libpng and FreeType (2.1.4 or greater). Transparency will not work on all
browsers.
The standard Windows fonts symbol.ttf, timesi.ttf and times.ttf are
or equivalents required to render. These fonts can be changed in the render
function. Changing the fonts may require a change in the map also in that
function. Note: It is probably illegal to simply copy these from
Windows to use on Linux.
Design Science MathType Fonts
provide eucsym.ttf to replace symbol.ttf, euclid.ttf to replace times.ttf, and
euclidi.ttf to replace timesi.ttf. Symlinks are recommended to map these font
files to the standard names. You should probably read the
MathType Fonts License.
Functions:
f(x)   function of x 
f'(x)   derivative of x 
f"(x)   second derivative of x 
sqrt x   Square root of x 
root y x   yth root of x 
int _ _ x   integral of x 
int 1 3 x   integral from 1 to 3 of x 
sum _ _ x   summation of x 
sum 1 n x   summation from 1 to n of x 
x ^ y   x raised to the yth power 
x * y   x times y 
bar x   x bar 
hat x   x hat 
x . y   x times y 
x / y   x divided by y 
x + y   x plus y 
x  y   x minus y 
x_y   x sub y 
forall x   for all x 
exists x   there exists an x 
backepsilon   back epsilon 
therefore   therefore 
x ortho y   x is orthogonal to y 
x le y   x is less than or equal to y 
x <= y   x is less than or equal to y 
x =< y   x is less than or equal to y 
inf   infinity 
infinity   infinity 
leftright   left right arrow 
left   left arrow 
up   up arrow 
right   right arrow 
down   down arrow 
pm   plus or minus 
+   plus or minus 
x ge y   x is greater than or equal to y 
x >= y   x is greater than or equal to y 
x => y   x is greater than or equal to y 
x times y   x times y 
x cross y   x cross y 
x prop y   x is proportional to y 
partial / {partial x}   derivative with respect to x 
x dot y   x dot y 
x divide y   x divided by y 
x div y   x divided by y 
x ne y   x not equal to y 
x <> y   x not equal to y 
x congr y   x is congruent to y 
x approx y   x is approximately y 
aleph   Aleph 
im   imaginary number 
real   real number 
wp   p function (wp), Weierstrass p 
x otimes y   x otimes y 
x oplus y   x oplus y 
null   null or empty set 
empty   null or empty set 
x intersect y   x intersection y 
x union y   x union y 
x supset y   x is a superset of y 
x supseteq y   x is a proper superset of y 
x notsubset y   x is not a subset of y 
x propsubset y   x is a proper subset of y 
x subset y   x is a subset of y 
x element y   x is an element of y 
x in y   x is in y 
x notelement y   x is not an element of y 
x notin y   x is not in y 
angle x   the angle x 
nabla   nabla 
not x   not x 
x and y   x and y 
x or y   x or y 
x equiv y   x is logically equivalent to y 
doubleleftright   double left right arrow 
doubleleft   double left arrow 
doubleup   double up arrow 
doubleright   double right arrow 
x implies y   x implies y 
doubledown   double down arrow 
(x over y)   x choose y 
Parenthesis:
visible ()
invisible {}
Greek letters:
alpha is lowercase, Alpha is uppercase.
If you want to send actual email, think about this: My name is david and my domain is eder.us.
