Cómo escribo matemáticas en HTML: LaTeX, latexmlmath y MathML

15 de junio de 2020 • fjbalon

LaTeX -ó TeX- es un lenguaje de marcas y un sistema de tipografía, escrito por Donald E. Knuth muy popular entre las comunidades de matemáticos, físicos e informáticos. Una de las características esenciales del lenguaje es la composición de fórmulas matemáticas complejas, lo que constituye una ventaja absoluta contra procesadores de texto WYSIWYG.

Sin embargo, HTML presenta casi el mismo problema que los procesadores de texto comunes, puesto que escribir ecuaciones complejas se hace excesivamente tedioso. Para ello es posible implementar el lenguaje de marcas -basado en XML- MathML, cuyo objetivo es expresar notación matemática.

Así, tomando como ejemplo la ecuación:

0 5 x d x lim x 3 + x x 2

Que en LaTeX es escrita como:

\[
    \frac{\int_0^5 x \mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^2}}
\]

Nos valemos de la herramienta latexmlmath> con el string de la ecuación como argumento para que nos genere el código HTML en MathML.

$ latexmlmath "\[\frac{\int_0^5 x \mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^2}}\]"

<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\frac{\int_{0}^{5}x\mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^{2}}}" display="block">
  <mfrac>
    <mrow>
      <msubsup>
        <mo largeop="true" symmetric="true">∫</mo>
        <mn>0</mn>
        <mn>5</mn>
      </msubsup>
      <mrow>
        <mi>x</mi>
        <mo>⁢</mo>
        <mrow>
          <mo rspace="0pt">d</mo>
          <mi>x</mi>
        </mrow>
      </mrow>
    </mrow>
    <mrow>
      <msub>
        <mo>lim</mo>
        <mrow>
          <mi>x</mi>
          <mo>→</mo>
          <mi mathvariant="normal">∞</mi>
        </mrow>
      </msub>
      <mo>⁡</mo>
      <mfrac>
        <mrow>
          <mn>3</mn>
          <mo>+</mo>
          <mi>x</mi>
        </mrow>
        <msup>
          <mi>x</mi>
          <mn>2</mn>
        </msup>
      </mfrac>
    </mrow>
  </mfrac>
</math>

El resultado puede verse claramente en el ejemplo de la ecuación.

Bibliografía y enlaces de interés