diff options
author | Karl Berry <karl@freefriends.org> | 2024-03-30 19:54:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-03-30 19:54:20 +0000 |
commit | ceb60a889a9349b5f17a956471d750f5a7653619 (patch) | |
tree | aa73640f2a02857e37f307f69ea02a4291500910 | |
parent | 2f4e2f4e61e34ab99691754741300f42368a16c5 (diff) |
customenvs (30mar24)
git-svn-id: svn://tug.org/texlive/trunk@70815 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf | bin | 116310 -> 116272 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf | bin | 339316 -> 519283 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex | 200 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.pdf | bin | 0 -> 177853 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex | 80 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/customenvs/customenvs.sty | 252 |
7 files changed, 532 insertions, 8 deletions
diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf Binary files differindex f8c88d906ed..c4a06de15b3 100644 --- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf +++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex index c4727a7422f..4bc63e0c5f9 100644 --- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex +++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex @@ -34,8 +34,8 @@ \usepackage[margin=1.5cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.2} -\def\TPdate{17/03/2024} +\def\TPversion{0.1.3} +\def\TPdate{30/03/2024} \usepackage{tcolorbox} \sethlcolor{lightgray!25} \NewDocumentCommand\MontreCode{ m }{% @@ -111,7 +111,9 @@ \section{History} -\verb|v0.1.1|~:~~~~Pencil of skills +\verb|v0.1.3|~:~~~~Environment for exercise(s) (in french doc) + +\verb|v0.1.2|~:~~~~Pencil of skills \verb|v0.1.1|~:~~~~Skills table (only french for the moment...) diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf Binary files differindex 2d894043ad5..c81bd43b7f7 100644 --- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf +++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex index 5f05be24858..650bb37932e 100644 --- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex +++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex @@ -39,8 +39,8 @@ \usepackage[margin=1.5cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.2} -\def\TPdate{17 mars 2024} +\def\TPversion{0.1.3} +\def\TPdate{30 mars 2024} \usepackage[most]{tcolorbox} \tcbuselibrary{listingsutf8} \newtcblisting{DemoCode}[1]{% @@ -66,10 +66,10 @@ keywordstyle={\color{violet}},% classoffset=2,% alsoletter={-},% - morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences},% + morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum},% keywordstyle={\color{green!50!black}},% classoffset=3,% - morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc},% + morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait},% keywordstyle={\color{orange}} },% #1 @@ -149,6 +149,8 @@ \section{Historique} +\verb|v0.1.3|~:~~~~Environnement/commande pour des exercices, avec personnalisation(s) + \verb|v0.1.2|~:~~~~Crayon de compétences \verb|v0.1.1|~:~~~~Tableaux de compétences @@ -784,4 +786,194 @@ L'argument, obligatoire et entre \MontreCode{\{...\}} est la liste des catégori {Chercher/Compétence 1\\Compétence 2,Modéliser/{Compétence 1\\Compétence 2}} \end{DemoCode} +\pagebreak + +\section{Titre d'exercices} + +\subsection{Principe et définition du style global} + +L'idée est de proposer une commande ou un environnement pour afficher, \textit{facilement}, un \textit{titre} pour les exercices d'une évaluation ou d'une fiche d'exercices. + +\smallskip + +Les éléments personnalisables sont : + +\begin{itemize} + \item le libellé via la clé \MontreCode{[Libelle]}, qui vaut \MontreCode{Exercice~} par défaut ; + \item la couleur via la clé \MontreCode{[Couleur]}, qui vaut \MontreCode{blue!50!black} par défaut ; + \item la police via la clé \MontreCode{[Police]}, qui vaut \MontreCode{\textbackslash bfseries\textbackslash LARGE\textbackslash sffamily} par défaut ; + \item l'épaisseur du trait (éventuel) via la clé \MontreCode{[EpTrait]}, qui vaut \MontreCode{1.1pt} par défaut. +\end{itemize} + +L'utilisateur peut personnaliser \textit{globalement} les éléments précédents, les styles seront dans ce cas propagés à tous les environnements ou à toutes les commandes créant les titres. + +\begin{DemoCode}{listing only} +%personnalisation(s) +\StyleEnvtExo[clés] + +%paramètres par défaut +\StyleEnvtExoDefaut +\end{DemoCode} + +Une fois les styles \textit{choisis}, il suffit d'utiliser la commande d'environnement ou la commande \textit{directe} : + +\begin{DemoCode}{} +%exo1, environnement par défaut +\begin{EnvtExo} +Ceci est un exercice\ldots +\end{EnvtExo} +\end{DemoCode} + +\begin{DemoCode}{} +%exo2, macro par défaut +\TitreExo + +Ceci est un exercice\ldots +\end{DemoCode} + +\subsection{Options de personnalisations} + +Hormis le style global, il est possible de modifier/ajouter certains éléments : + +\begin{itemize} + \item le trait peut être défini : + \begin{itemize} + \item plein (par défaut) ; + \item en pointillés, via \texttt{dotfill} ; + \item en \textit{dashillés}, via le package \texttt{dashrulex} ; + \end{itemize} + \item un complément de titre peut être rajouté ; + \item une décoration peut être rajoutée en fin de ligne : + \begin{itemize} + \item des points, sous la forme \texttt{(xx points)} ; + \item une image, via \texttt{graphicx}, dont la hauteur est adaptée à la hauteur de la ligne en cours ; + \item une icône, via \texttt{fontawesome5}, dont la hauteur est adaptée à la hauteur de la ligne en cours ; + \item un petit chronomètre, via \texttt{pictochrono}, dont la hauteur est adaptée à la hauteur de la ligne en cours ; + \item une ceinture colorée, via \texttt{coloredbelts}, dont la hauteur est adaptée à la hauteur de la ligne en cours ; + \end{itemize} + \item le compteur (nommé \MontreCode{numeroexo}) peut être désactivé et \textit{adpaté} via les commandes classiques de compteurs. +\end{itemize} + +\pagebreak + +Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont : + +\begin{itemize} + \item \MontreCode{Type} : type de libellés, parmi \MontreCode{Classique} (défaut) ou \MontreCode{Perso/titrepersonnalisé} + \item \MontreCode{ComplementTitre} : complément pour la titre, après le numéro (attention aux espaces) ; + \item \MontreCode{CodeDebut} : code \LaTeX\ qui sera \textit{rajouté} entre le titre et l'énoncé ; + \item \MontreCode{EchelleImage} : pour modifier ponctuellement l'image de décoration ; + \item \MontreCode{Compteur} : booléen pour activer/désactiver (\MontreCode{true} par défaut) le compteur (non affiché et non incrémenté) ; + \item \MontreCode{Decoration} : choix de la décoration parmi : + \begin{itemize} + \item \MontreCode{Icone/...} := afficher l'icône \MontreCode{...} à la fin de la ligne ; + \item \MontreCode{Image/...} := afficher l'image \MontreCode{...} à la fin de la ligne ; + \item \MontreCode{Ceinture/...} := afficher la ceinture couleur \MontreCode{...} à la fin de la ligne ; + \item \MontreCode{Chrono/...} := afficher le chrono de durée \MontreCode{...} à la fin de la ligne ; + \item \MontreCode{Points/...} := afficher les points \MontreCode{(... points)} à la fin de la ligne ; + \end{itemize} + \item \MontreCode{Trait} : choix du trait parmi : + \begin{itemize} + \item \MontreCode{plein} := un trait plain (par défaut) ; + \item \MontreCode{non} := aucun trait ; + \item \MontreCode{pointilles} := pointilles (\texttt{\textbackslash dotfill}) ; + \item \MontreCode{dashilles} := pointilles \textit{dash} (\texttt{\textbackslash hdashrule}). + \end{itemize} +\end{itemize} + +\subsection{Exemples} + +Les exemples suivants ont été obtenus via un document externe (fourni avec le package), du fait du chargement de packages spécifiques. + +Le code proposé utilise l'environnement, mais la commande simple est complètement compatible également ! + +\smallskip + +{\footnotesize\faExclamationTriangle} Les petites \textit{images} ne sont pas incluses dans le package, elles sont là pour illustrer l'utilisation d'images personnelles. + +\begin{DemoCode}{listing only} +\documentclass[a5paper,11pt]{article} +\usepackage[margin=1cm]{geometry} +\usepackage{customenvs} +%facultatif, pour les décorations +\usepackage{graphicx} +\usepackage{dashrulex} +\usepackage{coloredbelts} +\usepackage{pictochrono} +%mise en page +\usepackage{ipsum} +\setlength{\parindent}{0pt} +\end{DemoCode} + +\pagebreak + +\begin{DemoCode}{listing only} +\begin{EnvtExo}%exo1 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Trait=pointilles]%exo2 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Trait=dashilles]%exo3 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Chrono/20]%exo6 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Points/7]%exo9 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}] + +\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\StyleEnvtExoDefaut + +\begin{EnvtExo}% + [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13 +\ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14 + +\ipsum<Lang=FR,Type=sent> +\end{DemoCode} + +\pagebreak + +\begin{DemoCode}{} +\includegraphics{envtexo_exemples.pdf} +\end{DemoCode} + \end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.pdf b/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.pdf Binary files differnew file mode 100644 index 00000000000..717f3a12c95 --- /dev/null +++ b/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.pdf diff --git a/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex b/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex new file mode 100644 index 00000000000..bc9bf990f75 --- /dev/null +++ b/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex @@ -0,0 +1,80 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode} +% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[a5paper,11pt]{article} +\usepackage[margin=1cm]{geometry} +\usepackage{customenvs} +%facultatif, pour les décorations +\usepackage{graphicx} +\usepackage{dashrulex} +\usepackage{coloredbelts} +\usepackage{pictochrono} +%mise en page +\usepackage{ipsum} +\setlength{\parindent}{0pt} + +\begin{document} + +\begin{EnvtExo}%exo1 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Trait=pointilles]%exo2 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Trait=dashilles]%exo3 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Chrono/20]%exo6 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Decoration=Points/7]%exo9 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}] + +\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\StyleEnvtExoDefaut + +\begin{EnvtExo}% + [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13 + \ipsum<Lang=FR,Type=sent> +\end{EnvtExo} + +\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14 + +\ipsum<Lang=FR,Type=sent> + +\end{document} diff --git a/Master/texmf-dist/tex/latex/customenvs/customenvs.sty b/Master/texmf-dist/tex/latex/customenvs/customenvs.sty index 34b3c30803b..08083eb1034 100644 --- a/Master/texmf-dist/tex/latex/customenvs/customenvs.sty +++ b/Master/texmf-dist/tex/latex/customenvs/customenvs.sty @@ -3,9 +3,10 @@ % source pencil...: CC-BY-SA 4.0 https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145 \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{customenvs}[2024/03/17 0.1.2 Custom classic environments] +\ProvidesPackage{customenvs}[2024/03/30 0.1.3 Custom classic environments] %====HISTORIQUE +% v 0.1.3 Environnement/Commande pour présentation d'un exercice % v 0.1.2 Crayon de compétences % v 0.1.1 Ajout de tableaux de compétences % v 0.1.0 Version initiale @@ -50,6 +51,7 @@ \RequirePackage{simplekv} \RequirePackage{xstring} \RequirePackage{listofitems} +\RequirePackage{calc} \RequirePackage{tikz} \usetikzlibrary{decorations.pathmorphing,positioning,shapes.misc,calc} @@ -663,6 +665,254 @@ \end{tikzpicture}% } +%====EXERCICE PERSO + +\newcounter{numeroexo} +\setcounter{numeroexo}{0} +\newlength{\eptraitexo} +\setlength{\eptraitexo}{1.1pt} +\newlength{\eptraitexospace} +\setlength{\eptraitexospace}{1.5\eptraitexo} +\newlength{\tmp@image@hauteur@totale} +\newlength{\tmp@image@profondeur} + +\colorlet{macouleurexo}{blue!50!black} + +\newcommand\tmpstyleexo{\bfseries\LARGE\sffamily}% +\newcommand\tmplabelexo{Exercice~}% + +\defKV[globalstyleexo]{% + Libelle=\renewcommand\tmplabelexo{#1},% + Couleur=\colorlet{macouleurexo}{#1},% + Police=\renewcommand\tmpstyleexo{#1},% + EpTrait=\setlength{\eptraitexo}{#1} +} + +\setKVdefault[globalstyleexo]{% + Libelle={Exercice~},% + Couleur={blue!50!black},% + Police={\bfseries\LARGE\sffamily},% + EpTrait={1.1pt} +} + +\NewDocumentCommand\StyleEnvtExo{ O{} }{% + \restoreKV[globalstyleexo]% + \setKV[globalstyleexo]{#1}% +} +\NewDocumentCommand\StyleEnvtExoDefaut{ }{% + \restoreKV[globalstyleexo]% +} + +\defKV[EnvtExercice]{% + Type=\def\EnvtExoType{#1},% + ComplementTitre=\def\EnvtExoCpltTitre{#1},% + CodeDebut=\def\EnvtExoCodeAvant{#1},% + %Couleur=\def\EnvtExoCouleur{#1},% + EchelleImage=\def\EnvtExoScaleImg{#1},% + Decoration=\def\EnvtExoDeco{#1},% + Trait=\def\EnvtExoTrait{#1} +} +\setKVdefault[EnvtExercice]{ + Type=Classique,% + ComplementTitre={},% + CodeDebut={},% + %Couleur=macouleurexo,% + EchelleImage=1.15,% + Compteur=true,% + Decoration={},% + Trait=plein +} + +\NewDocumentEnvironment{EnvtExo}{ !O{} }% +{% + \useKVdefault[EnvtExercice]% + \setKV[EnvtExercice]{#1}% + \addtocounter{numeroexo}{1}% + \ifboolKV[EnvtExercice]{Compteur}{}{\addtocounter{numeroexo}{-1}}% + \def\hrulefill{\leavevmode\leaders\hrule height \eptraitexo\hfill\kern\z@}%épaisseur + \noindent\begingroup\color{macouleurexo}% + \IfStrEq{\EnvtExoType}{Classique}%OK exo°____vide + {% + %label avec numéro et complément + \tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre% + %trait éventuel + \IfStrEqCase{\EnvtExoTrait}{% + {plein}{\,\hrulefill}% + {pointilles}{\,\dotfill}% + {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}% + {non}{\hfill}% + }% + %décoration éventuelle + \IfSubStr{\EnvtExoDeco}{Icone}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]% + \,\scalebox{0.85}[0.85]{\EnvtExoIcon}% + }{}% + \IfSubStr{\EnvtExoDeco}{Ceinture}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]% + \,\CeintureCouleur{\EnvtExoCouleur}% + }{}% + \IfSubStr{\EnvtExoDeco}{Chrono}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]% + \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}% + }{}% + \IfSubStr{\EnvtExoDeco}{Points}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]% + \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}% + \,(\EnvtExoPts\ \pts)% + }{}% + \IfSubStr{\EnvtExoDeco}{Image}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]% + \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}% + \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$% + }{}% + }{}% + \IfSubStr{\EnvtExoType}{Perso}%OK perso____déco + {% + \StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]% + %label avec numéro et complément + \tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre% + %trait éventuel + \IfStrEqCase{\EnvtExoTrait}{% + {plein}{\,\hrulefill}% + {pointilles}{\,\dotfill}% + {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}% + {non}{\hfill}% + }% + %décoration éventuelle + \IfSubStr{\EnvtExoDeco}{Icone}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]% + \,\scalebox{0.85}[0.85]{\EnvtExoIcon}% + }{}% + \IfSubStr{\EnvtExoDeco}{Ceinture}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]% + \,\CeintureCouleur{\EnvtExoCouleur}% + }{}% + \IfSubStr{\EnvtExoDeco}{Chrono}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]% + \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}% + }{}% + \IfSubStr{\EnvtExoDeco}{Points}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]% + \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}% + \,(\EnvtExoPts\ \pts)% + }{}% + \IfSubStr{\EnvtExoDeco}{Image}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]% + \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}% + \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$% + }{}% + }{}% + \endgroup% + \def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}% + \par% + \EnvtExoCodeAvant% +}% +{}% + +\NewDocumentCommand\TitreExo{ !O{} }{% + \useKVdefault[EnvtExercice]% + \setKV[EnvtExercice]{#1}% + \addtocounter{numeroexo}{1}% + \ifboolKV[EnvtExercice]{Compteur}{}{\addtocounter{numeroexo}{-1}}% + \def\hrulefill{\leavevmode\leaders\hrule height \eptraitexo\hfill\kern\z@}%épaisseur + \noindent\begingroup\color{macouleurexo}% + \IfStrEq{\EnvtExoType}{Classique}%OK exo°____vide + {% + %label avec numéro et complément + \tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre% + %trait éventuel + \IfStrEqCase{\EnvtExoTrait}{% + {plein}{\,\hrulefill}% + {pointilles}{\,\dotfill}% + {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}% + {non}{\hfill}% + }% + %décoration éventuelle + \IfSubStr{\EnvtExoDeco}{Icone}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]% + \,\scalebox{0.85}[0.85]{\EnvtExoIcon}% + }{}% + \IfSubStr{\EnvtExoDeco}{Ceinture}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]% + \,\CeintureCouleur{\EnvtExoCouleur}% + }{}% + \IfSubStr{\EnvtExoDeco}{Chrono}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]% + \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}% + }{}% + \IfSubStr{\EnvtExoDeco}{Points}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]% + \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}% + \,(\EnvtExoPts\ \pts)% + }{}% + \IfSubStr{\EnvtExoDeco}{Image}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]% + \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}% + \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$% + }{}% + }{}% + \IfSubStr{\EnvtExoType}{Perso}%OK perso____déco + {% + \StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]% + %label avec numéro et complément + \tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre% + %trait éventuel + \IfStrEqCase{\EnvtExoTrait}{% + {plein}{\,\hrulefill}% + {pointilles}{\,\dotfill}% + {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}% + {non}{\hfill}% + }% + %décoration éventuelle + \IfSubStr{\EnvtExoDeco}{Icone}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]% + \,\scalebox{0.85}[0.85]{\EnvtExoIcon}% + }{}% + \IfSubStr{\EnvtExoDeco}{Ceinture}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]% + \,\CeintureCouleur{\EnvtExoCouleur}% + }{}% + \IfSubStr{\EnvtExoDeco}{Chrono}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]% + \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}% + }{}% + \IfSubStr{\EnvtExoDeco}{Points}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]% + \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}% + \,(\EnvtExoPts\ \pts)% + }{}% + \IfSubStr{\EnvtExoDeco}{Image}% + {% + \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]% + \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}% + \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$% + }{}% + }{}% + \endgroup% + \def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}% + \par% + \EnvtExoCodeAvant% +} + %%----COMMANDES EN %====QCMs |