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, MathML (Mathematical Markup Language), OpenMath and OMDoc.
Notations for human input
editPopular languages for input by humans and interpretation by computers include TeX[1]/LaTeX[2] and eqn.[3]
Computer algebra systems such as Macsyma, Mathematica (Wolfram Language), 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 "is implied by" or "less than or equal to", and "dy/dx" is likely to denote a derivative, but strictly speaking could also mean a finite quantity dy divided by dx.
Unicode improves the support for mathematics, compared to ASCII only.[5][6]
Examples
editTeX 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$
neg (a > 2) drarrow a <= 2 !(a > 2) => a <= 2 ¬(a > 2) ⇒ a ≤ 2
Markup languages for computer interchange
editMarkup languages optimized for computer-to-computer communication include MathML,[7] OpenMath, and OMDoc. These are designed for clarity, parseability and to minimize ambiguity, at the price of verbosity. However, the verbosity makes them clumsier for humans to type directly.[7]
Conversion
editMany input, rendering, and conversion tools exist.
Microsoft Word included Equation Editor, a limited version of MathType, until 2007. These allow entering formulae using a graphical user interface, and converting to standard markup languages such as MathML. With Microsoft's release of Microsoft Office 2007 and the Office Open XML file formats, they introduced a new equation editor which uses a new format, "Office Math Markup Language" (OMML). The lack of compatibility led some prestigious scientific journals to refuse to accept manuscripts which had been produced using Microsoft Office 2007.[8][9]
SciWriter is another GUI that can generate MathML and LaTeX.[10]
ASCIIMathML, a JavaScript program, can convert ad hoc ASCII notation to MathML.[11]
See also
editReferences
edit- ^ Donald E. Knuth. The TeXbook (Computers and Typesetting, Volume A). Reading, Massachusetts: Addison-Wesley, 1984. ISBN 0-201-13448-9.
- ^ Lamport. LaTeX: A document preparation system, 2nd edition User's guide and reference manual. ISBN.
- ^ Brian W. Kernighan and Lorinda L. Cherry. A System for Typesetting Mathematics, Communications of the ACM 18 (1975), 151–157.
- ^ Drexel University (2007). "Math Typesetting for the Internet". Retrieved 2007-04-16.
- ^ UNICODE SUPPORT FOR MATHEMATICS
- ^ UNICODEMATH, A NEARLY PLAIN-TEXT ENCODING OF MATHEMATICS
- ^ a b Buswell, Stephen; Devitt, Stan; Diaz, Angel; et al. (7 July 1999). "Mathematical Markup Language (MathML) 1.01 Specification (Abstract)". Retrieved 2007-04-13.
While MathML is human-readable it is anticipated that, in all but the simplest cases, authors will use equation editors, conversion programs, and other specialized software tools to generate MathML.
- ^ "Microsoft Office dumped by Science and Nature". ZDNet. 2007-06-18. Retrieved 2012-10-27.
- ^ "Science and Nature have difficulties with Word 2007 mathematics - Murray Sargent: Math in Office - Site Home - MSDN Blogs". 2007-06-04. Retrieved 2012-10-27.
- ^ "SciWriter". Archived from the original on 2007-01-22. Retrieved 2007-04-13.
- ^ Peter Jipsen (August 2005). "ASCIIMathML". Retrieved 2007-04-13.