Pas d'affichage du filtre Tex/Latex

Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
Nombre de réponses : 16
Bonjour,
Il nous est Impossible de faire afficher les formules mathématiques dans notre moodle.

Le moodle/filter/tex/texdebug.php nous donne un bon résultat en mode Tex/Ghostscript
Mais il rend une erreur 127 dans le mode mimetex : Cannot execute using backquotes in Safe Mode

Si on désactive le safe_mode, le mode mimetex fonctionne. Mais il n'est pas question pour nous d'enlever cette option par mesure de sécurité.

Il me reste donc deux options :

-Soit activer le mode Tex/Ghostscript dans moodle ? Le filtre semble "bloqué" sur mimetex. Qqun sait-il comment faire ?
-Soit faire tourner mimetx en safe_mode. Qqun sait-il comment faire ?

Quelqu'un parmi vous peut-il nous apporter aide et conseils ?
Merci par avance.

Notre configuration :
Un serveur Linux Apache 2.0 fonctionnant en safe_mode sur le gid.
avec un safe_mode_exec_dir correspondant au répertoire moodle/filter/tex

Moyenne des évaluations  -
En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Valery Fremaux,

C'est en effet un problème cornélien. Par définition le safe_mode permet de verrouiller le serveur sur une fonction de lecture, ou d'exécution très contrôlée de scripts sous le contrôle de l'utilisateur courant (l'utilisateur d'usage des scripts).

Il est donc impossible d'utiliser une commande system ou exec ou passthru précisément pour éviter une exécution avec des droits croisés.

La question est pour quelle raison avez vous REELLEMENT besoin du safe_mode ? Si votre serveur Web ne sert pas à des exécutions de pages Web "expérimentales" déposées par des utilisateurs non administrateurs, il n'y pas de raison particulières. Si votre serveur n'exécute que des plates-formes Web du type de Moodle, le safe_mode est une sursécurité qui ne sert à rien dans ce cas.

Si par contre, vous laissez votre serveur "ouvert" pour que des utilisateurs puissent déposer et exécuter des scripts PHP à eux, alors, évidemment, vous avez besoin du safe_mode. Il est alors à ce moment possible d'envisager d'utiliser un autre Apache réglé différemment pour ces deux services distincts, en obligeant chaque Apache à travailler dans deux DocumentRoot bien isolés.

Ainsi vous pourrez retrouver les bénéfices de mimetext. 

En réponse à Valery Fremaux

Re: Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
Bonjour,
Pour le safe mode on n'a pas le choix. C'est une machine partagée et on a subit un défacement de plusieurs milliers de pages il y a trois ans. Nous ne pouvons controler les scripts de tous nos utilisateurs. Même si le safe mode disparait dans php 6 : On verra une autre politique de sécurité où on n'y passera pas. De toutes façons ce sont nos ingénieurs réseau qui décident.
Je n'ai donc pas le choix. Mais je ne comprends pas pourquoi le mode ghostscript fonctionne avec le programme de test et qu'on ne peut choisir ce mode dans le filtre tex de moodle ? Le filtre tex est donc écrit pour mimetex exclusivement ?

En tout cas merci pour ces premiers éléments de réponse : j'interroge les services techniques sur la mise en place d'une seconde session d'apache sans safe_mode.

Merci de votre aide.
En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Non, le filtre est aussi prévu pour du vrai LaTeX, mais en cas de défaut de configuration retombe sur mimeTeX.

Avez-vous lu la doc (en anglais) ici : http://docs.moodle.org/en/TeX_filter ? (elle n'existe pas encore en français. Si le coeur vous en dit...)

En réponse à Nicolas Martignoni

Re: Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
Ce document m'éclaire un peu effectivement.
Mais mon linux est une redHat.

Pour le chemin de latex :
latex executable (/usr/bin/tex) is readable
dvips executable (/usr/bin/dvips) is readable
convert executable (/usr/bin/convert) is readable

