J'ai modifié ce code comme ceci :

\documentclass[a4paper,french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[margin=1cm]{geometry}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{enumitem}
\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} %alignement de "enumerate" et "listings"
{
  colback=white,
  colframe=white,
  comment and listing,
  sidebyside,
  lower separated=false,%
  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}
 %
 \begin{tcblisting} %suite de la liste avec "enumerate"
{
  colback=white,
  colframe=white,
  comment and listing,
  sidebyside,
  lower separated=false,%
  righthand width=0cm,
  listing style=mypython,
  comment={
    \begin{enumerate}[resume]
    \item question 4 très très longue prenant toute la largeur de cette ligne ou presque ! ...
    \end{enumerate}
    }
}
\end{tcblisting}
%
\begin{tcblisting} %suite de la liste avec "enumerate" et alignement avec "listings"
{
  colback=white,
  colframe=white,
  comment and listing,
  sidebyside,
  lower separated=false,%
  listing style=mypython,
  comment={
    \begin{enumerate}[resume]
    \item question 5...
    \item question 6...
    \item question 7...
    \end{enumerate}
    }
}
\includegraphics[width=0.5\textwidth]{example-image}
\end{tcblisting}

\end{document}

Mais le résultat ne me convient pas car je souhaiterais :

1- continuer la numérotation (bizarrement l'option resume n'a pas marché).

2- avoir un espace normal en poursuivant la numérotation.

3- aligner verticalement le bloc "listings" ou "image" en le mettant plus haut (top ?)

4- avoir un code plus simple (car là j'ai bidouillé mais je ne suis pas arrivé à faire mieux).

EDIT:

5- J'ai oublié de dire comment faire pour que l'image s'affiche ?

6- Est-il possible que la boîte (le cadre gris) contenant le programme Python ou l'image soit de même taille (plutôt largeur) que son contenu automatiquement ?

alt text

Posée 03 Jul '21, 13:38

insan's gravatar image

insan
5127
Taux d'acceptation : 0%

Modifiée 03 Jul '21, 17:50

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

L'option resume de l'environnement enumerate est dans un bloc tcblisting (lignes 54 et 66) différent de l' environnement enumerate précédents (lignes 33 et47). C'est peut-être la raison de son inefficacité?

(03 Jul '21, 14:37) joseph-tux joseph-tux's gravatar image

\documentclass[a4paper,french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[margin=1cm]{geometry}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{enumitem}
\usepackage{listings}

\lstdefinestyle{mypython}{
        language=Python,
        tabsize=4,
        numberstyle=\tiny,
        columns=flexible,
        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}

\tcbset{
  colback=black!05,
  colframe=black!05,
  sidebyside,
  lower separated=false,  
  sharpish corners,
  size=fbox,
  sidebyside align=top seam,
  boxrule=0pt,  
}

\newtcblisting{mybox}[1][]{
  beforeafter skip balanced=0pt,
  comment and listing,
  comment outside listing,
  listing style=mypython,
  #1
}

\begin{document}

\begin{mybox}[comment={
    \begin{enumerate}[series=myseries]
    \item question 1...
    \item question 2...
    \item question 3...
    \end{enumerate}
}]
def f(x):
  y=x**2-x+3
  return(y)
\end{mybox}
%
\begin{enumerate}[resume=myseries]
    \item question 4 très très longue prenant toute la largeur de cette ligne ou presque ! ...
\end{enumerate}
%
\begin{mybox}[listing options={language={[LaTeX]TeX}},
  comment={
    \begin{enumerate}[resume=myseries]
    \item question 5...
    \item question 6...
    \item question 7...
    \end{enumerate}
}]
\includegraphics[width=0.5\textwidth]{example-image}
\end{mybox}

\begin{tcolorbox}[colback=white,colframe=white,grow to left by=3pt]
  \begin{enumerate}[resume=myseries]
    \item question 5...
    \item question 6...
  \end{enumerate}
  \tcblower
  \includegraphics[width=0.5\textwidth]{example-image}
\end{tcolorbox}

\end{document}

alt text

Lien permanent

Publiée 03 Jul '21, 15:08

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 03 Jul '21, 18:06

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.