Affichage d'un environnement sous condition

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
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.
Ophiucus02
Utilisateur confirmé
Utilisateur confirmé
Messages : 23
Inscription : vendredi 18 octobre 2013, 17:29
Statut actuel : Enseignant

Affichage d'un environnement sous condition

Message non lu par Ophiucus02 »

Bonjour,

J'ai un environnement correction dont le code est le suivant :

Code : Tout sélectionner

\documentclass{article}
	\usepackage{xcolor}
		\definecolor{orange}{RGB}{255,165,0}
	\usepackage{tikz}
	\usepackage{framed}
	\usepackage{ifthen}
	\pgfdeclarelayer{background}
	\pgfsetlayers{background,main}
	\tikzstyle{thmbox}=[inner sep=1em]
	\def\parchmentframe#1{
 		\tikz{
  			\node[thmbox](A){#1};
  			\begin{pgfonlayer}{background}
   				\fill[thmborder](A.south east)--(A.south west)--(A.north west)--(A.north east)--cycle;
  			\end{pgfonlayer}
 		}
	}
	\def\parchmentframetop#1{
 		\tikz{
  			\node[thmbox](A){#1};
  			\begin{pgfonlayer}{background}    
   				\fill[thmborder](A.south west)--(A.north west)--(A.north east)--(A.south east);
  			\end{pgfonlayer}
 		}
	}
	\def\parchmentframemiddle#1{
		 \tikz{
  			\node[thmbox](A){#1};
  			\begin{pgfonlayer}{background}    
   				\fill[thmborder](A.north west)--(A.south west);
   				\fill[thmborder](A.south east)--(A.north east);
  			\end{pgfonlayer}
 		}
	}
	\def\parchmentframebottom#1{
		 \tikz{
  			\node[thmbox](A){#1};
  			\begin{pgfonlayer}{background}    
				\fill[thmborder](A.north west)--(A.south west)--(A.south east)--(A.north east);
  			\end{pgfonlayer}
 		}
	}
	\newboolean{correction}
	\setboolean{correction}{false}
	\newcommand{\corrige}{
		\setboolean{correction}{true}
	}
	\newcommand{\corrigepas}{
		\setboolean{correction}{false}
	}
	\DeclareDocumentEnvironment{correction}{s o}{%
		\tikzstyle{thmborder}=[draw=orange,fill=orange!10,line width=1pt,rounded corners=5pt]
        \def\FrameCommand{\parchmentframe}
     	\def\FirstFrameCommand{\parchmentframetop}
   		\def\MidFrameCommand{\parchmentframemiddle}
        \def\LastFrameCommand{\parchmentframebottom}
        \vskip\baselineskip
        \MakeFramed{\FrameRestore}
        \noindent
        \tikz\node[inner sep=1.2ex,draw=orange,fill=orange,anchor=west,overlay,line width=1pt,rounded corners=4pt]at(0em,1em){
        	\color{white}\bfseries{\IfBooleanTF{#1}{Correction}{Correction\space\negthinspace}
           	\IfNoValueF{#2}{:\space#2}}%
		};
		\par\nobreak
	}{\endMakeFramed}
	\ExplSyntaxOn
		\cs_new:cpn{correction*}{\correction*}
		\cs_new_eq:cN{endcorrection*}\endcorrection
	\ExplSyntaxOff
\begin{document}
	\corrigepas
	\begin{correction}
		La réponse correcte est la réponse A.
	\end{correction}
\end{document}
J'aimerais le faire apparaître ou non en fonction du choix du booléen \corrige ou \corrigepas.
Dans le code précédent l'environnement ne devrait pas apparaitre à la compilation.

Pouvez-vous m'aider je ne sais pas où mettre la commande \ifthenelse dans le code de mon environnement ?
Merci

Cordialement
MB
Administrateur
Administrateur
Messages : 8074
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Affichage d'un environnement sous condition

Message non lu par MB »

Bonjour, il existe des possibilités via les packages comment ou environ. Voir par exemple ici pour plus de détails.
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.