A mathematical markup language is a computer notation for representing mathematical formulae, based on mathematical notation. Specialized markup languages are necessary because computers normally deal with linear text and more limited character sets (although increasing support for Unicode is obsoleting very simple uses). A formally standardized syntax also allows a computer to interpret otherwise ambiguous content, for rendering or even evaluating. For computer-interpretable syntaxes, the most popular are TeX/LaTeX and MathML.
Contents |
Popular languages for input by humans and interpretation by computers include TeX[1]/LaTeX[2] and Eqn.[3]
Computer algebra systems such as Macsyma, Mathematica, Maple, and MATLAB each have their own syntax.
When the purpose is informal communication with other humans, syntax is often ad hoc, sometimes called "ASCII math notation". Academics sometimes use syntax based on TeX due to familiarity with it from writing papers. Those used to programming languages may also use shorthands like "!" for . Web pages may also use a limited amount of HTML to mark up a small subset, for example superscripting.[4] Ad-hoc syntax requires context to interpret ambiguous syntax, for example ">=" could be "implies" or "greater than or equal to", and "dx/dy" is likely to denote a derivative, but strictly speaking could also mean a finite quantity dx divided by dy.
TeX | eqn | ad-hoc ASCII | ad-hoc Unicode | formula |
---|---|---|---|---|
$a^2$ | a sup 2 | a^2 | a² | |
$\sum_{k=1}^N k^2$ | sum from { k = 1 } to N { k sup 2 } | sum_{k=1}^N k^2 | Σ_{k=1}^N k² | |
$\neg a > 2 \Rightarrow a \le 2$ | !(a > 2) => a <= 2 | ¬ a > 2 ⇒ a ≤ 2 |
Markup languages optimized for computer-to-computer communication include MathML,[5] OpenMath, and OMDoc. These are designed for verbosity and to minimize ambiguity. However, the verbosity makes them clumsier for humans to type directly.[5]
Many input, rendering, and conversion tools exist.
Microsoft Word includes Equation Editor, a limited version of MathType. These allow entering formulae using a graphical user interface, and converting to standard markup languages such as MathML. SciWriter is another GUI that can generate MathML and LaTeX.[6]
ASCIIMathML, a JavaScript program, can convert ad-hoc ASCII notation to MathML.[7]
|