22
I’m going to say right from the start that I like AsciiMath, it is straight forward to use and is easy to understand.
AsciiMath itself is a form of notation for writing equations. This for example is the quadratic formulae in AsciiMath form:
`x=(-b +- sqrt(b^2 — 4ac))/(2a)`
The one we all know from O level maths:
`x=(-b +- sqrt(b^2 — 4ac))/(2a)`
Now if I stick that equation into the website and put a back-tick (`) character before and after it, like this:
<div class="formulae" id="js--e99-01"> <div class="formulae-container"> <div class="formulae-equ"> `x=(-b +- sqrt(b^2 — 4ac))/(2a)` </div> <div class="formulae-num"></div> </div> </div>
I’ve taken out the heading, number and caption. It gives me this:
Well, I think it is pretty cool.
Look again at the AsciiMath:
x=(-b +- sqrt(b^2 — 4ac))/(2a)
It’s a bit hard to explain, but at an intuitive level you can see exactly how it works, if you wanted to type that equation in as a single line on a computer terminal, I bet you would come up with something similar to the above.
Here is another that shows how it handles big and small brackets:
sum_(i=1)^n i^3=((n(n+1))/2)^2
It looks like this:
Obviously, you need to know what names are given to the symbols; the following tables show them all:
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
+ | Plus sign | `+` | x=a+b | `x=a+b` | |
- | Minus sign | `-` | x=a-b | `x=a-b` | |
xx | Times sign | `xx` | x=axxb | `x=axxb` | |
-: | Divide sign | `-:` | x=a-:b | `x=a-:b` | |
// | Division slash | `//` | x=a//b | `x=a//b` | |
* | Dot | `*` | x=a*b | `x=a*b` | |
** | Asterisk | `**` | x=a**b | `x=a**b` | |
*** | Star | `***` | x=a***b | `x=a***b` | |
sum | Sigma (summation) | `sum` | suma =1+2+... | `suma =1+2+...` | |
prod | Pi (product) | `prod` | proda =(1)(2)... | `proda =(1)(2)...` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
= | Equals sign | `=` | a=b | `a=b` | |
!= | Not equals sign | `!=` | a!=b | `a!=b` | |
< | Less than | `<` | a<b | `a<b` | |
> | Greater than | `>` | a>b | `a>b` | |
<= | Less than or equal to | `<=` | a<=b | `a<=b` | |
>= | Greater than or equal to | `>=` | a>=b | `a>=b` | |
-= | Equivalent to | `-=` | a-=b | `a-=b` | |
~= | Approximately equal to | `~=` | a~=b | `a~=b` | |
~~ | Approximately | `~~` | a~~b | `a~~b` | |
prop | Proportional sign | `prop` | a prop b | `a prop b` | |
Brackets grow to accommodate fractions and operators that require more than one line.
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
( or ) | Normal brackets | `(" ")` | x=((n(n+1))/2) | `x=((n(n+1))/2)` | |
[ or ] | Square brackets | `[" "]` | x=[(n(n+1))/2] | `x=[(n(n+1))/2]` | |
{ or } | Braces | `{" "}` | x=[(n{n+1})/2] | `x=[(n{n+1})/2]` | |
(: or :) | Angle brackets | `(:" ":)` | x=(:a,b:) | `x=(:a,b:)` | |
|__ or __| | Floor brackets | `|__" "__|` | x=|__a-b__| | `x=|__a-b__|` | |
floor(x) | Floor brackets alternative | `floor(x)` | x=floor(a-b) | `x=floor(a-b)` | |
|~ or ~| | Ceiling brackets | `|~" "~|` | x=|~a-b~| | `x=|~a-b~|` | |
ceil(x) | Ceiling brackets alternative | `ceil(x)` | x=ceil(a-b) | `x=ceil(a-b)` | |
abs(x) | Absolute | `abs(x)` | x=abs(a/b) | `x=abs(a/b)` | |
norm(x) | Normal | `norm(x)` | x=norm(a) | `x=norm(a)` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
+- | Plus or minus | `+-` | x=+-2b | `x=+-2b` | |
/ | Fraction | `" "/" "` | x=a/b | `x=a/b` | |
^ | To the power | `x^n` | x=a^b | `x=a^b` | |
sqrt | Square root | `sqrt` | x=sqrta | `x=sqrta` | |
root(n)x | nth root | `root(n)x` | x=root(3)a | `x=root(3)a` | |
int | Integral | `int` | x=a int b | `x=a int b` | |
oint | Circular integral | `oint` | x=a oint b | `x=a oint b` | |
del | Partial differential | `del` | `x=del a` | ||
oo | Infinity | `oo` | x=oo | `x=oo` | |
grad | Nabla | `grad` | (grad*v)=f(v) | `(grad*v)=f(v)` | |
/_ | Angle | `/_` | a/_b | `a/_b` | |
:. | Therefore | `:.` | :.a=b | `:.a=b` | |
:' | Because | `:'` | :'a=b | `:'a=b` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
CC | Complex numbers | `CC` | CC(1,2,3) | `CC(1,2,3)` | |
NN | Natural numbers | `NN` | NN(1,2,3) | `NN(1,2,3)` | |
Rational numbers | `QQ` | QQ(1,2,3) | `QQ(1,2,3)` | ||
RR | Real numbers | `RR` | RR(1.1,2.1,3.1) | `RR(1.1,2.1,3.1)` | |
ZZ | Integers numbers | `ZZ` | ZZ(1,2,3) | `ZZ(1,2,3)` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
hat | Caret | `hat " "` | hatx | `hatx` | |
bar | Over bar | `bar" "` | barx | `barx` | |
ul | Under bar | `ul" "` | ulx | `ulx` | |
vec | Vector line | `vec" "` | vecx | `vecx` | |
dot | Dot | `dot" "` | dotx | `dotx` | |
ddot | Double dot | `ddot" "` | ddotx | `ddotx` | |
overbrace | Over brace | `overbrace" "` | overbrace(1+2) | `overbrace(1+2)` | |
underbrace | Under brace | `underbrace" "` | underbrace(1+2) | `underbrace(1+2)` | |
color(col)() | Apply colour | `color(red)(x)` | color(red)(x) | `color(red)(x)` | |
The colours available (col) are the same as the keyword colours available to HTML, there is a full list here.
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
uarr darr larr rrarr | Up, down, left, right arrow | `uarr darr larr rarr` | uarrx darrx larrx rarrx | `uarrx darrx larrx rarrx` | |
harr | Horizontal arrow | `harr` | aharrb | `aharrb` | |
to | To | `to` | atob | `atob` | |
>-> | Right arrow with tail | `>->` | a>->b | `a>->b` | |
->> | Two headed right arrow | `->>` | a->>b | `a->>b` | |
|-> | Maps to | `|->` | a|->b | `a|->b` | |
lArr rArr | left, right double arrow | `lArr rArr` | lArrx rArrx | `lArrx rArrx` | |
hArr | Horizontal double arrow | `hArr` | ahArrb | `ahArrb` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
alpha | Lowercase alpha | `alpha` | f(alpha) | `f(alpha)` | |
beta | Lowercase beta | `beta` | f(beta) | `f(beta)` | |
gamma | Lowercase gamma | `gamma` | f(gamma) | `f(gamma)` | |
delta | Lowercase delta | `delta` | f(delta) | `f(delta)` | |
epsilon | Lowercase epsilon | `epsilon` | f(epsilon) | `f(epsilon)` | |
zeta | Lowercase zeta | `zeta` | f(zeta) | `f(zeta)` | |
eta | Lowercase eta | `eta` | f(eta) | `f(eta)` | |
theta | Lowercase theta | `theta` | f(theta) | `f(theta)` | |
iota | Lowercase iota | `iota` | f(iota) | `f(iota)` | |
kappa | Lowercase kappa | `kappa` | f(kappa) | `f(kappa)` | |
lambda | Lowercase lambda | `lambda` | f(lambda) | `f(lambda)` | |
mu | Lowercase mu | `mu` | f(mu) | `f(mu)` | |
nu | Lowercase nu | `nu` | f(nu) | `f(nu)` | |
xi | Lowercase xi | `xi` | f(xi) | `f(xi)` | |
pi | Lowercase pi | `pi` | f(pi) | `f(pi)` | |
rho | Lowercase rho | `rho` | f(rho) | `f(rho)` | |
sigma | Lowercase sigma | `sigma` | f(sigma) | `f(sigma)` | |
alpha | Lowercase alpha | `alpha` | f(alpha) | `f(alpha)` | |
tau | Lowercase tau | `tau` | f(tau) | `f(tau)` | |
upsilon | Lowercase upsilon | `upsilon` | f(upsilon) | `f(upsilon)` | |
phi | Lowercase phi | `phi` | f(phi) | `f(phi)` | |
chi | Lowercase chi | `chi` | f(chi) | `f(chi)` | |
psi | Lowercase psi | `psi` | f(psi) | `f(psi)` | |
omega | Lowercase omega | `omega` | f(omega) | `f(omega)` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
Gamma | Uppercase gamma | `Gamma` | f(Gamma) | `f(Gamma)` | |
Delta | Uppercase delta | `Delta` | f(Delta) | `f(Delta)` | |
Theta | Uppercase theta | `Theta` | f(Theta) | `f(Theta)` | |
Lambda | Uppercase lambda | `Lambda` | f(Lambda) | `f(Lambda)` | |
Xi | Uppercase xi | `Xi` | f(Xi) | `f(Xi)` | |
Pi | Uppercase pi | `Pi` | f(Pi) | `f(Pi)` | |
Sigma | Uppercase sigma | `Sigma` | f(Sigma) | `f(Sigma)` | |
Phi | Uppercase phi | `Phi` | f(Phi) | `f(Phi)` | |
Psi | Uppercase psi | `Psi` | f(Psi) | `f(Psi)` | |
Omega | Uppercase omega | `Omega` | f(Omega) | `f(Omega)` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
|>< | Semi-direct product | `|><` | N |><_psi | `N |><_psi ` | |
><| | Semi-direct product | `><|` | N ><|_psi H | `N ><|_psi H` | |
|><| | Join | `|><|` | N |><| H | `N |><| H` | |
@ | Composite | `@` | N @ H | `N @ H` | |
o+ | Circled plus | `o+` | N o+ H | `N o+ H` | |
ox | Circled times | `ox` | N ox H | `N ox H` | |
o. | Circled dot | `o.` | N o. H | `N o. H` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
^^ | Wedge | `^^` | N ^^ H | `N ^^ H` | |
^^^ | Large wedge | `^^^` | N ^^^ H | `N ^^^ H` | |
vv | Vee | `vv` | N vv H | `N vv H` | |
vvv | Large Vee | `vvv` | N vvv H | `N vvv H` | |
nn | Cap | `nn` | N nn H | `N nn H` | |
nnn | Large cap | `nnn` | N nnn H | `N nnn H` | |
uu | Cup | `uu` | N uu H | `N uu H` | |
uuu | Large cup | `uuu` | N uuu H | `N uuu H` | |
|><| | Join | `|><|` | N |><| H | `N |><| H` | |
in | Element of | `in` | N in H | `N in H` | |
!in | Not an element of | `!in` | N !in H | `N !in H` | |
sub | Subset of | `sub` | N sub H | `N sub H` | |
sube | Subset of or equal to | `sube` | N sube H | `N sube H` | |
supe | Superset of or equal to | `supe` | N supe H | `N supe H` | |
-< | Precedes | `-<` | N -< H | `N -< H` | |
-<= | Precedes or equal to | `-<=` | N -<= H | `N -<= H` | |
>- | Supersedes | `>-` | N >- H | `N >- H` | |
>-= | Supersedes or equal to | `>-=` | N >-= H | `N >-= H` | |
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
_ | Subscript | `a_i` | x=a_i | `x=a_i` | |
^ | Superscript | `a^i` | x=e^t | `x=e^t` | |
Subscripts and superscripts also work with large operators:
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
int_() | Integral with lower limit | `int_(lim)` | x=aint_(-t)b | `x=aint_(-t)b` | |
int^() | Integral with upper limit | `int^(lim)` | x=aint^(+t)b | `x=aint^(+t)b` | |
int_()^() | Integral with upper and lower limits | `int_(lim)^(lim)` | x=aint _(-t)^(+t)b |
`x=aint _(-t)^(+t)b` |
|
Where both subscripts and superscripts are applied to an object, the subscript must come first.
Text can be added to any equation by surrounding it in quotes ".
example | |||||
---|---|---|---|---|---|
AsciiMath | Description | Apperance | AsciiMath | Result | |
"anytext" | Text string | `"anytext"` | x="something" | `x="something"` | |
example | |||
---|---|---|---|
Description | AsciiMath | Result | |
Standard matrices (normal) | ((a,b),(c,d)) | `((a,b),(c,d))` | |
Standard matrices (square) | [[a,b],[c,d]] | `[[a,b],[c,d]]` | |
Column vector (normal) | ((a),(b)) | `((a),(b))` | |
Column vector (square) | [[a],[b]] | `[[a],[b]]` | |
Complex | {(2x,+,17y,=,23),(x,-,y,=,5):}} | `{(2x,+,17y,=,23),(x,-,y,=,5):}}` | |
There are two delimiters for matrices (: and :), these act as invisible brackets to force things to line up.
AsciiMath (and MathJax) ignore space, add them or remove them as you wish. For example, a prop b and apropb both give `apropb`.