The implementation of mathematical notation with MathJax, which is a JavaScript display engine for mathematics, works in all browsers. kramdown natively supports mathematical formulas of the TeX/LaTeX syntax in Markdown.
Examples
\[f(n) = \begin{cases} \frac{n}{2}, & \text{if $n$ is even} \\[2ex] 3n+1, & \text{if $n$ is odd} \end{cases}\]$$f(n) =
\begin{cases}
\frac{n}{2}, & \text{if $n$ is even} \\[2ex]
3n+1, & \text{if $n$ is odd}
\end{cases}$$
$$\left\{
\begin{aligned}
a_1x+b_1y+c_1z &=d_1+e_1 \\
a_2x+b_2y&=d_2 \\
a_3x+b_3y+c_3z &=d_3
\end{aligned}
\right.$$
$$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$
$$F(\omega) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} f(t) \, e^{ - i \omega t}dt$$
\[\int_0^1 f(t) \mathrm{d}t\]
\\[\int_0^1 f(t) \mathrm{d}t\\]
\[\sum_j \gamma_j^2/d_j\]
\\[\sum_j \gamma_j^2/d_j\\]
$$\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}$$
$$ \left[
\begin{array}{cc|c}
1&2&3\\
4&5&6
\end{array}
\right] $$
$$\begin{align*}
& \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right)
= \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\
& (x_1, \ldots, x_n) \left( \begin{array}{ccc}
\phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\
\vdots & \ddots & \vdots \\
\phi(e_n, e_1) & \cdots & \phi(e_n, e_n)
\end{array} \right)
\left( \begin{array}{c}
y_1 \\
\vdots \\
y_n
\end{array} \right)
\end{align*}$$
$$\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x$$
Inline Statements
You can also make use of inline statements. The formula \(e^{\pi i} + 1 = 0\) is nicely produced within this text, as well as \(5 + 5 = 10\) and \(\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}\).
Also \(x_1\) and \(\begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix}\) works well. Another example is \(\lim_{x \to \infty} \exp(-x) = 0\) or \(\frac{\frac{1}{x}+\frac{1}{y}}{y-z}\) or \(\cos (2\theta) = \cos^2 \theta - \sin^2 \theta\) or \(\left.\frac{x^3}{3}\right\vert_0^1\) or \(P\left(A=2\middle\vert\frac{A^2}{B}>4\right)\).
You can also make use of inline statements. The formula $$ e^{\pi i} + 1 = 0 $$ is nicely produced within this text, as well as $$ 5 + 5 = 10 $$ and $$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$.
Also $$x_1$$ and $$\begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix}$$ works well. Another example is $$\lim_{x \to \infty} \exp(-x) = 0$$ or $$\frac{\frac{1}{x}+\frac{1}{y}}{y-z}$$ or $$\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$$ or $$\left.\frac{x^3}{3}\right\vert_0^1$$ or $$P\left(A=2\middle\vert\frac{A^2}{B}>4\right)$$.
Note that LaTeX code that uses the pipe symbol
|in inline math statements may lead to a line being recognized as a table line. This problem can be avoided by using the\vertcommand instead of|!
MathJax Implementation
<!-- MathJax config -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
//jax: ["input/TeX", "output/HTML-CSS"],
//jax: ["input/TeX", "output/SVG"],
jax: ["input/TeX", "output/CommonHTML"],
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"HTML-CSS": {
availableFonts: ["Neo-Euler"],
//webFont: "Gyre-Pagella"
},
CommonHTML: {
availableFonts: ["Neo-Euler"],
webFont: "Neo-Euler"
},
SVG: {
scale: 75,
font: "Neo-Euler"
}
});
</script>
<!-- MathJax Library -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js"></script>
Local Implementation
You need to put the entire mathjax folder structure to the path from where MathJax.js is being served. It can be obtained via npm install, git clone, bower install or direct download.
<script type="text/javascript" src="/js/vendor/mathjax/MathJax.js"></script>
Contents of mathjax:
162B Apr 25 10:30 .npmignore
403B Apr 25 10:30 .travis.yml
12K Apr 25 10:30 CONTRIBUTING.md
11K Apr 25 10:30 LICENSE
62K Apr 25 10:30 MathJax.js
2.1K Apr 25 10:30 README.md
222B Apr 25 10:30 bower.json
483B Apr 25 10:30 composer.json
1.2K Jun 25 22:00 config/
170B Jun 25 22:00 docs/
714B Jun 25 22:00 extensions/
102B Jun 25 22:00 fonts/
170B Jun 25 22:00 jax/
3.1K Apr 25 10:30 latest.js
1.5K Jun 25 22:00 localization/
727B Apr 25 10:30 package.json
748B Jun 25 22:00 test/
272B Jun 25 22:00 unpacked/