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

5 comentarios:

Jose Mª Rosell dijo...

Muchas gracias.
Me ha resultado muy útil el "parche".
Saludos

Anónimo dijo...

Muchas gracias.
Soy un matemático que me estoy "metiendo en este berenjenal" y me has ayudado mucho.

De nuevo muchas gracias

José Gregorio Díaz Unda dijo...

Saludos a todos!

Muchas gracias por sus comentarios.

Cualquier información adicional no duden en consultarla.

Éxitos!

José Gregorio.

Andrés dijo...

Muchisimas gracias por la ayuda, a mi me pasaba que las imágenes quedaban como cortadas e ilegibles, pero con ese cambio quedan perfectas!!! Todo perfecto, y funciona 100%, gracias!

Anónimo dijo...

En realidad muchas gracias amigo, convertir las imagenes a .png es lo mejor jeje, aunque eso de editar archivos alomejor ahora ya esta de mas porque en el mismo moodle (estoy usando el 1.9.9) esta esa opcion para decidir en que formato mostrar la imagen si en GIF o PNG, lo puedes encontrar en Moodle->Modulos->Filtros->Escritura TEX (previamente habilitado el filtro TeX, claro =P)