lunes, 1 de mayo de 2017

HTML y Latex: MathJax

MathJax es un motor de visualización JavaScript de código abierto para la notación LaTeX, MathML y ​​AsciiMath que funciona en todos los navegadores modernos. Su uso es tan sencillo como el código que muestro a continuación, sin embargo los resultados son asombrosos.
<!DOCTYPE html>
<html>
   <head>
      <title>MathJax TeX Test Page</title>
      <!-- Copyright (c) 2010-2017 The MathJax Consortium -->
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <script type="text/x-mathjax-config">
         MathJax.Hub.Config({
           tex2jax: {inlineMath: [["$","$"],["\(","\)"]]}
         });
      </script>
      <script type="text/javascript" async
         src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
   </head>
   <body>
      <h1>Matemáticas con MathJax</h1>
      <p>
         Cuando $a ne 0$, existen dos soluciones para (ax^2 + bx + c = 0) y son
         $$x = {-b pm sqrt{b^2-4ac} over 2a}.$$
      </p>
      <h2>La Ecuaci&oacute;n de Lorenz</h2>
      <p>
         begin{align}
         dot{x} & = sigma(y-x) \
         dot{y} & = rho x - y - xz \
         dot{z} & = -beta z + xy
         end{align}
      </p>
      <h2>La Desigualdad de Cauchy-Schwarz</h2>
      <p>[
         left( sum_{k=1}^n a_k b_k right)^{!!2} leq
         left( sum_{k=1}^n a_k^2 right) left( sum_{k=1}^n b_k^2 right)
         ]
      </p>
      <h2>Producto Vectorial</h2>
      <p>[
         mathbf{V}_1 times mathbf{V}_2 =
         begin{vmatrix}
         mathbf{i} & mathbf{j} & mathbf{k} \
         frac{partial X}{partial u} & frac{partial Y}{partial u} & 0 \
         frac{partial X}{partial v} & frac{partial Y}{partial v} & 0 \
         end{vmatrix}
         ]
      </p>
      <h2>Probabilidad de obtener (k) caras al lanzar (n) monedas es:</h2>
      <p>[P(E) = {n choose k} p^k (1-p)^{ n-k} ]</p>
      <h2>Identidad de Ramanujan</h2>
      <p>[
         frac{1}{(sqrt{phi sqrt{5}}-phi) e^{frac25 pi}} =
         1+frac{e^{-2pi}} {1+frac{e^{-4pi}} {1+frac{e^{-6pi}}
         {1+frac{e^{-8pi}} {1+ldots} } } }
         ]
      </p>
      <h2>Identidad de Rogers-Ramanujan</h2>
      <p>[
         1 +  frac{q^2}{(1-q)}+frac{q^6}{(1-q)(1-q^2)}+cdots =
         prod_{j=0}^{infty}frac{1}{(1-q^{5j+2})(1-q^{5j+3})},
         quadquad text{for $|q|<1$}.
         ]
      </p>
      <h2>Ecuación de Maxwell's</h2>
      <p>
         begin{align}
         nabla times vec{mathbf{B}} -, frac1c, frac{partialvec{mathbf{E}}}{partial t} & = frac{4pi}{c}vec{mathbf{j}} \
         nabla cdot vec{mathbf{E}} & = 4 pi rho \
         nabla times vec{mathbf{E}}, +, frac1c, frac{partialvec{mathbf{B}}}{partial t} & = vec{mathbf{0}} \
         nabla cdot vec{mathbf{B}} & = 0
         end{align}
      </p>
      <h2>Expresiones matem&aacute;ticas dentro de texto</h2>
      <p>Finalmente, mientras que la visualización de ecuaciones se ve bien para una página de muestras, la capacidad de mezclar matemáticas y texto en un párrafo también es importante. Esta expresión (sqrt{3x-1}+(1+x)^2) es un ejemplo de una ecuación en línea.  Las ecuaciones de MathJax pueden usarse de esta manera también, sin perturbar indebidamente el espaciado entre líneas.</p>
   </body>
</html>
Los resultados del código anterior:

Un claro ejemplo donde podemos visualizar MathJax en todo su potencial es en math.stackexchange.com. Les invito a revisar el proyecto que definitivamente es de mucha ayuda a la publicación de resultados para la gente inmersa en la ciencia.