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 e-mail, think about this: My name is david and my domain is eder.us.
|