MathJax es una biblioteca de JavaScript multinavegador que muestra notación matemática en navegadores web , utilizando el marcado MathML , LaTeX y ASCIIMathML . [3] [4] [5] MathJax se publica como software de código abierto bajo la licencia Apache .
El proyecto MathJax comenzó en 2009 como sucesor de una biblioteca de formato matemático de JavaScript anterior, jsMath , [6] y está administrado por la American Mathematical Society . [7] El proyecto fue fundado por la American Mathematical Society, Design Science y la Society for Industrial and Applied Mathematics y cuenta con el apoyo de numerosos patrocinadores como el American Institute of Physics y Stack Exchange . [8]
MathJax es utilizado por sitios web como arXiv , [9] ScienceDirect de Elsevier , [10] MathSciNet , [11] n-category cafe , MathOverflow , Wikipedia (en el backend), [12] [13] Scholarpedia , revistas del Proyecto Euclid , [14] IEEEXplore , [15] Publons , Coursera y el All-Russian Mathematical Portal . [16]
MathJax se descarga como parte de una página web, escanea la página en busca de marcado matemático y compone la información matemática en consecuencia. Por lo tanto, MathJax no requiere la instalación de software ni fuentes adicionales en el sistema del lector. Esto permite que MathJax se ejecute en cualquier navegador con soporte para JavaScript, incluidos los dispositivos móviles. [17]
MathJax puede mostrar matemáticas mediante una combinación de HTML y CSS o mediante el soporte nativo MathML del navegador, cuando esté disponible. El método exacto que MathJax utiliza para componer matemáticas está determinado por las capacidades del navegador del usuario, las fuentes disponibles en el sistema del usuario y las opciones de configuración. MathJax v2.0-beta introdujo la representación SVG . [18]
En el caso de la composición tipográfica HTML y CSS, MathJax maximiza la calidad de visualización de las matemáticas mediante el uso de fuentes matemáticas si están disponibles y recurriendo a imágenes para navegadores más antiguos. Para los navegadores más nuevos que admiten fuentes web , MathJax proporciona un conjunto completo de fuentes web, que MathJax descarga según sea necesario. Si el navegador no admite fuentes web, MathJax verifica si hay fuentes válidas disponibles en el sistema del usuario. Si esto no funciona, MathJax proporciona imágenes de los símbolos necesarios. [ aclaración necesaria ] MathJax se puede configurar para habilitar o deshabilitar fuentes web, fuentes locales y fuentes de imagen.
MathJax utiliza las fuentes STIX para incluir matemáticas en las páginas web. La instalación de las fuentes en el equipo local mejora la velocidad de composición tipográfica de MathJax. [19]
MathJax puede mostrar notación matemática escrita en formato LaTeX o MathML . Dado que MathJax está pensado únicamente para la visualización de matemáticas, mientras que LaTeX es un lenguaje de diseño de documentos, MathJax solo admite el subconjunto de LaTeX que se utiliza para describir la notación matemática. [17]
MathJax también admite la accesibilidad matemática al exponer MathML a través de su API al software de tecnología de asistencia , así como el "rol" básico de WAI-ARIA y los atributos alt más antiguos . [20]
La arquitectura de MathJax está diseñada para admitir la incorporación de idiomas de entrada y métodos de visualización en el futuro a través de módulos cargados dinámicamente. MathJax también incluye una API de JavaScript para enumerar e interactuar con instancias matemáticas en una página.
MathJax procesa las operaciones matemáticas en los navegadores más populares, incluidos Internet Explorer 6+, Firefox 3+, Google Chrome 0.3+, Safari 2.0+, Opera 9.5+, Safari para iPhone / iPad y el navegador Android . Algunas versiones anteriores de navegadores no admiten fuentes web (con la construcción CSS @font-face ), por lo que deben utilizar el modo de fuente de imagen de MathJax. La lista de compatibilidad de navegadores está disponible en el sitio oficial. [21]
MathJax se puede agregar fácilmente a muchas plataformas web populares. [22]
MathJax se puede utilizar en Node.js desde la versión 3; [23] para la versión 2, la biblioteca MathJax-node [24] proporciona compatibilidad con Node.js.
Cualquier ecuación de MathJax que se muestre en un navegador compatible se puede copiar en formato MathML o LaTeX a través del submenú "Mostrar matemáticas como" si se hace clic con el botón derecho o con la tecla Control presionada sobre ella. Luego se puede pegar en cualquier editor de ecuaciones que admita MathML o LaTeX, como Mathematica , MathType , MathMagic o Firemath , para reutilizarla. [25]
Las ecuaciones generadas en formato MathML o LaTeX por cualquier editor de ecuaciones de terceros se pueden utilizar en páginas web habilitadas para MathJax.
MathJax replica los comandos del entorno matemático de LaTeX. Los comandos matemáticos de AMS-LaTeX se admiten a través de extensiones. MathJax también admite macros de TeX y formatos diversos como \color
y \underline
. [26]
MathJax agregó soporte parcial para MathML 2.0 y algunas construcciones de MathML 3.0 en su versión beta 2. MathJax admite MathML de presentación y, a partir de la versión 2.2, proporciona soporte experimental para MathML de contenido. [27]
El sitio MathJax ha estado proporcionando una red de distribución de contenido (CDN) donde el navegador puede cargar el JavaScript necesario para que MathJax funcione en tiempo de ejecución desde la CDN. Esto simplifica la instalación y garantiza que siempre se utilice la última versión de la biblioteca. Con el tiempo, el uso del servidor ha crecido de 1,3 TB de tráfico por mes en 2011 a 70 TB por mes en 2017. Debido al aumento del costo de alojamiento del servidor, el servidor principal de CDN cerró a fines de abril de 2017. Hay servidores CDN alternativos de terceros disponibles. [28]
{{cite journal}}
: CS1 maint: DOI inactivo a partir de noviembre de 2024 ( enlace )