[tcolorbox] Compteur

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté par le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

[tcolorbox] Compteur

Message par zariski63 »

Bonsoir !
Je souhaiterais enchaîner mes "Exercice" avec reprise de numérotations.
Or mon environnement étoilé me permet de numéroter ou pas sauf qu'il ne reprend pas la numérotation où elle en était précédemment.
Mon problème doit être relativement difficile, enfin selon moi.
Si quelqu'un a une idée, elle serait la bienvenue.
Merci.

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\usepackage{tcolorbox}
   \tcbuselibrary{xparse}
   \tcbuselibrary{skins}
      
\DeclareTColorBox[auto counter]{mybox}{ O{} O{} s }%
   {skin     = enhanced,
	arc      = 0.35ex,
	boxrule  = 0.15ex,
	colback  = white,
	colframe = orange,
	left = 0ex, 
    right = 0ex, 
    bottom = 0ex, 
    top= -2.2mm + \tcboxedtitleheight,
    #2,
    %
    IfBooleanTF = {#3}{title = \color{black}\footnotesize #1 \thetcbcounter}%
                      {title =\color{black} \footnotesize #1},
    %
	attach boxed title to top left = {xshift = 1.5mm, yshift = -\tcboxedtitleheight/2},
    %
	boxed title style = {arc = 0.7ex, 
                         boxrule =0.1ex, 
                         colframe = black, 
                         colback = blue!15,
                         left = 0.2ex, 
                         right = 0.2ex, 
                         bottom = -0.1ex, 
                         top = 0ex,
                         },
  }

\begin{document}
\begin{mybox}[Exercice][colback=purple!10!white]*
  Ceci est une tcolorbox.
\end{mybox}

\begin{mybox}[Exercice][]*
  Ceci est une tcolorbox.
\end{mybox}

\begin{mybox}[Exercice][colframe= red, boxrule=0.25ex]
  Ceci est une tcolorbox.
\end{mybox}

\begin{mybox}[Solution][sharp corners]
  Ceci est une tcolorbox.
\end{mybox}

\begin{mybox}[Exercice][]*
  Ceci est une tcolorbox.
\end{mybox}


\end{document}
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: tcolorbox + compteur

Message par zariski63 »

Bon en fait j'ai monté ça qui semble fonctionner .... Mais c'est certainement perfectible, je suis preneur éventuellement :) .

Code : Tout sélectionner

\newcounter{compteur}
\setcounter{compteur}{0}

\NewDocumentEnvironment{cadre}{O{} O{} s}{%
\ifstrequal{#1}{}{%
  \begin{tcolorbox}[
	%skin     = enhanced,
	arc      = 0.35ex,%
	boxrule  = 0.15ex,
	colback  = white,
	colframe = black,
	left = 0ex, right = 0ex, bottom = 0ex, top=0ex,
	#2]
  }
  {%
  \begin{tcolorbox}[
   skin     = enhanced,
	arc      = 0.35ex,
	boxrule  = 0.15ex,
	colback  = white,
	colframe = orange,
	left = 0ex, 
    right = 0ex, 
    bottom = 0ex, 
    top= -2.2mm + \tcboxedtitleheight,
    #2,
    %
    IfBooleanTF = {#3}{title = \stepcounter{compteur}\color{black}\bfseries \footnotesize #1 \thecompteur}%
                      {title =\color{black} \bfseries \footnotesize #1},
    %
	attach boxed title to top left = {xshift = 1.5mm, yshift = -\tcboxedtitleheight/2},
    %
	boxed title style = {arc = 0.7ex, 
                         boxrule =0.1ex, 
                         colframe = black, 
                         colback = blue!15,
                         left = 0.2ex, 
                         right = 0.2ex, 
                         bottom = -0.1ex, 
                         top = 0ex,
                         },
  ]
  }
  }
{\end{tcolorbox}}
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: tcolorbox + compteur

Message par zariski63 »

Au temps pour moi... Je me suis précipité.
J'ai le même soucis qu'au début
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 445
Inscription : dimanche 11 février 2007, 11:45

Re: tcolorbox + compteur

Message par touhami »

Bon jour.
Vous avez le choix :

Code : Tout sélectionner

IfBooleanTF = {#3}{title = \color{black}\footnotesize #1 \thetcbcounter}%
                      {title =\color{black} \footnotesize #1,code={\addtocounter{\tcbcounter}{-1}}}
ou

Code : Tout sélectionner

IfBooleanTF = {#3}{title = \color{black}\footnotesize #1 \thetcbcounter}%
                      {title =\color{black} \footnotesize #1,phantom={\addtocounter{\tcbcounter}{-1}}}
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: tcolorbox + compteur

Message par zariski63 »

Tout d'abord je tiens à vous remercier pour me proposer des solutions.
Malheureusement cela ne marche pas. Je m'explique...

Je souhaiterais voir à l'affichage : Exemple 1
Exemple 2
Solution 1
Exemple 3
............
Alors que j'obtiens : Exemple 1
Exemple 2
Solution 3
Exemple 4
............

En fait il faudrait différencier les compteur selon le titre. Voilà pourquoi c'est difficile à réaliser.
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 445
Inscription : dimanche 11 février 2007, 11:45

Re: tcolorbox + compteur

Message par touhami »

Il faut créer deux environnements exercice et solution. Vous pouvez voir la page 355 de la doc de tcolorbox.
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2040
Inscription : lundi 01 octobre 2007, 10:20

Re: tcolorbox + compteur

Message par GMaths »

Bonjour,
zariski63 a écrit : mardi 22 décembre 2020, 10:14 Alors que j'obtiens : Exemple 1
Exemple 2
Solution 3
Exemple 4
............
1, 2, 3, 4 : c'est normal puisque Exemple et Solution sont le même environnement mybox.
zariski63 a écrit : mardi 22 décembre 2020, 10:14 En fait il faudrait différencier les compteur selon le titre. Voilà pourquoi c'est difficile à réaliser.
Il suffit de définir deux environnements distincts Exemple et Solution au lieu de mybox de manière à remplacer cela :

Code : Tout sélectionner

\begin{mybox}[Exercice][colframe= red, boxrule=0.25ex]
  Ceci est une tcolorbox.
\end{mybox}

\begin{mybox}[Solution][sharp corners]
  Ceci est une tcolorbox.
\end{mybox}
par :

Code : Tout sélectionner

\begin{Exercice}
  Ceci est une tcolorbox.
\end{Exercice}

\begin{Solution}
  Ceci est une tcolorbox.
\end{Solution}
L'intérêt étant de pouvoir définir des styles différents dans les définitions de Exercice et Solution sans devoir les rappeler dans les appels.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: tcolorbox + compteur

Message par zariski63 »

Certes mais je voudrais un environnement plus général.
Voilà pourquoi je passe par \NewDocumentEnvironment dans mon deuxième post
Je ne faisais pas référence à ce passage de la doc tcolorbox sur les "exemples" - "solutions".
Mais là cela dépasse mes compétences je pense.
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2040
Inscription : lundi 01 octobre 2007, 10:20

Re: tcolorbox + compteur

Message par GMaths »

zariski63 a écrit : mardi 22 décembre 2020, 10:40 Certes mais je voudrais un environnement plus général.
Vouloir un environnement général mais vouloir des numérotations distinctes suivant le "label", je ne comprends pas car je n'y vois que des désavantages.
zariski63 a écrit : mardi 22 décembre 2020, 10:40 Je ne faisais pas référence à ce passage de la doc tcolorbox sur les "exemples" - "solutions".
Mais là cela dépasse mes compétences je pense.
Je ne faisais non plus pas allusion à cela.

Je l'utilise mais uniquement pour déporter des solutions sur une page à part.
2020-12-22_112623.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 445
Inscription : dimanche 11 février 2007, 11:45

Re: tcolorbox + compteur

Message par touhami »

Voici une solution.

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\usepackage{tcolorbox}
   \tcbuselibrary{xparse}
   \tcbuselibrary{skins}
   \tcbuselibrary{theorems}
   
\tcbset{mybox/.style={
	skin     = enhanced,
	arc      = 0.35ex,
	boxrule  = 0.15ex,
	colback  = white,
	colframe = orange,
	left = 0ex, 
    right = 0ex, 
    bottom = 0ex, 
    top= -2.2mm + \tcboxedtitleheight,
    %
	attach boxed title to top left = {xshift = 1.5mm, yshift = -\tcboxedtitleheight/2},
    %
	boxed title style = {arc = 0.7ex, 
                         boxrule =0.1ex, 
                         colframe = black, 
                         colback = blue!15,
                         left = 0.2ex, 
                         right = 0.2ex, 
                         bottom = -0.1ex, 
                         top = 0ex,
                         }}}
   
\newtcbtheorem{exo}{Exercice}{mybox}{ex}
\newtcbtheorem{sol}{Solution}{mybox}{soln}
      


\begin{document}
\begin{exo}[colback=purple!10!white]{}{}
  Ceci est une tcolorbox.
\end{exo}

\begin{exo}[colback=red!10!green]{Exercice difficile}{}
  Ceci est une tcolorbox.
\end{exo}

\begin{exo}[colframe= red, boxrule=0.25ex]{}{}
  Ceci est une tcolorbox.
\end{exo}

\begin{sol}{}{}
  Ceci est une tcolorbox.
\end{sol}

\begin{exo}{}{}
  Ceci est une tcolorbox.
\end{exo}

\begin{exo*}{}{}
  Ceci est une tcolorbox.
\end{exo*}

\begin{sol}{}{}
  Ceci est une tcolorbox.
\end{sol}

\begin{sol*}{}{}
  Ceci est une tcolorbox.
\end{sol*}

\begin{exo}[colframe= red, boxrule=0.25ex]{}{}
  Ceci est une tcolorbox.
\end{exo}

\end{document}
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: tcolorbox + compteur

Message par zariski63 »

Ok merci tout de même.
Si j'arrive à trouver ce que je souhaite je vous en ferai part.
Bonne soirée !
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 428
Inscription : jeudi 14 octobre 2010, 09:20
Statut actuel : Enseignant
Localisation : Clermont-Ferrand

Re: tcolorbox + compteur

Message par zariski63 »

Je reviens vers vous pour vous dire merci.
J'ai étudié la partie théorème de tcolorbox ainsi que votre ecm, en effet c'est une solution des plus élégantes, sans prise de tête et relativement concise.
Je l'adopte !!!!

Remarque : ce tcolorbox est formidable, gros boulot derrière tout ça.