Forums » Utilisation d'AMC (french) »
amc-txt et affichage code informatique (minted ou pythontex)
Added by jean claude m over 3 years ago
Bonjour
J'utilise amc-txt pur la simplicité de rédaction du markdown et l'échange avec des collègues qui ne connaissent pas ou pas très bien latex.
Est-il possible d'utiliser minted ou pythontex avec amc-txt?
Je trouve des méthodes avec Latex mais pas amc-txt.
merci
Replies (5)
RE: amc-txt et affichage code informatique (minted ou pythontex) - Added by Frédéric Bréal over 3 years ago
- Pour pythontex, je ne pense pas car il faut ajouter 3 lignes avant la déclaration de la classe du fichier LaTeX.
Or en AMC-txt, les codes (étoiles, 2 étoiles, [options], , etc) sont convertis en LaTeX avec des scripts perl pour obtenir un fichier tex.
Il faudrait donc consevoir ces scripts et ces options.
- Pour minted, il faudrait tester en utilisant les options :
LaTeX: 1 LaTeX-Preambule:\usepackage{minted}
puis si vous avez un fichier prog.py\inputminted{python}{prog.py}
N'utilisant pas minted et python, je ne garantis pas ma réponse.
RE: amc-txt et affichage code informatique (minted ou pythontex) - Added by jean claude m over 3 years ago
Bonjour et merci pour ta réponse
J'avais fait ce que tu proposes, mais il faut compiler le latex une première fois avec --shell-escape et comme je n'ai pas le tex mais source.txt je ne sais pas le faire.
J'ai réussi en mettant dans
- préférence xelatex --shell-escape puis compilation
- préférence xelatex - puis compilation
Mais je ne vais pas faire ceci tout le temps, c'est beaucoup trop long et bien trop clickodrome.
C'est pourquoi je pensais
- pouvoir le faire en console avec quelque chose comme amc prepare
ou (et)
- rajouter dans source.txt pour dire de compiler 2 fois et la ° fois avec l'option shell-escape
RE: amc-txt et affichage code informatique (minted ou pythontex) - Added by Frédéric Bréal over 3 years ago
Mon idée :
- Indiquer le nombre de sujet dans l'interface,
- compiler en mode debogage,
- fermer le mode debogage,
- ouvrir le fichier log,
- copier la ligne 35 avec les arguments puis en ligne de commande
auto-multiple-choice prepare ici copie de la ligne 35 mais en ajoutant --shell-escape avec xelatex
- puis nouvelle compilation sans le --shell-escape.
- Après retour à l'interface
Ça fait beaucoup de manipulations mais en gardant une trace des commandes, il faudra juste changer le nom du futur fichier txt.
RE: amc-txt et affichage code informatique (minted ou pythontex) - Added by jean claude m over 3 years ago
Je regarderai avec tes conseils.
Merci
RE: amc-txt et affichage code informatique (minted ou pythontex) - Added by florian tobé over 3 years ago
Salut,
Pour moi il me semble que ça fonctionne bien même si c'est le premier sujet que je compile avec python tex et que je ne l'ai pas encore testé avec mes élèves.
J'ai tout de même changé le moteur latex pour xelatex. Mais je n'ai rajouté aucune ligne spécifique en en-tête de fichier.
La compilation se déroule comme suit :
Je clique un coup sur "mettre à jour"
Je passe en ligne de commande et je lance : python3 ~/Téléchargements/pythontex/pythontex3.py amc-compiled.tex
Je reclique sur "mettre à jour"
Et voilà !
Pour les pièces jointes il faudra retirer l'import des fichiers à la fin et changer le chemin vers AF1.txt. J'avais la flemme mais si tu galères je prendrais le temps.
Si le grand Gérard (grand par le talent car j'ignore tout du reste) aurait une idée pour pouvoir taper du python indenté sur plusieurs ligne dans les fichiers questions, je suis preneur.
Exemple de question qui risque de devenir illisble avec le temps :
- Calculer 3a - 2b pour a = 4 et b = 5 :
*[id=CL1.2,horiz] Calculer \pyc{l1=aleal("abcxyz");l2=aleal("abcxyz");s=aleal("+-");a=alea(2,9);b=alea(2,9);c=alea(2,9);d=alea(2,9);r1=alea(1,99);r2=alea(-99,-1)} $ \py{a}\py{l1} \py{s} \py{b}\py{l2} $ pour $\py{l1}=\py{c}$ et $\py{l2}=\py{d}$ :
+ $ \pyc{print(a*d + b*d) if s=="+" else print(a*c - b*d)} $
- $ \pyc{print(int(str(a)+str(d)) + int(str(b)+str(d))) if s=="+" else print(int(str(a)+str(c)) - int(str(b)+str(d)))} $
- [[$ \pyc{exec("while r1==(a*d + b*d) : r1=alea(1,99)\nprint(r1)") if s=="+" else exec("while r1==(a*d - b*d) : r1=alea(1,99)\nprint(r1)")} $]]
- [[$ \pyc{exec("while r2==(a*d + b*d) : r2=alea(99,-1)\nprint(r2)") if s=="" else exec("while r2==(a*d - b*d) : r1=alea(-99,-1)\nprint(r2)")} $]]
Remarquez l'usage de exec() avec des \n qui nous fabrique ce python de m...
Slt !
simple-txt.txt (2.8 kB)
AF1.txt (835 Bytes)
(1-5/5)