Esta es la primera de las muchas publicaciones -esperemos- en este proyecto, pero ¿por qué iniciar con una publicación sobre LaTex? Esta es la explicación. LaTex, tal como aparece en su página oficial, es un "... sistema de tipografía de alta calidad; incluye características diseñadas para la producción de documentación técnica y científica. LaTex es el estándar por defecto para la comunicación y publicación de documentos científicos. LaTex está disponible como software libre."
LaTex no es un procesador de palabras, nos dicen los autores de dicho proyecto, por el contrario: "LaTex anima a las personas autoras a no preocuparse mucho por la apariencia de sus documentos, pero sí a concentrarse en obtener el contenido correcto...". Las características principales de este sistema son:
- Tipografía para artículos de revistas, reportes técnicos, libros y presentaciones con diapositivas.
- Control sobre grandes documentos que contienen secciones, referencias cruzadas, tablas y figuras.
- Tipografía para fórmulas matemáticas complejas.
- Tipografía avanzada para matemáticas con AMS-LaTex.
- Generación automática de bibliografías e índices.
- Tipografía multilingüe.
- Inclusión de trabajo artístico, y procesado de color o color de tinta plana.
- Uso de PostScript y fuentes Metafont.
Las últimas dos características están mucho más orientadas hacia el trabajo de impresión, tema que por lo pronto no es de nuestro interés, pero las primeras seis características son las que resultan de gran utilidad en un proyecto en el que se espera haya un alto contenido de letras, números y simbología matemática. Dadas estas seis primeras bondades, incluir la posibilidad de editar el contenido de un texto con las características de este sistema tipográfico es de gran ayuda cuando pretendemos hacer uso intenso y extenso de notación matemática.
Tuve mi primer acercamiento a LaTex con el proyecto R, lenguaje de programación para cómputo estadístico -del que estaremos escribiendo de manera prolífica-, a través de R Studio, un ambiente integrado de desarrollo (IDE) para R -sobre el cual también escribiremos mucho. La combinación de estos tres elementos (LaTex, R y R Studio) tiene resultados sorprendentes.
En un proyecto como este, donde estaremos empleando muchas letras, números y notación matemática, sería ideal poder utilizar LaTex para escribir con claridad toda la notación matemática requerida en las explicaciones. Y esta primera publicación tiene precisamente ese propósito.
Incluir notación matemática de manera limpia y acorde con los estándares de la materia que estemos tratando es verdaderamente sencillo a través de una herramienta de código abierto especialmente diseñada para dicho propósito. Se llama MathJax y tal como se explica en la documentación oficial de dicha herramienta se trata de "... un motor de visualización de código abierto para notación LaTex, MathML y AsciiMath que funciona en todos los navegadores modernos. Fue diseñado con el propósito de consolidar los avances recientes en las tecnologías web en una única, definitiva, plataforma de soporte para "matemáticas en la web" para los navegadores más importantes y sistemas operativos, incluyendo a los dispositivos móviles. No requiere ninguna configuración por parte del usuario (sin descarga de plugins o instalación de software), de modo que el autor de la página puede escribir documentos web que incluyan matemáticas y tener la confianza en que los usuarios podrán visualizarla de manera fácil y natural. Uno simplemente incluye MathJax y algo de matemáticas en la página web, y MathJax hace el resto.". Y efectivamente, tal como lo describe esta cita, funciona así de simple.
Uno de los beneficios que considero más encomiables de esta tecnología es lo que la misma documentación nos dice: "MathJax incluye la habilidad de generar versiones de texto narrables de las expresiones matemáticas que pueden ser utilizadas con lectores de pantalla, lo que provee accesibilidad a las personas con discapacidad visual...". Estos pequeños detalles, que para muchas personas, podríamos decir que para la gran mayoría, pueden ser insignificantes, para otras personas pueden ser un factor decisivo en sus vidas respecto a lo que pueden ser y hacer con ellas. Solemos dar por hecho que todas las capacidades con las que nacemos siempre estarán con nosotros y, por esta misma razón, somos desconsiderados con quienes, por la razón que sea, no las tienen. Y vaya, lo más importante de la desconsideración es cuando se traduce en exclusión, situación en la que, a mi parecer, radica todo el "meollo" de la discriminación.
Pues bien, es como dicen los autores y contribuyentes al proyecto MathJax cuestión de unos simples pasos para resolver el problema de la inclusión de notación matemática en nuestro sitio web. Para los blogs que provee blogger (y si no me equivoco para cualquier otro proyecto HTML), se requiere incluir dos líneas de código dentro del código HTML de la página.
El primer script, tal como refiere el parámetro "src", llama a la fuente (u origen) de un servicio de una importancia crucial en el polifacético mundo de los navegadores. Tal como se explica en la página oficial de Polyfill.io, se trata de "Un servicio que acepta una solicitud para un conjunto de características del navegador y regresa múltiples llenados (polyfills) específicos que requiere el navegador solicitante.". En otras palabras, permite que la solicitudes al servidor que aloja el servicio se adapten al navegador específico que hace el requerimiento. El equipo de MathJax, supongo, emplea esta herramienta, que por cierto tiene el soporte de la revista Financial Times, para adaptar cualquier solicitud de su servicio a cualquier tipo de navegador.
El segundo script llama como fuente al archivo específico de JavaScript que hace todo el maravilloso trabajo para que podamos incluir notación matemática. Ese es ya, propiamente, el trabajo del equipo de MathJax. Los detalles de ese código js no son el interés ni el foco de esta publicación.
Finalmente, una vez concluido los pasos anteriores, utilizando la debida notación en LaTex, nuestra página web podrá mostrar la notación matemática que requiramos para los fines que consideremos más oportunos. Desde identidades tan simples como:
$$a=b$$
hasta algunas tan complejas como:
\(z^{\frac 1n}=[r(\cos x+i \sin x)]^{\frac 1n} = r^{\frac 1n} \left[ \cos \left( \dfrac{x+2\pi k}{n}\right )+i \sin \left( \dfrac{x+2\pi k}{n}\right )\right ]\)
\(k\in\mathbb{N} \mapsto 0\leqslant k \leqslant n-1\)
Si bien obtendremos resultados que, por si no bastara con la claridad con la que se muestran, además despliega texto indexable en búsquedas a través del propio sitio o de internet, la sintaxis necesaria no es tan sencilla y requiere de un periodo de aprendizaje cuya extensión dependerá de la complejidad de la notación matemática empleada; sin embargo, tampoco es tan complicada y claramente se obtienen beneficios que le darán una mejor presentación y usabilidad a nuestro sitio.
He dado muchas explicaciones para un procedimiento en verdad sencillo y para mucha gente tal vez únicamente hubiese sido necesario "ir al grano, sin tanto rodeo". Pero al final este ejercicio me permite comprender el trabajo que mucha gente hace, incluso de manera gratuita, para que también el trabajo de mucha más gente se simplifique. Sólo para la inclusión de notación matemática en este proyecto contribuyeron tres equipos de desarrolladores/as en diferentes ámbitos de trabajo, que probablemente ni se conocen (o tal vez sí, en este pequeño mundo sólo tenemos 6 grados de separación), que tienen como objetivo común permitirnos el acceso sin mayores restricciones a las "nuevas" (siempre nuevas) tecnologías. No debo olvidar añadir dos herramientas adicionales con licencia GNU que fueron sumamente útiles para editar el logo del proyecto LaTex: Gimp e Inkscape. Sin olvidar la plataforma que me permite trabajar en este proyecto, Blogger, tenemos en total a seis equipos de desarrolladores/as que hacen que este trabajo sea posible. A todos/as ustedes les estaré siempre enormemente agradecido.
Resulta claro, al menos para mí, la razón por la cual las iniciativas de código abierto y software libre resultan fundamentales en estos tiempos, definitivamente en cualquier tiempo, pero este es el que nos ha tocado vivir.
Saludos.
Comentarios
Publicar un comentario