Notazione matematica con MathJax

math syntax



L'implementazione della notazione matematica con MathJax, che è un motore di visualizzazione di JavaScript per la matematica, funziona in tutti i browser. kramdown supporta nativamente le formule matematiche della sintassi TeX/LaTeX in Markdown.

Esempi

\[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.\]


$$\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}\]


$$\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\]


$$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}\]


$$\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]\]


$$ \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*}\]


$$\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\]


$$\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x$$

Istruzioni in linea

Si può anche fare uso di istruzioni in linea. La formula \(e^{\pi i} + 1 = 0\) è ben prodotto all'interno di questo testo, così come \(5 + 5 = 10\) e \(\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}\).
\(x_1\) e \(\begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix}\) funziona anche bene. Un altro esempio è \(\lim_{x \to \infty} \exp(-x) = 0\) o \(\frac{\frac{1}{x}+\frac{1}{y}}{y-z}\) o \(\cos (2\theta) = \cos^2 \theta - \sin^2 \theta\) o \(\left.\frac{x^3}{3}\right\vert_0^1\) o \(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)$$.

Si noti che il codice LaTex che utilizza il carattere el tubo | in istruzioni in linea matematiche può portare a una linea di essere riconosciuta come una riga di tabella. Questo problema può essere evitato utilizzando il comando \vert anziché |!

Implementazione di MathJax

<!-- 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>

MathJax documentazione

Implementazione locale

È necessario mettere l'intera struttura di cartelle mathjax al percorso da dove viene servita il MathJax.js. Può essere ottenuto tramite npm install, git clone, bower install o il download diretto.

<script type="text/javascript" src="/js/vendor/mathjax/MathJax.js"></script>

Contenuto di 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/