jueves, 18 de junio de 2009

Mejorar calidad de LATEX en MOODLE





MOODLE es un sistema de gestión de aprendizaje increíblemente flexible, robusto y ademá mantenido por una comunidad de usuarios y desarrolladores realmente bárbara.

Dado que me ha tocado realizar la virtualización de "Matemática 2" de la Universidad, el uso de fórmulas matemáticas es intensivo.

Luego de haber realizado la habilitación del filtro de "LATEX" en MOODLE, varios profesores manifestaron que la calidad de los gráficos que se generaban era pobre. Pese a que yo los veía claros, decidí darme a la tarea de conseguir mejorar lo que ya era bueno :-)

Investigando en el sitio principal de MOODLE, vi que existían una gran cantidad de discusiones relacionadas con el tema. Hasta que por fin di con un POST que me indicaba claramente lo que debía hacer.

El secreto estaba en configurar MOODLE para que en vez de generar archivos ".gif", produjera archivos ".png". Esto obligó a editar un poco el código fuente del filtro de "LATEX" que trae MOODLE, pero para mi sorpresa no fué nada complicado.

Por el momento, esta solución la considero un "patch". Esperemos que el equipo de desarrollo de MOODLE realice el cambio permanente.

A continuación la solución:
  1. Editar el archivo ubicado dentro de la carpeta de MOODLE en "./filter/tex/texed.php" y cambiar:
    $image = md5($texexp) . ".gif";
    $filetype = 'image/gif';
    ... por ...
    $image = md5($texexp) . ".png";
    $filetype = 'image/png';
  2. Editar el archivo "./filter/tex/pix.php" y cambiar:
    $md5 = str_replace('.gif','',$image);
    ... por ...
    $md5 = str_replace('.png','',$image);
  3. Editar el archivo "./filter/tex/latex.php" y aplicar un par de cambios:
    ... el primero:
    $gif = "{$this->temp_dir}/$filename.gif";
    ... por ...
    $gif = "{$this->temp_dir}/$filename.png";
    ... y el segundo:
    unlink( "{$this->temp_dir}/$filename.gif" );
    ... por ...
    unlink( "{$this->temp_dir}/$filename.png" );
  4. Editar el archivo "./filter/tex/filter.php" y aplicar este último cambio:
    $filename = $md5 . ".gif";
    ... por ...
    $filename = $md5 . ".png";
  5. Finalmente, para aumentar el tamaño de las imágenes generadas por MOODLE, en la configuración del "filtro tex", cambiar el valor de "Densidad" por "160".
En este momento, tendremos nuestro MOODLE creando fórmulas inmejorables :D.

Éxitos!

José Gregorio.

FUENTES:
  1. http://moodle.org/mod/forum/discuss.php?d=120418
  2. http://docs.moodle.org/en/TeX_filter