Je cherche à automatiser la production de plusieurs pdf (du type énoncé, corrigé, les deux) à partir d'un document source et d'une compilation multiple en lualatex. L'environnement de travail est un Mac sous TexLive 2023, avec l'IDE TeXmaker. J'ai déjà dans mes documents des traitements conditionnels avec des booléens comme ci-dessous.
En compulsant différentes sources, j'ai bricolé ce bout de code, qui fonctionne :
Code : Tout sélectionner
\documentclass{article}
\newcommand{\luacondition}[3]{\ifnum1=\directlua{if #1 then tex.sprint(1) else tex.sprint(0) end}\relax #2\else #3\fi}
%0 pour énoncé (par défaut), 1 pour corrigé, 2 pour les deux
%\directlua{modecompil = 2}%déporté dans la commande de compilation
%défaut 0 ou autre chose que 1 et 2
\newif\ifestlecorrige\estlecorrigefalse
\newif\ifjeveuxtout\jeveuxtoutfalse
% si 1 ou 2
\luacondition{modecompil==1}{\estlecorrigetrue}{\estlecorrigefalse}
\luacondition{modecompil==2}{\jeveuxtouttrue}{\jeveuxtoutfalse}
\begin{document}
J'ai été exécuté avec modecompil=\directlua{tex.sprint(modecompil)}
Test 1 :
|\luacondition{modecompil==1}{réponse si vrai 11111}{réponse si faux 22222}|
Test 2 :
|\luacondition{modecompil==2}{réponse si vrai 33333}{réponse si faux 44444}|
\ifjeveuxtout
ben t'auras tout
\else
\ifestlecorrige
je suis le corrigé
\else
je suis l'énoncé
\fi
\fi
\end{document}
Code : Tout sélectionner
"latexmk" --shell-escape -e "$pdflatex=q/lualatex -synctex=1 -interaction=nonstopmode/" -pretex="\directlua{modecompil=0}" -jobname=% -lualatex %.tex -usepretex %.tex|"latexmk" --shell-escape -e "$pdflatex=q/lualatex -synctex=1 -interaction=nonstopmode/" -pretex="\directlua{modecompil=1}" -jobname=%_cor -lualatex %.tex -usepretex %.tex|"latexmk" --shell-escape -e "$pdflatex=q/lualatex -synctex=1 -interaction=nonstopmode/" -pretex="\directlua{modecompil=2}" -jobname=%_prof -lualatex %.tex -usepretex %.tex|open %.pdf
J'utilise TeX et ses dérivés depuis longtemps, mais je ne suis pas du tout un expert de la programmation en TeX. Ma question est la suivante : la macro
\luacondition
est-elle proprement définie et suffisamment robuste pour être utilisée en production ? Je suis preneur de tout conseil des sorciers TeX qui hantent ce forum 
IzB