Un « magic comment » de TexStudio (TS) commence par
> % !TeX TS-program =
Ca permet à TeXstudio de comprendre que ce n'est pas du LaTeX, mais que ça le concerne lui
Pour appeler le viewver pdf externe la commande TeXstudio est la suivante: `txs:///view-pdf-external`
`%` représente le nom du fichier tex (sans extension) pour une commande TeXstudio. Mais le premier %, au début du « magic comment » est le signe d'un commentaire LaTeX, et donc le compilateur LaTeX pdflatex ignore cette ligne.
`|`est le séparateur entre deux commandes du « magic comment »
Dans mon exemple *test.tex* est le fichier compilé en *test.pdf* et *test_sol.pdf* (compilation conditionnelle multiple)
Pour ouvrir dans le viewer externe les deux fichiers *test.pdf* et *test_sol.pdf* produits par la compilation, il faut ajouter au « magic comment » deux autres commandes d'affichage des pdf (séparées par le séparateur `|`).
Cela fonctionne avec n'importe quel fichier *nom_fichier.tex* qui produit un *nom_fichier.pdf* et un *nom_fichier_sol.pdf*. La compilation conditionnelle de l'exemple est pour un fichier d'exercices avec solution (_sol) et sans solution.
> | txs:///view-pdf-external %_sol.pdf`|
> txs:///view-pdf-external %.pdf
et au total compilation conditionnelle + affichage des deux pdf dans pdf viever externe
% !TeX TS-program = pdflatex -jobname=%_sol "\newcommand{\version}{}\input{%}" | pdflatex -jobname=%_sol "\newcommand{\version}{}\input{%}" | pdflatex "\newcommand{\version}{noanswer}\input{%}" | pdflatex "\newcommand{\version}{noanswer}\input{%}"|txs:///view-pdf-external %_sol.pdf | txs:///view-pdf-external %.pdf
Merci à @samcarter pour toute son aide à répondre à ces questions. Le « magic comment » pour la compilation conditionnelle est le sien, le code latex également
également (*<a href="https://texnique.fr/osqa/questions/6789/compilation-conditionnelle-production-de-plusieurs-fichiers-pdf-differents-en-une-seule-commande-et-a-partir-dune-seule-source/6790">Compilation conditionnelle</a>*)
Exemple Complet Minimal
%--------------------------------------------------------------------------------
% Magic Comment
% !TeX TS-program = pdflatex -jobname=%_sol "\newcommand{\version}{}\input{%}" | pdflatex -jobname=%_sol "\newcommand{\version}{}\input{%}" | pdflatex "\newcommand{\version}{noanswer}\input{%}" | pdflatex "\newcommand{\version}{noanswer}\input{%}" | txs:///view-pdf-external %_sol.pdf | txs:///view-pdf-external %.pdf
%--------------------------------------------------------------------------------
% Pour vérifier que \version est bien défini, ne fait rien si c'est le cas,
% sinon, si ce n'est pas le cas, définition de \version par défaut
% ici par défaut version sans les réponses (\version = noanswer)
% en changeant la ligne commentée \version avec les réponses (\version = rien)
% Mais en fait \version est défini dans le « magic comment » pour chaque compilation
% c'est juste une sécurité en cas de faute de frappe par exemple,
% ou si le code n'est pas exécuté dans TeXstudio (dans Overleaf par exemple)
% Et dans ce cas évidemment, le « magic comment » est ignoré et ne s'exécute pas
\ifdefined\version
\else
\newcommand\version{noanswer} % without answers
%\newcommand\version{} % with answers
\fi
%--------------------------------------------------------------------------------
\documentclass{article}
\usepackage[\version]{exercise}
\begin{document}
\begin{Exercise}[title={Title},label=ex1]
question text
\end{Exercise}
\begin{Answer}[ref={ex1}]\part{title}
solution
\end{Answer}
\end{document}