Mon admin m'a installé :
/usr/bin/tex /usr/bin/texdoctk /usr/bin/texfind /usr/bin/texi2dvi /usr/bin/texi2pdf /usr/bin/texshow /usr/bin/texutil
/usr/bin/texconfig /usr/bin/texexec /usr/bin/texfont /usr/bin/texi2dvi4a2ps /usr/bin/texindex /usr/bin/text2wave
/usr/bin/texdoc /usr/bin/texexpand /usr/bin/texhash /usr/bin/texi2html /usr/bin/texlinks /usr/bin/tex_to_images

Quand je lance à la main le tex, il me génère des choses pas très claires :
/var/www/plateforme_fad/moodle/filter/tex/tex --interaction=nonstopmode /var/www/plateforme_fad/moodle_data/temp/latex/520552b72c47bdbdbdd6fc94f7583344.tex
OUTPUT: This is TeX, Version 3.14159 (Web2C 7.4.5)

(/var/www/plateforme_fad/moodle_data/temp/latex/520552b72c47bdbdbdd6fc94f758334
4.tex
! Undefined control sequence.
l.1 \documentclass
 [12pt]{article}
! Undefined control sequence.
l.2 \usepackage
 [latin1]{inputenc}
! Undefined control sequence.

etc ....
Je me demande s'il interprète correctement le code qu'on lui envoie ...
Est-ce le bon binaire ?
Merci.

En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

En effet, ce n'est pas le bon binaire. Celui que vous avez est TeX et il faut LaTeX. En principe, chez vous, il faudrait quelque chose comme /usr/bin/latex, qui est un lien symbolique vers /usr/bin/pdftex.

Et quand vous lancez à la main /usr/bin/latex, il doit répondre :

This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)

ou quelque chose de semblable. Il faut donc demander à votre admin d'installer LaTeX et pas seulement TeX.

En réponse à Nicolas Martignoni

Re: Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
Bonjour et vraiment merci : j'ai progressé grâce à vous.
J'ai paramétré le pdftex.cfg : output_format 0 pour qu'il génére du dvi.
Je n'obtiens toujours rien dans moodle mais des fichiers .gif se génèrent : elles n'apparaissent pas dans moodle mais je les trouve dans le répertoire temp de moodle_data

On progresse. Mais l'image est très grande (A4) et la formule se trouve tout en haut. Le début de l'image générée reprend le préambule latex comme s'il n'était pas interprété.
Je l'ai découpée et voici ce qu'on obtient :
test_formule.jpg
Sans doute un problème de configuration de pdftex mais j'ai beau regarder les forums, je ne vois pas. J'ai des erreurs Undefined control sequence.

Et du côté de moodle, toujours pas d'image.
Est-ce du côté du pdftex.ini qu'il faut regarder ?
Vous m'avez déjà beaucoup aidé ... puis-je abuser de nouveau ?
Cordialement.
En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

À voir, c'est mimeTeX qui vous a fabriqué l'image. À votre place, je jetterais un oeil au log de Apache pour voir ce qu'il dit.

AMHA, il ne doit pas être nécessaire de toucher la config de LaTeX. Elle fait toute seule le nécessaire. Que dit le log d'Apache si vous remettez toute la config LaTeX/pdfLaTeX dans son état initial ?

En réponse à Nicolas Martignoni

Re: Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
Je crois que je vais renoncer ...
Aucune erreur dans les logs d'apache.
En remettant la config de latex par défaut (avec latex->pdftex) et en lançant en mode console :

/usr/bin/latex --interaction=nonstopmode 428e63d97b7a59c9d3472a4426ebf56d.tex

