Je voudrais placer un programme Python créé avec l'environnement \documentclass[a4paper,french]{article} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage[margin=1cm]{geometry} \usepackage{xcolor} \usepackage{enumitem} \input{insbox} \usepackage{listings} \lstnewenvironment{python} {\lstset{% language=Python, tabsize=4, numberstyle=\tiny, columns=flexible, backgroundcolor=\color{black!05}, showstringspaces=true, literate= {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {ë}{{\"e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {ù}{{\`u}}1 {«}{{\og}}1 {»}{{\fg{}}}1}} {} \begin{document} \InsertBoxR{0}{ \begin{python} def f(x): y=x**2-x+3 return(y) \end{python} } \begin{enumerate} \item question 1... \item question 2... \item question 3... \end{enumerate} \end{document} J'obtiens cette erreur : ! Argument of \lst@next has an extra }. Je précise que : 1- Mon code a pour objectif de créer un environnement listing appelé "python" avec des options spécifiques à cet effet. Cela me permet d'en créer plus tard un autre, par exemple pour un autre langage. Je voudrais donc bien garder le nom "python" au lieu de "listings". 2- Par "placer à droite", je voudrais dire mettre côte à côte deux blocs : une liste enumerate et un programme python. Et pour cette raison, j'ai utilisé la commande InsertBoxR que je trouve plus pratique, au lieu d'utiliser deux environnements minipage pour chaque bloc. Posée 01 Jul '21, 15:37 insan
Affichage de 5 parmi 14
Afficher 9 commentaire(s) en plus
|
Si vous n'aimez pas des \documentclass[a4paper,french]{article} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage[margin=1cm]{geometry} \usepackage{xcolor} \usepackage{enumitem} \input{insbox} \usepackage{listings} \lstdefinestyle{mypython}{ language=Python, tabsize=4, numberstyle=\tiny, columns=flexible, backgroundcolor=\color{black!05}, showstringspaces=true, literate= {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {ë}{{\"e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {ù}{{\`u}}1 {«}{{\og}}1 {»}{{\fg{}}}1 } \usepackage[most]{tcolorbox} \begin{document} \begin{tcblisting}{ colback=white, colframe=white, comment and listing, sidebyside, listing style=mypython, comment={ \begin{enumerate} \item question 1... \item question 2... \item question 3... \end{enumerate} } } def f(x): y=x**2-x+3 return(y) \end{tcblisting} \end{document} Mais si vous voulez \documentclass[a4paper,french]{article} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage[margin=1cm]{geometry} \usepackage{xcolor} \usepackage{enumitem} \input{insbox} \usepackage{listings} \lstnewenvironment{python} {\lstset{% language=Python, tabsize=4, numberstyle=\tiny, columns=flexible, backgroundcolor=\color{black!05}, showstringspaces=true, literate= {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {ë}{{\"e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {ù}{{\`u}}1 {«}{{\og}}1 {»}{{\fg{}}}1}} {} \begin{document} \newsavebox{\mylisting} \begin{lrbox}{\mylisting} \begin{python} def f(x): y=x**2-x+3 return(y) \end{python} \end{lrbox} \InsertBoxR{0}{\usebox{\mylisting}} \begin{enumerate} \item question 1... \item question 2... \item question 3... \end{enumerate} \end{document} Publiée 03 Jul '21, 14:15 samcarter @insan : si le code de @samcarter répond à la question, vous devriez l'accepter.
(03 Jul '21, 17:38)
Pathe ♦♦
|
Bienvenue sur TeXnique.fr !
Je ne comprends pas bien « placer un programme [...] à droite dans un environnement
enumerate
». Est-ce à droite d'un environnementenumerate
?Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).
Pour insérer du
⟨code⟩
, notamment des commandes ou environnements LaTeX, cf. la FAQ Comment mettre en forme ma contribution ?. Votre contribution a été corrigée dans ce sens.Si je remplace votre code :
par :
... le code compile.
Je ne suis pas certain de bien comprendre votre question. À quoi sert la commande
\InsertBoxR
? Désirez-vous mettre ce code dans l'environnementenumerate
ou à côté ? Ou peut-être désirez-vous en numéroter les lignes ?Le package
listings
crée également des boîtes, par exemple en ajoutant le paramètreframe=single
à la commande\lstset
.Deux choses :
1- Mon code a pour objectif de créer un environnement listing appelé "python" pour avec des options spécifiques à cet effet. Cela me permet d'en créer plus tard un autre, par exemple pour un autre langage. Je voudrais donc bien garder le nom "python" au lieu de "listings".
2- Par "placer à droite", je voudrais dire mettre côte à côte deux blocs : une liste
enumerate
et un programme python. Et pour cette raison, j'ai utilisé la commande\InsertBoxR
que je trouve plus pratique, au lieu d'utiliser deux environnementsminipage
pour chaque bloc.@insan Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.
Pour le point 1, nous sommes bien d'accord et l'avions bien compris. Pour le point 2, je crains que
\InsertBoxR
n'accepte pas d'environnements « verbatim ».Je précise que :
1- Mon code a pour objectif de créer un environnement listing appelé "python" avec des options spécifiques à cet effet. Cela me permet d'en créer plus tard un autre, par exemple pour un autre langage. Je voudrais donc bien garder le nom "python" au lieu de "listings".
2- Par "placer à droite", je voudrais dire mettre côte à côte deux blocs : une liste enumerate et un programme python. Et pour cette raison, j'ai utilisé la commande InsertBoxR que je trouve plus pratique, au lieu d'utiliser deux environnements minipage pour chaque bloc.
J'utiliserais
tcblisting
, mais si vous voulez\InsertBoxR
:\newsavebox{\mylisting} \begin{lrbox}{\mylisting} \begin{python} def f(x): y=x**2-x+3 return(y) \end{python} \end{lrbox} \InsertBoxR{0}{\usebox{\mylisting}} \begin{enumerate} \item question 1... \item question 2... \item question 3... \end{enumerate}
Comment pourrait-on faire avec
tcblisting
?@insan https://pastebin.com/vqYGHLHA
@insan : plutôt que poser une question en commentaire, il est préférable de créer une nouvelle question à part entière (éventuellement en y indiquant le lien avec la question actuelle). Ça permettra de la retrouver plus facilement, notamment avec un tag
tcblistings
!@insan : merci pour la nouvelle question !