Latex fonctionnel mais pourtant Mimetex utilisé

Latex fonctionnel mais pourtant Mimetex utilisé

par Mathieu G.,
Nombre de réponses : 2

Bonjour,

Sur un serveur Debian Stretch 9.4 et Moodle 3.4.2, j'ai installé les paquets "texlive", "imagemagick" et "mimetex", qui livrent bien les binaires attendus, et je les ai configurés comme indiqué sur TeX notation filter :


La conséquence est qu'un cours contenant "\forall r>0,  B(x,r)\cap A \neq \emptyset A", soit :

$$ \forall r>0,  B(x,r)\cap A \neq \emptyset A $$

rend bien le code Latex en image, mais générée par mimetex, et donc très pixelisée, et ayant des problèmes ("[?]") avec les espaces insécables (UTF-8 je suppose) :


D'autant qu'en vérifiant avec la page /filter/tex/texdebug.php, le binaire latex fonctionne très bien si je lance le test "4. Show a graphic image of the algebraic expression rendered with Tex/Ghostscript.", exactement comme voulu :


Pourquoi Moodle n'arrive-t-il pas à utiliser "/usr/bin/latex" dans le cadre des cours ?

Moyenne des évaluations  -
En réponse à Mathieu G.

Re: Latex fonctionnel mais pourtant Mimetex utilisé

par Éric Bugnet,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Traducteurs

Salut,

Vérifie que tes filtres soient bien activés, et classe les peut être dans un ordre différent :

/admin/filters.php

Éric

En réponse à Éric Bugnet

Re: Latex fonctionnel mais pourtant Mimetex utilisé

par Mathieu G.,

Merci Éric, mais ce n'était pas si évident.

À grands coups de strace des processus Apache2, j'ai fini par comprendre ce qu'il se passait.

La formule dans le cours contenait deux espaces juxtaposés ("  "), que l'éditeur de texte WYSIWYG HTML de Moodle convertissait en "&nbsp; ", qui à son tour était convertit en "<espace insécable UTF8> " avant d'être envoyé pour rendu à Latex. Latex devait donc convertir du texte UTF8. Or le préambule Latex par défaut force la prise en charge des caractères latin1 (\usepackage[latin1]{inputenc}), pas utf8.

Conséquence : le binaire latex échouait à parser cette formule à cause de son caractère UTF8, et Moodle se rabattait automatiquement sur mimetex, qui semble plus robuste (il transforme l'espace insécable en "[?][?] ", au lieu d'échouer).

La correction consiste donc à modifier le Préambule LaTeX pour accepter l'UTF8 : \usepackage[utf8]{inputenc}

La faute est partagée entre l'auteur initial de la formule (qui a inséré deux espaces successifs ; mais on ne peut évidemment pas vraiment lui en vouloir) et Moodle qui devrait rendre plus visible les retours d'erreur de Latex aux auteurs, afin qu'ils les corrigent au fur et à mesure, plutôt que de seulement se rabattre silencieusement sur mimetex.

Moyenne des évaluations Utile (5)