Je cherche à créer un environnement qui permet d'afficher le code d'une figure metapost ainsi que la figure elle-même dans un document compilé avec lualatex et luamplib.
J'ai essayé les packages showexpl et tcolorbox et je me heurte au même problème. Dans l'ECM ci-dessous, je souhaiterais que ne soient pas affichées dans le listing les lignes \begin{mplibcode} et \end{mplibcode} puisque l'objectif est de montrer uniquement le code metapost.
Utiliser firstline et lastline de listings pour supprimer l'affichage de la première et de la dernière ligne de code mais je ne sais pas à l'avance le numéro de la dernière ligne.
Utiliser before lower et after lower de tcolorbox mais ça coince, voir ci-dessous.
Essayer avec VerbatimOutput (package fancyvrb) pour exporter juste le code metapost puis récupérer le fichier avec VerbatimInput dans l'environnement codemp puis (ou avant) dans un environnement de style listing.
@Le Texnicien de surface
En essayant fancyvrb, je me retrouve face au même problème : les lignes begin{mplibcode} et end{mplibcode} que j'aimerais supprimer du listing. J'ai trouvé dans la doc FancyVerbStartString et FancyVerbStopString qui pourraient m'aider mais ne semblent pas fonctionner avec begin{mplibcode} et end{mplibcode}.
Je suppose que je devrais regarder du côté de l'environnement Example de fancyvrb-ex et le mofifier mais je ne suis pas sûr d'en être capable...
@christophe-poulain
Non, ce n'est pas pour une formation :). C'était juste pour avoir quelques exemples mais une question en amène une autre et du coup, ça m'intéressait de savoir faire ça...
À propos du code, je ne sais pas très bien comment l'utiliser. Ça oblige à taper deux fois le code metapost ?
En tout cas, ça me permet de découvrir usrguide3.pdf et en particulier le +b de NewDocumentEnvironment qui est intéressant.
En fait tcolorbox sauvegarde le code dans un fichier, par défaut dans \jobname.listing (où \jobname est le nom du fichier maître sans son extension), et le « remet » en appelant \tcbuselistingtext@input, d'où cette solution.
Afin de ne pas perturber d'autres environnements « tcblistings » on peut faire :
Voici deux solutions en un fichier. Bien entendu, on peut encore améliorer la situation en créant une commande (ou en environnement) pour factoriser tout ça. J'utilise une fois fancyvrb et une fois tcolorbox. Il doit y avoir moyen de faire quelque chose du même genre avec listings mais je n'ai pas regardé.
Professeurs de mathématiques dans le secondaire, connaissez-vous le package ProfCollege de Christophe Poulain ? Il est aussi utile que bien documenté !
Essayer avec VerbatimOutput (package fancyvrb) pour exporter juste le code metapost puis récupérer le fichier avec VerbatimInput dans l'environnement codemp puis (ou avant) dans un environnement de style listing.
Pourquoi ne pas écrire deux environnements ?
C'est pour une formation metapost ? Cela m'intéresse :)
@Le Texnicien de surface En essayant fancyvrb, je me retrouve face au même problème : les lignes begin{mplibcode} et end{mplibcode} que j'aimerais supprimer du listing. J'ai trouvé dans la doc FancyVerbStartString et FancyVerbStopString qui pourraient m'aider mais ne semblent pas fonctionner avec begin{mplibcode} et end{mplibcode}. Je suppose que je devrais regarder du côté de l'environnement Example de fancyvrb-ex et le mofifier mais je ne suis pas sûr d'en être capable...
@christophe-poulain Non, ce n'est pas pour une formation :). C'était juste pour avoir quelques exemples mais une question en amène une autre et du coup, ça m'intéressait de savoir faire ça... À propos du code, je ne sais pas très bien comment l'utiliser. Ça oblige à taper deux fois le code metapost ? En tout cas, ça me permet de découvrir usrguide3.pdf et en particulier le +b de NewDocumentEnvironment qui est intéressant.