J'obtiens toujours ce stupide message : comme s'il n'arrivait même pas à ouvrir ou lire le fichier ... (les droits sont bons et je suis en root).
  • This is pdfTeX, Version 3.14159-1.10b (Web2C 7.4.5) (Fatal format file error; I'm stymied)
Remarquez qu'il indique pdfTex et non pdfTexk ....

Le fichier tex contient :
  • \documentclass[12pt]{article}
  • \Usepackage[latin1]{inputenc}
  • \Usepackage{amsmath}
  • \Usepackage{amsfonts}
  • \RequirePackage{amsmath,amssymb,latexsym}
  • \pagestyle{empty}
  • \begin{document}
  • $ \pi $
  • \end{document}
J'ai essayé un fmtutil -all qui s'execute bien mais ne change rien.
Je ne trouve rien sur le net qui puisse m'orienter sur la bonne piste.
Merci de votre aide.

En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Le problème semble venir de votre installation de LaTeX. Si elle ne fonctionne pas, Moodle ne pourra pas l'utiliser pour fabriquer les images des formules. Quelques pistes de résolution :

  • Réinstaller complètement LaTeX sur le serveur (puisque l'installation actuelle ne fonctionne pas)
  • Installer une version récente de LaTeX (la vôtre indique un no de version 3.14159-1.10b (Web2C 7.4.5). J'ai chez moi une version 3.141592-1.40.3 (Web2C 7.5.6).

Bon courage (n'abandonnez pas, LaTeX est tellement bon en typo...) !

En réponse à Nicolas Martignoni

Re: Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
Merci pour vos encouragements mais rien n'y fait.
On a désinstallé les rpm tetex-latex tetex-fonts tetex texinfo
On a supprimé tous les fichiers de conf qui restaient après désinstal.
Puis réinstallation.
/usr/bin/latex pointe sur /usr/bin/pdftex
et toujours la même réponse :
/usr/bin/latex --interaction=nonstopmode /var/www/plateforme_fad/moodle_data/temp/latex/87ea22719b8320c49b86ec71bce1fc90.tex
OUTPUT: This is pdfTeX, Version 3.14159-1.10b (Web2C 7.4.5)
(Fatal format file error; I'm stymied)
RETURN CODE: 1
Rien n'y fait ...
En tout cas un très grand merci pour votre aide.
En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
En fait tetex n'est plus actuel (Thomas Essler, qui le développait, ne le maintient plus). Il faudrait essayer d'installer en lieu et place TeX Live, qui est récent et pourrait peut-être corriger le problème.
En réponse à Nicolas Martignoni

Re: Pas d'affichage du filtre Tex/Latex

par Bruno Douville,
En complément de ma réponse :
Le fichier tex contient :
  • \documentclass[12pt]{article}
  • \Usepackage[latin1]{inputenc}
  • \Usepackage{amsmath}
  • \Usepackage{amsfonts}
  • \RequirePackage{amsmath,amssymb,latexsym}\pagestyle{empty}
  • \begin{document}
  • $ f(x)=\Bigint_{-\infty}^x~e^{-t^2}dt $
  • \end{document}
Le fichier log contient :
  • This is pdfTeX, Version 3.14159-1.10b (Web2C 7.4.5) (format=pdftex 2008.6.27) 27 JUN 2008 11:44
  • **/var/www/plateforme_fad/moodle_data/temp/latex/d43a4633f4c1acbc0a6431f82fe005
  • e8.tex
  • (/var/www/plateforme_fad/moodle_data/temp/latex/d43a4633f4c1acbc0a6431f82fe005e
  • 8.tex{/usr/share/texmf/pdftex/config/pdftex.cfg}
  • ! Undefined control sequence.
  • l.1 \documentclass
  • [12pt]{article}
  • The control sequence at the end of the top line
  • of your error message was never \def'ed. If you have
  • misspelled it (e.g., `\hobx'), type `I' and the correct
  • spelling (e.g., `I\hbox'). Otherwise just continue,
  • and I'll forget about whatever was undefined.
etc ...
et pdf.cfg contient
  • % Thomas Esser, 1998, 1999, 2000 public domain.
  • output_format 0
  • compress_level 0
  • decimal_digits 3
  • page_width 210 true mm
  • page_height 297 true mm
  • horigin 1 true in
  • vorigin 1 true in
  • pk_resolution 6000
  • % by default we produce pdf 1.4:
  • pdf_minorversion 4
  • map pdftex.map

En réponse à Bruno Douville

Re: Pas d'affichage du filtre Tex/Latex

par Valery Fremaux,

Le rebond vers un serveur secondaire (port alternatif) peut être une solution, avec des redirections adéquates et en localisant votre service sur cette deuxième instance de serveur.

Bonne continuation.