Matemáticas

Stephen Hawking afirmó en su Historia del tiempo que:

“Alguien me dijo que cada ecuación que incluyera en el libro dividiría por dos las ventas, de modo que resolví no introducir ninguna. Pese a todo, sí que terminé incluyendo una: la famosa E = mc2 de Einstein. Espero que eso no haga huir a la mitad de mis lectores potenciales.”

Yo no tengo lectores, así que me puedo permitir incluir tantas matemáticas como quiera. Incluso pueden ser erróneas. Pero me sirven para hacerme ilusiones. Ay, la vanidad.

El caso es que incluir una cita matemática en una bitácora no es fácil. La solución más evidente es utilizar algún programa externo para componer ecuaciones (como OpenOffice.org Math, que viene de paquete con OpenOffice.org). Luego, se puede sacar una captura de pantalla de la ecuación, recortarla y redimensionarla, para finalmente subirla al blog como una imagen.

Pedestre. Incómodo. Primitivo. Para un ingeniero, el mundo es una colección de juguetes sin suficientes prestaciones: vamos a añadirle alguna a nuestra bitácora. Necesitaremos:

  1. Una versión reciente de Firefox. Esta receta se puede hacer con Internet Explorer, pero no sale tan rica (luego diré algo más al respecto).
  2. Un paquete de fuentes para matemáticas como éste. Vienen instaladores para las principales plataformas.
  3. ASCIIMathML. Un script capaz de transformar para una página web texto escrito con una sintaxis sencilla en MathML.

Firefox viene con soporte de MathML de serie, y sólo se necesita instalar el paquete de fuentes matemáticas del punto 2. Para Internet Explorer, es necesario utilizar un plugin llamado MathPlayer (funciona a partir de IE6), pero a cambio, no será necesario el paquete de fuentes.

ASCIIMathML está desarrollado en Javascript, y para utilizarlo basta con incluir en la página este código (en cualquier lugar):

<script type="text/javascript" src="ASCIIMathML.js"></script>

Naturalmente, es necesario cambiar el path del script para que lo cargue de modo correcto.

Usar ASCIIMathML es sencillo: basta escribir nuestras fórmulas en un formato de sólo texto sencillo, delimitándolas con ``, o bien signos de dólar ($). Algunos ejemplos:

  • `sin^-1(x)`: la función inversa del seno.
  • `d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h`: la fórmula de la derivada.
  • `int_0^1f(x)dx`: una integral definida.

La sintaxis se describe en la página que ya he enlazado, y con más detalle del que nadie necesitaría saber aquí. Además, el script tiene algunas variables globales en su cabecera que sirven para cambiar el aspecto de los resultados:

var notifyIfNoMathML = true; // display note if no MathML capability
var alertIfNoMathML = false;  // show alert box if no MathML capability

Cambiando estos dos valores se puede determinar que se notifique al usuario mediante un aviso en lugar de la fórmula a mostrar, o con un popup (o ambos, si se quiere).

var mathcolor = "red";       // change it to "" (to inherit) or any other color

Esto lo pondría como "". Queda un poco molesto que las fórmulas aparezcan en rojo, como si no fueran suficientemente intimidatorias de por sí.

var mathfontfamily = "serif"; // change to "" to inherit (works in IE)
                           // or another family (e.g. "arial")

El valor debería ser el de una familia de fuentes aceptable en CSS. "sans-serif" también debería funcionar.

var showasciiformulaonhover = true; // helps students learn ASCIIMath

En producción, esto podría ser false para evitar ruidos innecesarios.

var decimalsign = ".";        // change to "," if you like, beware of `(1,2)`!

En castellano, el separador correcto es ",". Si se pone, hay que tener cuidado de insertar un espacio después de cada coma cuando no queremos que la coma actúe como separador decimal (por ejemplo, en n-tuplas o funciones de más de una variable).