# MathML

MathML (Mathematical Markup Language = Lenguaje de Marcas Matemático) es un lenguaje de marcas dirigido a la representación de fórmulas matemáticas.

Se han publicado varias versiones de MathML: MathML 1.0 (1998), MathML 1.01 (1999), MathML 2.0 (2001), MathML 2.0 (2º edición) (2003) y MathML 3.0 (octubre de 2010). Véase la lección sobre Historia de la Web para más detalles.

Para investigar: MathJax (JavaScript)

## Páginas web con MathML

Una página web que contiene elementos MathML es un documento compuesto que contiene tanto elementos XHTML como MathML. El tipo del documento tiene que ser por tanto XHTML 1.1 + MathML 2.0 y se debe servir al navegador con el tipo MIME application/xhtml+xml.

Normalmente los servidores sirven los documentos que tienen la extensión .html con el tipo MIME text/html y los documentos que tienen la extensión .xhtml con el tipo MIME application/xhtml+xml, por lo que conviene guardar los documentos que incluyan elementos MathML con la extensión .xhtml.

Se puede comprobar fácilmente la capacidad de un navegador de mostrar elementos MathML visitando la página https://www.eyeasme.com/Joe/MathML/MathML_browser_test. Actualmente (diciembre de 2010) esta página muestra varias fórmulas matemáticas tal y como se ven en un sistema de tipografía TeX, en Firefox con las fuentes STIX y en el navegador del usuario.

En los navegadores que no son capaces de mostrar elementos MathML, la fórmulas matemáticas deben mostrarse como imágenes, lo que impide aprovechar las posibilidades de MathML (hojas de estilos, zoom, facilidad de edición, etc.). Algunos sitios detectan si el navegador admite o no MathML y envían una versión con MathML o con imágenes, como por ejemplo la Biblioteca Digital de Fórmulas Matemáticas del NIST.

## MathML en Internet Explorer

Internet Explorer no admite el tipo MIME application/xhtml+xml, por lo que no es capaz de mostrar directamente páginas con elementos MathML, pero existen plug-in gratuitos para conseguirlo, por ejemplo MathPlayer de DesignScience, cuya última versión es actualmente (diciembre de 2010) la versión MathPlayer 2.2, de febrero de 2010. Antes de instalar el plug-in, cuando se intenta abrir una página con elementos MathML, Internet Explorer no muestra la página sino que muestra una ventana dando la posibilidad de guardar el archivo. Pero una vez instalado el plug-in, Internet Explorer es capaz de mostrar páginas con elementos MathML.

## MathML en Firefox

Firefox es capaz de mostrar páginas con elementos MathML, aunque es necesario instalar ciertas fuentes para poder mostrar correctamente todos los caracteres matemáticos.

Actualmente (diciembre de 2010) las fuentes recomendadas son las fuentes STIX, una fuentes de miles de caracteres creadas por el consorcio STI Pub, formado por varias organizaciones científicas norteamericanas y la editorial Elsevier. Este consorcio se creó en 1995 y hasta el año 2000 se estuvieron definiendo los caracteres necesarios. En el año 2000 comenzó la creación de las fuentes, en octubre de 2007 se publicó la versión beta de las fuentes y en mayo de 2010 se publicó la versión 1.0.0. Las fuentes STIX están disponibles en formato OpenType y actualmente (diciembre de 2010) está previsto que la versión 1.1 incluya paquetes para su uso con Microsoft Office y que la versión 1.2 incluya paquetes para su uso con LaTeX.

Actualmente (diciembre de 2010) la última versión publicada es la versión 1.0.0 (de mayo de 2010). En cdlibre.org hay una sección dedicada a fuentes OTF, con información detallada sobre la última versión publicada.

Al abrir un archivo de extensión .xhtml como archivo local (sin utilizar un servidor de páginas web), Firefox reconoce estos documentos como application/xhtml+xml y los muestra correctamente.

### La extensión FireMath

La extensión FireMath permite crear fórmulas MathML desde Firefox. Se puede instalar desde Firefox Add-ons. Actualmente se encuentra en desarrollo.

Nota: Por completar y probar.

## MathML en Google Chrome

Google Chrome no es capaz de mostrar elementos MathML puesto que WebKit (el motor de Google Chrome o de Safari) tampoco lo hace y actualmente (diciembre de 2010) no se sabe cuándo lo hará. El bug 3251 de WebKit se ocupa de la implementación de MathML en WebKit. Este bug se abrió en 2005, pero no ha tenido ninguna actividad.

## Páginas de muestra

La siguiente página muestra un un ejemplo sencillo de las posibilidades del MathML:

- La ecuación de segundo grado