Forums » Utilisation d'AMC (french) »
AMC et pythontex
Added by Francois Camus almost 11 years ago
Bonsoir,
j'ai pris l'habitude de mener mes calculs intégrés a mes fichiers latex à l'aide de pythontex. La compilation se passe alors en 3 étapes :pdflatex foo.tex
=> fabrique le fichier foo.pytxcodepython pythontex.py foo.pytxcode
=> execute le code pythonpdflatex foo.tex
=> fabrique le pdf en intégrant les résultats de l'execution python
Comment serait il possible de lancer cette succession de commandes quand on lance "Mettre à jour les documents" dans AMC ?
Merci d'avance
F Camus
Replies (11)
RE: AMC et pythontex - Added by Alexis Bienvenüe almost 11 years ago
tex
, et d'avertir AMC qu'il faut l'utiliser. Je vous laisse tester et corriger les idées suivantes. N'hésitez pas à créer une page de wiki pour documenter le résultat, avec éventuellement un exemple : cela pourra donner des idées à d'autres utilisateurs.
- Créer un fichier exécutable
/home/toto/prepython
qui contient à peu près :#! /bin/sh SRC=$1 pdflatex $SRC python pythontex.py `basename $SRC .tex`.pytxcode
- Ajouter dans les premières lignes du fichier source les lignes suivantes :
%%AMC:preprocess_command=/home/toto/prepython %%AMC:latex_engine=pdflatex
Le script prepython
peut modifier le fichier LaTeX donné en argument sans problème, car il s'agit d'une copie du fichier source du projet.
Si vous voulez pouvoir transmettre votre projet facilement avec quelqu'un d'autre, vous pouvez aussi placer votre prepython
dans le répertoire projet (donc un exemplaire dans tous les projets concernés), et utiliser
%%AMC:preprocess_command=prepython %%AMC:latex_engine=pdflatex
RE: AMC et pythontex - Added by Alexis Bienvenüe almost 11 years ago
Une remarque : avec la solution ci-dessus, le script prepython
doit donner exactement le même résultat à chaque fois qu'il est appelé (en particulier, ne pas mettre d'actions aléatoires dedans)...
RE: AMC et pythontex - Added by Francois Camus almost 11 years ago
Merci de votre réactivité. Cela semble prometteur :
quand je lance pdflatex foo.tex
, le script est bien exécuté et je retrouve les résultats du code python dans le pdf.
Mais je n'obtiens pas de résultats du code python quand je lance la compile de foo.tex depuis AMC
je vais continuer à chercher de ce coté.
Merci à vous
F Camus
RE: AMC et pythontex - Added by Alexis Bienvenüe almost 11 years ago
Pouvez-vous donner un petit exemple de fichier source à tester ?
RE: AMC et pythontex - Added by Francois Camus almost 11 years ago
Bonjour,
ci joint un exemple ECM.tex contenant un peu de python.
j'utilise AMC 1.2.1 (svn:1403).
voici mon script prePythonTex4AMC:
#! /bin/sh
SRC=$1
rm -r ./pythontex-files-*
pdflatex $SRC
python ~/texmf/tex/pythontex/pythontex.py `basename $SRC .tex`.pytxcode
Le script fonctionne correctement lorsque je le lance parpdflatex -shell-escape ECM.TEX
en ayant pris soin de placer dans le préambule : %\immediate\write18{/chemin/vers/prePythonTex4AMC \jobname .tex}
mais depuis AMC, l'execution du python a bien lieu (creation de sous-repertoire /pythontex-files-*), mais le résultat n'est pas récupéré lors de la derniere compilation latex.
Merci pour votre aide
F Camus
ECM.tex - Exemple incluant du code python (685 Bytes)
RE: AMC et pythontex - Added by Alexis Bienvenüe almost 11 years ago
Finalement, ce n'était pas aussi simple que je l'avais imaginé.
J'ai un peu modifié AMC, pour arranger cela. À partir de la révision r1495, vous pouvez mettre dans le répertoire projet un fichier prePythonTex4AMC
(il faut toujours qu'il soit exécutable) comme cela :
#! /bin/sh SRC=$1 echo "***** JOBNAME=$AMC_JOBNAME" echo "***** CMD=$AMC_CMD" rm -rf ./pythontex-files-* rm -f $AMC_JOBNAME.pytxcode $AMC_CMD echo "***** PYTHON" pythontex $AMC_JOBNAME.pytxcode echo "***** END FILTER"
(les
echo
sont juste là pour aider au débogage) et mettre a début de votre fichier source les lignes suivantes :%%AMC:preprocess_command=prePythonTex4AMC %%AMC:jobspecific=1 %%AMC:latex_engine=pdflatex --shell-escape
RE: AMC et pythontex - Added by Alexis Bienvenüe almost 11 years ago
Attention également à ne pas utiliser de caractère _
dans les identifiants de question...
RE: AMC et pythontex - Added by Francois Camus almost 11 years ago
SUPER !
j'ai du modifié le script pour l'appel de pythontex.py :
#! /bin/sh SRC=$1 echo "***** JOBNAME=$AMC_JOBNAME" echo "***** CMD=$AMC_CMD" rm -rf ./pythontex-files-* rm -f $AMC_JOBNAME.pytxcode $AMC_CMD echo "***** PYTHON" python /chemin/vers/pythontex.py $AMC_JOBNAME.pytxcode echo "***** END FILTER"
Merci pour votre réactivité et le temps passé, cela va me faciliter la vie .
Je vais ajouter un wiki.
RE: AMC et pythontex - Added by Francois Camus almost 11 years ago
Bonsoir,
je relance la discussion et je reviens vers vous car je n'arrive pas à corriger un QCM contenant du python comme décrit ci-dessus :
Après saisie des copies (manuelle pour ma part), je lance la correction (pas d'erreurs apparentes) mais toutes les notes sont vides.
Merci d'avance à celui qui pourrait me donner des pistes.
F Camus
RE: AMC et pythontex - Added by Francois Camus almost 11 years ago
Bonsoir,
Bon, bon , Je progresse, à mon rythme et sans trop comprendre.
Rappel : après être passé à la version 1.2.1495 (svn:1495), la compilation de QCM utilisant du code python fonctionne correctement, mais pas de correction possible de QCM (avec ou sans python)
j'ai réinstallé la version stable 1.2.1 (svn:1403), je retrouve la correction de QCM (avec ou sans python), mais je reviens à une version sans compilation de QCM avec python.
Quelqu'un peut il me dire si j'ai mal fait quelquechose ?
Merci
RE: AMC et pythontex - Added by Alexis Bienvenüe almost 11 years ago
Pouvez-vous fournir un exemple complet minimal (fichier source complet le plus petit possible, et un scan) qui montre le problème ?
(1-11/11)