texlive[73715] Master/texmf-dist: customenvs (3feb25)
commits+karl at tug.org
commits+karl at tug.org
Mon Feb 3 21:55:19 CET 2025
Revision: 73715
https://tug.org/svn/texlive?view=revision&revision=73715
Author: karl
Date: 2025-02-03 21:55:19 +0100 (Mon, 03 Feb 2025)
Log Message:
-----------
customenvs (3feb25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex 2025-02-03 20:54:59 UTC (rev 73714)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex 2025-02-03 20:55:19 UTC (rev 73715)
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.2.6}
-\def\TPdate{04/11/2024}
+\def\TPversion{0.3.0}
+\def\TPdate{03/02/2025}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -77,7 +77,7 @@
\begin{tabular}{c}
\texttt{Cédric Pierquet}\\
{\ttfamily c pierquet -- at -- outlook . fr}\\
- \texttt{\url{https://github.com/cpierquet/customenvs}}
+ \texttt{\url{https://forge.apps.education.fr/pierquetcedric/packages-latex}}
\end{tabular}
\end{center}
@@ -111,6 +111,10 @@
\section{History}
+\verb|v0.3.0|~:~~~Bugfix with \textsf{beamer}
+
+\verb|v0.2.7|~:~~~Key for mixing answers in MCQ
+
\verb|v0.2.6|~:~~~Whell of skills, speedometer
\verb|v0.2.5|~:~~~Bugfix with exercices (\textsf{[fr]} macro)
@@ -183,6 +187,7 @@
Due to limitations, \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}\MontreCode{fontawesome5} can be \textit{un}loaded by \MontreCode{customenvs} (user must load them manually) via options :
\begin{itemize}
+ \item \MontreCode{$\mathtt{\langle}$beamer$\mathtt{\rangle}$} for using with \textsf{beamer} ;
\item \MontreCode{$\mathtt{\langle}$noenum$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$nomulticol$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$notblr$\mathtt{\rangle}$} ;
@@ -228,6 +233,7 @@
\end{itemize}
\item \MontreCode{FontLabels} : \MontreCode{\textbackslash bfseries} by default ;
\item \MontreCode{SpaceLabels} : \MontreCode{\textbackslash kern5pt} by default ;
+ \item \MontreCode{Shuffle}, for mixing answers : \MontreCode{false} by default ;
\item \MontreCode{Swap}, for ACBD instead of ABCD : \MontreCode{false} by default.
\end{itemize}
@@ -244,6 +250,10 @@
\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
\AnswersMCQ[Lines]{Answer A § Answer B § Answer C § Answer D}
+
+\AnswersMCQ[Lines,Shuffle]{Answer A1 § Answer B1 § Answer C1 § Answer D1}
+
+\AnswersMCQ[Lines,Shuffle]{Answer A2 § Answer B2 § Answer C2 § Answer D2}
\end{demohigh}
\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
@@ -299,7 +309,7 @@
\end{codehigh}
\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
-\ListItemsChoice[keys]{macro}{listname}(numbers)<enumitem options>
+\ListItemsChoice[keys]{macro}{listname}(numbers)<enumitem options>!beamer options!
\end{codehigh}
The available \MontreCode{keys} are :
@@ -320,8 +330,9 @@
\item the numbers of picked itemps, within \MontreCode{num1,num2,...}.
\end{itemize}
+The next argument, optional and between \MontreCode{<...>} gives specific options to \MontreCode{enumitem} environment.
-The last argument, optional and between \MontreCode{<...>} gives specific options to \MontreCode{enumitem} environment.
+The last argument, between \MontreCode{!..!} gives specific options to \MontreCode{enumitem} environment with \MontreCode{beamer}.
\medskip
@@ -328,7 +339,7 @@
Controls are done :
\begin{itemize}
- \item to verify that the liste doesn't exist (for the creation) ;
+ \item to verify that the list doesn't exist (for the creation) ;
\item to verify that that the list still exist (for the display).
\end{itemize}
@@ -448,13 +459,11 @@
\pagebreak
-\pagebreak
-
\section{Score banner}
\subsection{Global use}
-The idea is to insert a score banner, with customizations.
+The idea is to insert a score banner, with customization.
\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
ScoreBanner[keys]{number}
@@ -583,7 +592,7 @@
The idea is to propose a banner, made with \TikZ, to present for example a title.
-The global style is fixed, but few customizations are possible.
+The global style is fixed, but few customization are possible.
\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
\tkzBannerTri[keys]{number}{title}
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex 2025-02-03 20:54:59 UTC (rev 73714)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex 2025-02-03 20:55:19 UTC (rev 73715)
@@ -39,8 +39,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.2.6}
-\def\TPdate{4 novembre 2024}
+\def\TPversion{0.3.0}
+\def\TPdate{3 février 2025}
\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8}
%\usepackage{eurosym}
@@ -72,7 +72,7 @@
morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore,\InsererImage,\tkzBannerTri,\NiveauDiffExos,\tkzEtoiles,\tkzGrilleAuto,\tkzAutoGridLocal,\tkzAutoGridActivate,\tkzFlecheEvasee,PanneauAutoroute,\AfficheSoldes,\tbcmarker,\VilleDist,\RoueNiveaux,EnvRoueNiveaux,\PlacerIconeNiveau,\PlacerIconesNiveaux,\MiniCompteurNiveaux,\tkzspeedometer},%
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,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles,vRemplir,vOffset,vCentrer,height,width,blockwidth,collight,colmedium,coldar,coltxt,fonttxt,swap,maincolor,logo,type,num,dispblock,customtype,Couleur,AlignV,Offset,NiveauMax,pasX,pasY,grilleauto,TailleFleche,Direction,Coeff,TypeFleche,Deplacement,LineCap,Epaisseur,CouleurCartouche,Fleches,CouleurFond,CouleurTitre,PoliceCartouche,TypeFleche,EspacementV,OffsetFleches,Dernier,PoliceEntete,PolicePrix,PoliceReduc,OffsetReduc,AgrandirReduc,Rayon,Police,ListeNiveaux,Marqueur,Pos,Echelle,Couleurs,Taille},%
+ morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,Melange,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,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles,vRemplir,vOffset,vCentrer,height,width,blockwidth,collight,colmedium,coldar,coltxt,fonttxt,swap,maincolor,logo,type,num,dispblock,customtype,Couleur,AlignV,Offset,NiveauMax,pasX,pasY,grilleauto,TailleFleche,Direction,Coeff,TypeFleche,Deplacement,LineCap,Epaisseur,CouleurCartouche,Fleches,CouleurFond,CouleurTitre,PoliceCartouche,TypeFleche,EspacementV,OffsetFleches,Dernier,PoliceEntete,PolicePrix,PoliceReduc,OffsetReduc,AgrandirReduc,Rayon,Police,ListeNiveaux,Marqueur,Pos,Echelle,Couleurs,Taille},%
keywordstyle={\color{orange}}
},%
#1
@@ -118,7 +118,7 @@
\begin{tabular}{c}
\texttt{Cédric Pierquet}\\
{\ttfamily c pierquet -- at -- outlook . fr}\\
- \texttt{\url{https://github.com/cpierquet/customenvs}}
+ \texttt{\url{https://forge.apps.education.fr/pierquetcedric/packages-latex}}
\end{tabular}
\end{center}
@@ -152,6 +152,10 @@
\section{Historique}
+\verb|v0.3.0|~:~~~Compatibilité accrue avec \textsf{beamer}
+
+\verb|v0.2.7|~:~~~Clé \texttt{[Melange]} pour les QCMs
+
\verb|v0.2.6|~:~~~Roue des compétences / speedometer
\verb|v0.2.5|~:~~~Correction du fonctionnement de \texttt{EnvtExo}
@@ -170,23 +174,23 @@
\verb|v0.1.8|~:~~~Nutriscore
-\verb|v0.1.7|~:~~~~Possibilité de créer des vignettes \textsf{perso}
+\verb|v0.1.7|~:~~~Possibilité de créer des vignettes \textsf{perso}
-\verb|v0.1.6|~:~~~~Patch \textsf{displayskip} + Patches \textsf{pas-tableur}
+\verb|v0.1.6|~:~~~Patch \textsf{displayskip} + Patches \textsf{pas-tableur}
-\verb|v0.1.5|~:~~~~La librairie \texttt{babel} de \TikZ\ n'est plus chargée
+\verb|v0.1.5|~:~~~La librairie \texttt{babel} de \TikZ\ n'est plus chargée
-\verb|v0.1.5|~:~~~~Vignettes + Numéros encerclés + Création de boîtes 'simples'
+\verb|v0.1.5|~:~~~Vignettes + Numéros encerclés + Création de boîtes 'simples'
-\verb|v0.1.4|~:~~~~Commande pour du texte dans une boîte arrondie, de hauteur 'figée' + 'Chat' SMS
+\verb|v0.1.4|~:~~~Commande pour du texte dans une boîte arrondie, de hauteur 'figée' + 'Chat' SMS
-\verb|v0.1.3|~:~~~~Environnement/commande pour des exercices, avec personnalisation(s)
+\verb|v0.1.3|~:~~~Environnement/commande pour des exercices, avec personnalisation(s)
-\verb|v0.1.2|~:~~~~Crayon de compétences
+\verb|v0.1.2|~:~~~Crayon de compétences
-\verb|v0.1.1|~:~~~~Tableaux de compétences
+\verb|v0.1.1|~:~~~Tableaux de compétences
-\verb|v0.1.0|~:~~~~Version initiale
+\verb|v0.1.0|~:~~~Version initiale
\pagebreak
@@ -240,6 +244,7 @@
À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{xcolor}/\MontreCode{fontawesome5} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
\begin{itemize}
+ \item \MontreCode{$\mathtt{\langle}$beamer$\mathtt{\rangle}$} (pour assurer une compatibilité avec \textsf{beamer});
\item \MontreCode{$\mathtt{\langle}$nonenum$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$nonmulticol$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$nontblr$\mathtt{\rangle}$} ;
@@ -286,6 +291,7 @@
\end{itemize}
\item \MontreCode{PoliceLabels} pour la police des labels, \MontreCode{\textbackslash bfseries} par défaut ;
\item \MontreCode{EspaceLabels} pour gérer l'espacement entre le label et la réponse, et valant \MontreCode{\textbackslash kern5pt} par défaut ;
+ \item \MontreCode{Melange} pour mélanger les réponses, et valant \MontreCode{false} par défaut ;
\item \MontreCode{Swap} pour afficher les (4) réponses en mode 2 colonnes sous la forme ACBD ou ABCD, et valant \MontreCode{false} par défaut.
\end{itemize}
@@ -302,6 +308,10 @@
\begin{DemoCode}{}
\ReponsesQCM[Filets]{Réponse A § Réponse B § Réponse C § Réponse D}
+
+\ReponsesQCM[Filets,Melange]{Réponse A1 § Réponse B1 § Réponse C1 § Réponse D1}
+
+\ReponsesQCM[Filets,Melange]{Réponse A2 § Réponse B2 § Réponse C2 § Réponse D2}
\end{DemoCode}
\begin{DemoCode}{}
@@ -441,7 +451,7 @@
De plus, si le multi-colonnes est destiné à accueillir une liste, les items seront correctement alignés avec une liste sans multi-colonnes.
\begin{DemoCode}{listing only}
-\begin{MultiCols}[options](nbcols)<options enumitem>
+\begin{MultiCols}[options](nbcols)<options enumitem>!options beamer!
%corps
\end{MutiCols}
\end{DemoCode}
@@ -462,6 +472,8 @@
L'argument optionnel et entre \MontreCode{<...>} est passé à l'environnement \MontreCode{enumitem} ou \MontreCode{itemize} si spécifié.
+Le dernier argument, entre \MontreCode{!...!}, permet de spécifier des options pour l'environnement \MontreCode{enumitem} avec \MontreCode{beamer}.
+
\subsection{Exemples}
\begin{DemoCode}{}
@@ -527,7 +539,7 @@
\end{DemoCode}
\begin{DemoCode}{listing only}
-\ListeChoixItems[clés]{macro}{nomliste}(numéros)<options enumitem>
+\ListeChoixItems[clés]{macro}{nomliste}(numéros)<options enumitem>!options beamer!
\end{DemoCode}
Les \MontreCode{clés} disponibles sont :
@@ -550,8 +562,10 @@
\item les items à afficher, sous la forme \MontreCode{num1,num2,...}.
\end{itemize}
-Le dernier argument, optionnel et entre \MontreCode{<...>} correspond à des options spécifiques à passer à l'environnement de liste \MontreCode{enumitem} créé.
+L'avant-dernier argument, optionnel et entre \MontreCode{<...>} correspond à des options spécifiques à passer à l'environnement de liste \MontreCode{enumitem} créé.
+Le dernier argument, entre \MontreCode{!...!}, permet de spécifier des options pour l'environnement \MontreCode{enumitem} avec \MontreCode{beamer}.
+
\medskip
À noter que des contrôles sont effectués lors de l'appel aux macros pour :
Modified: trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty 2025-02-03 20:54:59 UTC (rev 73714)
+++ trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty 2025-02-03 20:55:19 UTC (rev 73715)
@@ -1,11 +1,14 @@
% Author..........: C. Pierquet
-% licence.........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
+% licence.........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
% 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/11/04 0.2.6 Custom classic environments]
+\ProvidesPackage{customenvs}[2025/02/03 0.3.0 Custom classic environments]
%====HISTORIQUE
+% v 0.3.0 Beamer compatibility (?)
+% v 0.2.8 Position absolue d'un objet dans une page
+% v 0.2.7 Mélange des réponses des QCMs
% v 0.2.6 Roue des compétences / SkillsWheel / speedometer
% v 0.2.5 Modification mineure des points dans l'environnement EnvtExo
% v 0.2.4 Petite boîte marker
@@ -28,6 +31,8 @@
\newif\if at enum\@enumtrue%
\DeclareOption{nonenum}{\@enumfalse}%
\DeclareOption{noenum}{\@enumfalse}%
+\newif\if at beamer\@beamerfalse%
+\DeclareOption{beamer}{\@beamertrue\@enumfalse}%
\newif\if at tblr\@tblrtrue%
\DeclareOption{nontblr}{\@tblrfalse}%
\DeclareOption{notblr}{\@tblrfalse}%
@@ -82,6 +87,8 @@
}
%====QCMs
+\NewList{TmpListeReponsesQCM}
+
\defKV[reponsesqcm]{%
NbCols=\def\RepQCMNbCol{#1},%
PoliceLabels=\def\RepQCMFonte{#1},%
@@ -99,7 +106,8 @@
Labels={a.},%
EspaceLabels=\kern5pt,%
Swap=false,%
- Largeur=0.99\linewidth
+ Largeur=0.99\linewidth,%
+ Melange=false
}
\NewDocumentCommand\QCMFormatteLabel{ m m }{%1=typelabel,%3=caractère
@@ -151,45 +159,98 @@
\xdef\RepQCMLabelC{\QCMFormatteLabel{\RepQCMTypeLabel}{3}\RepQCMSpace}%
\xdef\RepQCMLabelD{\QCMFormatteLabel{\RepQCMTypeLabel}{4}\RepQCMSpace}%
}{}%
- %en fonction du nb de colonnes
- \IfEq{\QCMNbRep}{2}%2réponses
+ %en fonction du nb de colonnes et du shuffle
+ \ifboolKV[reponsesqcm]{Melange}%
{%
- \ifboolKV[reponsesqcm]{Filets}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] \\
- \end{tblr}%
- }%
- {}%
- \IfEq{\QCMNbRep}{3}%3réponses
- {%
- \ifboolKV[reponsesqcm]{Filets}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] \\
- \end{tblr}%
- }%
- {}%
- \IfEq{\QCMNbRep}{4}%4réponses
- {%
- \IfEq{\RepQCMNbCol}{4}%4colonnes
+ \ClearList{TmpListeReponsesQCM}%
+ \IfEq{\QCMNbRep}{2}%2réponses
{%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[1]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[2]}%
\ifboolKV[reponsesqcm]{Filets}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] & \RepQCMLabelD\QCMListereponses[4] \\
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \RepQCMLabelB\TmpListeReponsesQCM[1] \\
\end{tblr}%
}%
+ {}%
+ \IfEq{\QCMNbRep}{3}%3réponses
{%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[1]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[2]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[3]}%
\ifboolKV[reponsesqcm]{Filets}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \RepQCMLabelB\TmpListeReponsesQCM[1] & \RepQCMLabelC\TmpListeReponsesQCM[2] \\
+ \end{tblr}%
+ }%
+ {}%
+ \IfEq{\QCMNbRep}{4}%4réponses
+ {%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[1]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[2]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[3]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[4]}%
+ \IfEq{\RepQCMNbCol}{4}%4colonnes
+ {%
+ \ifboolKV[reponsesqcm]{Filets}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \RepQCMLabelB\TmpListeReponsesQCM[1] & \RepQCMLabelC\TmpListeReponsesQCM[2] & \RepQCMLabelD\TmpListeReponsesQCM[3] \\
+ \end{tblr}%
+ }%
+ {%
+ \ifboolKV[reponsesqcm]{Filets}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \ifboolKV[reponsesqcm]{Swap}{\RepQCMLabelB\TmpListeReponsesQCM[1]}{\RepQCMLabelC\TmpListeReponsesQCM[1]} \\
+ \ifboolKV[reponsesqcm]{Swap}{\RepQCMLabelC\TmpListeReponsesQCM[2]}{\RepQCMLabelB\TmpListeReponsesQCM[2]} & \RepQCMLabelD\TmpListeReponsesQCM[3] \\
+ \end{tblr}%
+ }%
+ }%
+ {}%
+ }%
+ {%
+ \IfEq{\QCMNbRep}{2}%2réponses
+ {%
+ \ifboolKV[reponsesqcm]{Filets}%
{\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
{\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \ifboolKV[reponsesqcm]{Swap}{\RepQCMLabelB\QCMListereponses[2]}{\RepQCMLabelC\QCMListereponses[3]} \\
- \ifboolKV[reponsesqcm]{Swap}{\RepQCMLabelC\QCMListereponses[3]}{\RepQCMLabelB\QCMListereponses[2]} & \RepQCMLabelD\QCMListereponses[4] \\
+ \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] \\
\end{tblr}%
}%
+ {}%
+ \IfEq{\QCMNbRep}{3}%3réponses
+ {%
+ \ifboolKV[reponsesqcm]{Filets}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] \\
+ \end{tblr}%
+ }%
+ {}%
+ \IfEq{\QCMNbRep}{4}%4réponses
+ {%
+ \IfEq{\RepQCMNbCol}{4}%4colonnes
+ {%
+ \ifboolKV[reponsesqcm]{Filets}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] & \RepQCMLabelD\QCMListereponses[4] \\
+ \end{tblr}%
+ }%
+ {%
+ \ifboolKV[reponsesqcm]{Filets}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ \RepQCMLabelA\QCMListereponses[1] & \ifboolKV[reponsesqcm]{Swap}{\RepQCMLabelB\QCMListereponses[2]}{\RepQCMLabelC\QCMListereponses[3]} \\
+ \ifboolKV[reponsesqcm]{Swap}{\RepQCMLabelC\QCMListereponses[3]}{\RepQCMLabelB\QCMListereponses[2]} & \RepQCMLabelD\QCMListereponses[4] \\
+ \end{tblr}%
+ }%
+ }%
+ {}%
}%
- {}%
}
%====CENTRAGE
@@ -221,7 +282,7 @@
EpTrait=0pt
}
-\NewDocumentEnvironment{MultiCols}{ O{} r() D<>{} }%
+\NewDocumentEnvironment{MultiCols}{ O{} r() D<>{} d!! }%
{%
\useKVdefault[multicolsperso]%
\setKV[multicolsperso]{#1}%
@@ -228,8 +289,17 @@
\CoeffEspaceMulticols[\useKV[multicolsperso]{CoeffEspVert}]%
\setlength{\columnseprule}{\useKV[multicolsperso]{EpTrait}}%
\begin{multicols}{#2}%
- \IfStrEq{\useKV[multicolsperso]{Type}}{enum}{\begin{enumerate}[#3]}{}%
- \IfStrEq{\useKV[multicolsperso]{Type}}{item}{\begin{itemize}[#3]}{}%
+ %enum beamer or not
+ \IfNoValueTF{#4}%
+ {%
+ \IfStrEq{\useKV[multicolsperso]{Type}}{enum}{\begin{enumerate}[#3]}{}%
+ \IfStrEq{\useKV[multicolsperso]{Type}}{item}{\begin{itemize}[#3]}{}%
+ }%
+ {%
+ \IfStrEq{\useKV[multicolsperso]{Type}}{enum}{\begin{enumerate}[#4][#3]}{}%
+ \IfStrEq{\useKV[multicolsperso]{Type}}{item}{\begin{itemize}[#4][#3]}{}%
+ }%
+ %==on teste si on a un argument optionnel pour beamer...
}%
{%
\IfStrEq{\useKV[multicolsperso]{Type}}{enum}{\end{enumerate}}{}%
@@ -254,7 +324,7 @@
Type=enum
}
-\NewDocumentCommand\ListeChoixItems{ O{} m m r() D<>{} }{%1=options,2=série des items,3=nomsérie,4=liste choix,5=options enum
+\NewDocumentCommand\ListeChoixItems{ O{} m m r() D<>{} d!! }{%1=options,2=série des items,3=nomsérie,4=liste choix,5=options enum,%6=beamer ?
%on teste si la liste considérée existe...
\@ifIsList{#3}%
{%
@@ -270,16 +340,33 @@
\xintFor* ##1 in {\xintCSVtoList{#2}}\do{\InsertLastItem{#3}{##1}}
}%
%création de l'environnement
- \IfStrEq{\ChoixTypeSerie}{enum}%
- {\begin{enumerate}[#5]}{}%
- \IfStrEq{\ChoixTypeSerie}{item}%
- {\begin{itemize}[#5]}{}%
- \IfSubStr{\ChoixTypeSerie}{MultiCols}%
+ %==on teste si on a un argument optionnel pour beamer...
+ \IfNoValueTF{#6}%
{%
- \StrBetween[1,2]{\ChoixTypeSerie}{/}{/}[\ChoixTypeMulticols]%
- \StrBehind[2]{\ChoixTypeSerie}{/}[\NbMulticols]%
- \begin{MultiCols}[Type=\ChoixTypeMulticols](\NbMulticols)<#5>%
- }{}%
+ \IfStrEq{\ChoixTypeSerie}{enum}%
+ {\begin{enumerate}[#5]}{}%
+ \IfStrEq{\ChoixTypeSerie}{item}%
+ {\begin{itemize}[#5]}{}%
+ \IfSubStr{\ChoixTypeSerie}{MultiCols}%
+ {%
+ \StrBetween[1,2]{\ChoixTypeSerie}{/}{/}[\ChoixTypeMulticols]%
+ \StrBehind[2]{\ChoixTypeSerie}{/}[\NbMulticols]%
+ \begin{MultiCols}[Type=\ChoixTypeMulticols](\NbMulticols)<#5>%
+ }{}%
+ }%
+ {%
+ \IfStrEq{\ChoixTypeSerie}{enum}%
+ {\begin{enumerate}[#6][#5]}{}%
+ \IfStrEq{\ChoixTypeSerie}{item}%
+ {\begin{itemize}[#6][#5]}{}%
+ \IfSubStr{\ChoixTypeSerie}{MultiCols}%
+ {%
+ \StrBetween[1,2]{\ChoixTypeSerie}{/}{/}[\ChoixTypeMulticols]%
+ \StrBehind[2]{\ChoixTypeSerie}{/}[\NbMulticols]%
+ \begin{MultiCols}[Type=\ChoixTypeMulticols](\NbMulticols)<#5>!#6!%
+ }{}%
+ }%
+ %==multicols
%items choisis
\ifboolKV[itemchoisir]{Alea}%
{%
@@ -1529,7 +1616,8 @@
Labels={a.},%
SpaceLabels=\kern5pt,%
Swap=false,%
- Width=0.99\linewidth
+ Width=0.99\linewidth,%
+ Shuffle=false
}
\NewDocumentCommand\MCQFormatLabel{ m m }{%1=typelabel,%3=caractère
@@ -1582,44 +1670,97 @@
\xdef\RepQCMLabelD{\MCQFormatLabel{\RepQCMTypeLabel}{4}\RepQCMSpace}%
}{}%
%en fonction du nb de colonnes
- \IfEq{\QCMNbRep}{2}%2réponses
+ \ifboolKV[answersmcq]{Shuffle}%
{%
- \ifboolKV[answersmcq]{Lines}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] \\
- \end{tblr}%
- }%
- {}%
- \IfEq{\QCMNbRep}{3}%3réponses
- {%
- \ifboolKV[answersmcq]{Lines}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] \\
- \end{tblr}%
- }%
- {}%
- \IfEq{\QCMNbRep}{4}%4réponses
- {%
- \IfEq{\RepQCMNbCol}{4}%4colonnes
+ \ClearList{TmpListeReponsesQCM}%
+ \IfEq{\QCMNbRep}{2}%2réponses
{%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[1]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[2]}%
\ifboolKV[answersmcq]{Lines}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
- {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] & \RepQCMLabelD\QCMListereponses[4] \\
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \RepQCMLabelB\TmpListeReponsesQCM[1] \\
\end{tblr}%
}%
+ {}%
+ \IfEq{\QCMNbRep}{3}%3réponses
{%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[1]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[2]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[3]}%
\ifboolKV[answersmcq]{Lines}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \RepQCMLabelB\TmpListeReponsesQCM[1] & \RepQCMLabelC\TmpListeReponsesQCM[2] \\
+ \end{tblr}%
+ }%
+ {}%
+ \IfEq{\QCMNbRep}{4}%4réponses
+ {%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[1]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[2]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[3]}%
+ \InsertRandomItem{TmpListeReponsesQCM}{\QCMListereponses[4]}%
+ \IfEq{\RepQCMNbCol}{4}%4colonnes
+ {%
+ \ifboolKV[answersmcq]{Lines}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \RepQCMLabelB\TmpListeReponsesQCM[1] & \RepQCMLabelC\TmpListeReponsesQCM[2] & \RepQCMLabelD\TmpListeReponsesQCM[3] \\
+ \end{tblr}%
+ }%
+ {%
+ \ifboolKV[answersmcq]{Lines}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ \RepQCMLabelA\TmpListeReponsesQCM[0] & \ifboolKV[answersmcq]{Swap}{\RepQCMLabelB\TmpListeReponsesQCM[1]}{\RepQCMLabelC\TmpListeReponsesQCM[1]} \\
+ \ifboolKV[answersmcq]{Swap}{\RepQCMLabelC\TmpListeReponsesQCM[2]}{\RepQCMLabelB\TmpListeReponsesQCM[2]} & \RepQCMLabelD\TmpListeReponsesQCM[3] \\
+ \end{tblr}%
+ }%
+ }%
+ {}%
+ }%
+ {%
+ \IfEq{\QCMNbRep}{2}%2réponses
+ {%
+ \ifboolKV[answersmcq]{Lines}%
{\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
{\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
- \RepQCMLabelA\QCMListereponses[1] & \ifboolKV[answersmcq]{Swap}{\RepQCMLabelB\QCMListereponses[2]}{\RepQCMLabelC\QCMListereponses[3]} \\
- \ifboolKV[answersmcq]{Swap}{\RepQCMLabelC\QCMListereponses[3]}{\RepQCMLabelB\QCMListereponses[2]} & \RepQCMLabelD\QCMListereponses[4] \\
+ \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] \\
\end{tblr}%
}%
+ {}%
+ \IfEq{\QCMNbRep}{3}%3réponses
+ {%
+ \ifboolKV[answersmcq]{Lines}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{3}{X[b,l]}},#3}}%
+ \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] \\
+ \end{tblr}%
+ }%
+ {}%
+ \IfEq{\QCMNbRep}{4}%4réponses
+ {%
+ \IfEq{\RepQCMNbCol}{4}%4colonnes
+ {%
+ \ifboolKV[answersmcq]{Lines}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{4}{X[b,l]}},#3}}%
+ \RepQCMLabelA\QCMListereponses[1] & \RepQCMLabelB\QCMListereponses[2] & \RepQCMLabelC\QCMListereponses[3] & \RepQCMLabelD\QCMListereponses[4] \\
+ \end{tblr}%
+ }%
+ {%
+ \ifboolKV[answersmcq]{Lines}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,hlines,vlines,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ {\begin{tblr}{rowsep=\RepQCMOffsetLgn,colsep=\RepQCMOffsetCol,width=\RepQCMLarg,colspec={*{2}{X[b,l]}},#3}}%
+ \RepQCMLabelA\QCMListereponses[1] & \ifboolKV[answersmcq]{Swap}{\RepQCMLabelB\QCMListereponses[2]}{\RepQCMLabelC\QCMListereponses[3]} \\
+ \ifboolKV[answersmcq]{Swap}{\RepQCMLabelC\QCMListereponses[3]}{\RepQCMLabelB\QCMListereponses[2]} & \RepQCMLabelD\QCMListereponses[4] \\
+ \end{tblr}%
+ }%
+ }%
+ {}%
}%
- {}%
}
%====ITEMCHOICE
@@ -1637,7 +1778,7 @@
Type=enum
}
-\NewDocumentCommand\ListItemsChoice{ O{} m m r() D<>{} }{%1=options,2=série des items,3=nomsérie,4=liste choix,5=options enum
+\NewDocumentCommand\ListItemsChoice{ O{} m m r() D<>{} d!! }{%1=options,2=série des items,3=nomsérie,4=liste choix,5=options enum,%6=options beamer ?
%on teste si la liste considérée existe...
\@ifIsList{#3}%
{%
@@ -1653,10 +1794,24 @@
\xintFor* ##1 in {\xintCSVtoList{#2}}\do{\InsertLastItem{#3}{##1}}
}%
%création de l'environnement
- \IfStrEq{\ChoixTypeSerie}{enum}%
- {\begin{enumerate}[#5]}{}%
- \IfStrEq{\ChoixTypeSerie}{item}%
- {\begin{itemize}[#5]}{}%
+ \IfNoValueTF{#6}%
+ {%
+ \IfStrEq{\ChoixTypeSerie}{enum}%
+ {\begin{enumerate}[#5]}{}%
+ \IfStrEq{\ChoixTypeSerie}{item}%
+ {\begin{itemize}[#5]}{}%
+ }%
+ {%
+ \IfStrEq{\ChoixTypeSerie}{enum}%
+ {\begin{enumerate}[#6][#5]}{}%
+ \IfStrEq{\ChoixTypeSerie}{item}%
+ {\begin{itemize}[#6][#5]}{}%
+ }%
+ % \IfStrEq{\ChoixTypeSerie}{enum}%
+ % {\begin{enumerate}[#5]}{}%
+ % \IfStrEq{\ChoixTypeSerie}{item}%
+ % {\begin{itemize}[#5]}{}%
+ %==multicols
\IfSubStr{\ChoixTypeSerie}{MultiCols}%
{%
\StrBetween[1,2]{\ChoixTypeSerie}{/}{/}[\ChoixTypeMulticols]%
@@ -3538,4 +3693,33 @@
\end{tikzpicture}%
}
+%====POSITION ABSOLUE DANS LA PAGE
+\defKV[absposobject]{scale=\def\absposobject at scale{#1},anchor=\def\absposobject at anchor{#1}}
+\setKVdefault[absposobject]{scale={},anchor={north west}}
+\NewDocumentCommand\absposobject{ O{} m m m }{%
+ \restoreKV[absposobject]%
+ \setKV[absposobject]{#1}%
+ \IfStrEq{\absposobject at scale}{}%
+ {%
+ \begin{tikzpicture}[remember picture,overlay] \node[inner sep=0pt,outer sep=0pt] at ($([xshift=#2,yshift=#3]current page.\absposobject at anchor)$) {#4}; \end{tikzpicture}%
+ }%
+ {%
+ \begin{tikzpicture}[remember picture,overlay] \node[inner sep=0pt,outer sep=0pt,scale=\absposobject at scale] at ($([xshift=#2,yshift=#3]current page.\absposobject at anchor)$) {#4}; \end{tikzpicture}%
+ }%
+}
+
+\defKV[absposobjet]{Echelle=\def\absposobject at scale{#1},Ancre=\def\absposobject at anchor{#1}}
+\setKVdefault[absposobjet]{Echelle={},Ancre={north west}}
+\NewDocumentCommand\objetposabs{ O{} m m m }{%
+ \restoreKV[absposobjet]%
+ \setKV[absposobjet]{#1}%
+ \IfStrEq{\absposobject at scale}{}%
+ {%
+ \begin{tikzpicture}[remember picture,overlay] \node[inner sep=0pt,outer sep=0pt] at ($([xshift=#2,yshift=#3]current page.\absposobject at anchor)$) {#4}; \end{tikzpicture}%
+ }%
+ {%
+ \begin{tikzpicture}[remember picture,overlay] \node[inner sep=0pt,outer sep=0pt,scale=\absposobject at scale] at ($([xshift=#2,yshift=#3]current page.\absposobject at anchor)$) {#4}; \end{tikzpicture}%
+ }%
+}
+
\endinput
\ No newline at end of file
More information about the tex-live-commits
mailing list.