]> MathML y Mozilla

Introducción

MathML 2.0 es una recomendación del W3C que permite la inclusión de una forma uniforme de símbolos y fórmulas matemáticas en páginas web1. Si bien es cierto que Mozilla tiene soporte para parte del estándar desde hace tiempo2, muchas de las páginas que existen en Internet que usan MathML no se visualizan correctamente con este navegador.

En cambio, Internet Explorer no tiene soporte alguno para MathML, siendo necesrio instalar programas de terceros, uno de los más conocidos es MathPlayer. El problema radica en que mozilla sigue muy de cerca los estándares del W3C y para interpretar correctamente el código MathML necesita que éste esté dentro de una página en formato XHTML, lo que es bastante lógico si tenemos en cuenta que tanto XHTML como MathML son XML (no así HTML). En cambio Mathplayer (y probablemante otros programas) soporta el uso de MathML tanto dentro de XHTML como dentro de HTML3.Como consecuencia de esto, muchos diseñadores de páginas web siguen usando MathML con HTML, sin preocuparse de qué pasa con sus páginas web más allá de Inernet Explorer. En el siguiente artículo trataré de describir qué es XHTML, cuáles son sus ventajas he inconvenientes respecto al HTML tradicional, incluir una peqeña guía de migración de HTML a XHTML,  explicar cómo incluir MathML  para que se visualice correctamente en ambos navegadores, y al final mostraré una pequeña página de ejemplo.

Qué es XHTML, comparativa con HTML

Para el W3C XHTML es la evolución de HTML, y es la esperanza de solventar el caos actual que existe en Internet, con un montón de páginas que usan sintaxis propietarias de algunos navegadores o que simplemente están mal escritas. XHTML está basado en XML, así elimina parte de la complejidad existente en HTML reteniendo el poder expresivo.

Ventajas de XHTML:
Desventajas de XHTML:

Cambios de sintaxis significativos entre HTML y XHTML

A continuación se muestran los cambios más significativos que hay que realizar para pasar de HTML a XHTML:

Cómo incluir MathML en los documentos XHTML

Los fragmentos de código mathML deben ir entre las etiquetas <math></math>. El principal atributo de la etiqueta <math> es "display", tiene dos posibles valores:
  1. display="inline": La fórmula se muestra en el mismo párrafo que el texto, como en ( - Π 2 , Π 2 )
  2. display="block": Es el valor predeterminado. La fórmula se muestra en un bloque aparte, como en ( - Π 2 , Π 2 )
Además hay que incluir el espacio de nombres apropiado, lo más sencillo es hacer una referencia al espacio definido en la declaración DOTYPE del documento:
<math display="inline" xmlns="&mathml;"><mi>Π</mi></math>

Aunque es posible escribir el código mathML con cualquier editor, la notación hace que sea necesario escribir muho para conseguir fórmulas relativamente sencillas, por eso es habitual usar programas que elaboren el código MathML por nosotros4.

Página de ejemplo

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [
  <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Prueba</title>
</head>
<body>
<math display="inline" xmlns="&mathml;">
 <semantics>
  <mrow>
   <msup>
    <mi>x</mi>
    <mn>2</mn>
   </msup>
   <mo>&#x2212;</mo><msup>
    <mi>y</mi>
    <mn>2</mn>
   </msup>
   <mo>=</mo><mn>1</mn>
  </mrow>
 </semantics>
</math>
</body>
</html>

Otros aspectos a tener en cuenta con Mozilla y las fórmulas matemáticas

[1] También se puede usar en otro tipo de documenos, como Docbook.
[2] Concretamente para las etiquetas de presentaión.
[3] Las versiones anteriores de Mathplayer anteriores a la 2.0 sólo soportaban MathML dentro de HTML, siendo necesario usar una hoja de estilo especial para mantener la compatibilidad entre navegadores.
[4] Otra posibilidad es usar la conversión desde LaTeX a MathML