summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex')
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex559
1 files changed, 559 insertions, 0 deletions
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
new file mode 100644
index 0000000000..5e610ba0dc
--- /dev/null
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
@@ -0,0 +1,559 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
+
+\documentclass[french,11pt,a4paper]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\RequirePackage[upright]{fourier}
+\RequirePackage{mathtools}
+\RequirePackage{amsmath,amssymb,amstext}
+\RequirePackage[scaled=0.875]{helvet}
+\renewcommand\ttdefault{lmtt}
+\RequirePackage[scaled=0.925]{cabin} % sf
+%\usepackage{DejaVuSerif}
+%\usepackage[scale=1.1]{inconsolata}
+\usepackage{customenvs}
+\usepackage{tabularx}
+\usepackage{soul}
+%\usepackage{codehigh}
+\usepackage{fontawesome5}
+\usepackage{lipsum}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [customenvs]}
+\cfoot{\sffamily\small - \thepage{} -}
+\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\providecommand\PSTricks{\textsf{PSTricks}\xspace}
+\let\pstricks\PSTricks
+\let\TikZ\tikzlogo
+
+\usepackage{hyperref}
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=1.5cm]{geometry}
+\setlength{\parindent}{0pt}
+
+\def\TPversion{0.1.0}
+\def\TPdate{22 octobre 2023}
+\usepackage[most]{tcolorbox}
+\tcbuselibrary{listingsutf8}
+\newtcblisting{DemoCode}[1]{%
+ enhanced,width=0.95\linewidth,center,%
+ bicolor,size=title,%
+ colback=cyan!5!white,%
+ colbacklower=cyan!1!white,%
+ colframe=cyan!75!black,%
+ listing options={%
+ breaklines=true,%
+ breakatwhitespace=true,%
+ style=tcblatex,basicstyle=\small\ttfamily,%
+ tabsize=4,%
+ commentstyle={\itshape\color{gray}},
+ keywordstyle={\color{blue}},%
+ classoffset=0,%
+ keywords={usepackage,displaystyle,frac,infty,begin,end,lipsum,centering,par,baselineskip,item,bullet,int,color},%
+ alsoletter={-},%
+ keywordstyle={\color{blue}},%
+ classoffset=1,%
+ alsoletter={-},%
+ morekeywords={center,justify},%
+ keywordstyle={\color{violet}},%
+ classoffset=2,%
+ alsoletter={-},%
+ morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems},%
+ keywordstyle={\color{green!50!black}},%
+ classoffset=3,%
+ morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea},%
+ keywordstyle={\color{orange}}
+ },%
+ #1
+}
+\sethlcolor{lightgray!25}
+\NewDocumentCommand\MontreCode{ m }{%
+ \hl{\vphantom{\texttt{pf}}\texttt{#1}}%
+}
+
+\usepackage{babel}
+
+\begin{document}
+
+\pagestyle{fancy}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.75\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \renewcommand\arraystretch{1.25}
+ \begin{tabular}{c}
+ {\Huge \texttt{customenvs [fr]}}\\
+ \\
+ {\Large Quelques environnements classiques,} \\
+ {\Large légèrement modifiés, et basés} \\
+ {\Large sur des environnements existants.} \\
+ \end{tabular}
+ \renewcommand\arraystretch{1}
+
+ \medskip
+
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{center}
+ \end{tcolorbox}
+\end{minipage}
+\end{center}
+
+\vspace*{1mm}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/customenvs}}
+\end{tabular}
+\end{center}
+
+\vspace*{5mm}
+
+%\hrule
+%
+%\vspace*{2mm}
+%
+%{\centering Le nom du package vient de \textsf{ENVironnemenTS ALTernatifs}, avec le suffixe \textsf{FRançais}.\par}
+%
+%\vspace*{2mm}
+%
+%\hrule
+%
+%\vspace*{1cm}
+
+\hrule
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+\hrule
+
+\vfill
+
+\section{Historique}
+
+\verb|v0.1.0|~:~~~~Version initiale
+
+\vspace*{5mm}
+
+\pagebreak
+
+\section{Le package customenvs}
+
+\subsection{Idée}
+
+L'idée est de proposer des commandes ou environnements classiques avec quelques éléments de personnalisation (via des \textsf{clés} francisées), comme :
+
+\begin{itemize}
+ %\item modifier localement l'\textit{alignement vertical} d'éléments sans jambage ;
+ \item \textit{centrer} avec gestion des espacements autour ;
+ \item écrire en \textit{multi-colonnes} avec gestion des espacements autour ;
+ \item mettre en forme des réponses à des \textit{QCM} ;
+ \item créer une liste avec \textit{choix des items} (de manière aléatoire ou par saisie directe).
+\end{itemize}
+
+\smallskip
+
+L'idée globale est de proposer des environnements clé en main, avec personnalisations \textit{explicites}, sans forcément avoir besoin de \textit{se pencher sur le code}, mais il est évident qu'il existe d'autres solutions pour l'utilisateur qui souhaite réellement contrôler son rendu.
+
+\smallskip
+
+Il est ici essentiellement question de gérer les espacements, donc on peut citer comme autres solutions possibles :
+
+\begin{itemize}
+ \item l'utilisation de \MontreCode{\textbackslash vspace} ou de \MontreCode{\textbackslash setlength} ;
+ \item le package \MontreCode{spacingtricks}.
+\end{itemize}
+
+\subsection{Chargement}
+
+Le package se charge dans le préambule, via \MontreCode{\textbackslash usepackage\{customenvs\}}.
+
+Les packages chargés sont :
+
+\begin{itemize}
+ \item \MontreCode{xstring}, \MontreCode{simplekv}, \MontreCode{listofitems}, \MontreCode{randomlist} et \MontreCode{xintexpr} ;
+ \item \MontreCode{enumitem} ;
+ \item \MontreCode{multicol} ;
+ \item \MontreCode{tabularray}.
+\end{itemize}
+
+À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem} ou \MontreCode{multicol} ou \MontreCode{tabularray} 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}$nonenum$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$nonmulticol$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$nontblr$\mathtt{\rangle}$}.
+\end{itemize}
+
+\begin{DemoCode}{listing only}
+%chargement avec tous les packages
+\usepackage{customenvs}
+
+%chargement avec options(s) pour ne pas charger certains packages
+\usepackage[option(s)]{customenvs}
+\end{DemoCode}
+
+\newpage
+
+\section{Présentation de réponses à un QCM}
+
+\subsection{Principe}
+
+L'idée est de proposer une environnement prêt à l'emploi pour présenter, grâce à \MontreCode{tabularray} (et non pas à \MontreCode{multicols}) qui est donc à charger, les réponses à une question type QCM, données en colonnes.
+
+\smallskip
+
+Il est possible de spécifier 2, 3 ou 4 réponses, et dans le cas de 4 réponses il est possible de spécifier 1 ou 2 colonnes.
+
+\begin{DemoCode}{listing only}
+\ReponsesQCM[options]{liste reponses}<options tblr>
+\end{DemoCode}
+
+Les \MontreCode{options} disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Largeur} pour spécifier la largeur du tableau, \MontreCode{0.99\textbackslash linewidth} par défaut ;
+ \item \MontreCode{Filets} pour afficher les filets, \MontreCode{false} par défaut ;
+ \item \MontreCode{EspacesCL} pour les espacements Colonnes/Lignes, sous la forme \MontreCode{col/lign} ou \MontreCode{globale}, et valant \MontreCode{6pt/2pt} par défaut ;
+ \item \MontreCode{NbCols} pour forcer le passage à 2 colonnes dans le cas de 4 réponses, \MontreCode{4} par défaut ;
+ \item \MontreCode{Labels} pour spécifier le formatage des labels, avec \MontreCode{a.} par défaut ;
+ \begin{itemize}
+ \item pouvant faire intervenir \MontreCode{a} pour \textit{numéroter} \MontreCode{a b c d} ;
+ \item pouvant faire intervenir \MontreCode{A} pour \textit{numéroter} \MontreCode{A B C D} ;
+ \item pouvant faire intervenir \MontreCode{1} pour \textit{numéroter} \MontreCode{1 2 3 4} ;
+ \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{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}
+
+La liste des réponses est à donner sous la forme \MontreCode{answA § answB § ...}
+
+Les options spécifiques, optionnelles et entre \MontreCode{<...>}, sont pour le dernier argument.
+
+\subsection{Exemples}
+
+\begin{DemoCode}{}
+%sortie par defaut
+\ReponsesQCM{Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[Filets]{Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[Filets,Labels=(1.),EspaceLabels={~~~}]{Réponse A § Réponse B § Réponse C}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[Labels={A.},PoliceLabels={\color{red}\bfseries}]%
+ {Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[NbCols=4,Labels={A.},PoliceLabels={\color{red}\bfseries}]%
+ {Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[NbCols=2,Labels={A.},PoliceLabels={\color{red}\bfseries}]%
+ {Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[NbCols=2,Swap,Labels={A.},PoliceLabels={\color{red}\bfseries}]%
+ {Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[Filets,NbCols=2,EspacesCL=6pt/10pt]%
+ {Réponse A § Réponse B § Réponse C § Réponse D}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\ReponsesQCM[Largeur=10cm,NbCols=2,Filets]%
+ {$\displaystyle\frac1x$ § $1+\displaystyle\frac1x$ § $-2x^2+5$ § $-\infty$}
+ <rows={2cm}>
+\end{DemoCode}
+
+\pagebreak
+
+\section{Environnement Centrage}
+
+\subsection{Principe}
+
+L'idée est de proposer un environnement, basé sur \MontreCode{center}, avec une gestion plus fine des espacements avant et après.
+
+Le fait est qu'un environnement \MontreCode{center} génère des espacements (parfois) un peu trop grands autour (on peut également utiliser \MontreCode{\textbackslash centering} ou \MontreCode{\textbackslash centered} du package \MontreCode{spacingtricks}), et donc il s'agit ici de garder l'architecture \textit{environnement} et proposant des solutions pour modifier les espacements.
+
+\begin{DemoCode}{listing only}
+\begin{Centrage}[options]
+ %corps
+\end{Centrage}
+\end{DemoCode}
+
+Les \MontreCode{options} disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Avant} pour spécifier l'espacement avant l'environnement, \MontreCode{0.33\textbackslash baselineskip} par défaut ;
+ \item \MontreCode{Apres} pour spécifier l'espacement après l'environnement, \MontreCode{0.33\textbackslash baselineskip} par défaut.
+\end{itemize}
+
+À noter que les espacements peuvent être donnés de manière absolue, ou via des dimensions existantes.
+
+\subsection{Exemples}
+
+\begin{DemoCode}{}
+%environnement center, par défaut
+\lipsum[1][1-3]
+
+\begin{center}
+ \lipsum[1][1]
+\end{center}
+
+\lipsum[1][1-2]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%centering
+\lipsum[1][1-3]\par
+
+{\centering\lipsum[1][1]\par}
+
+\lipsum[1][1-2]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%environnement Centrage, par défaut
+\lipsum[1][1-3]
+
+\begin{Centrage}
+ \lipsum[1][1]
+\end{Centrage}
+
+\lipsum[1][1-2]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%environnement Centrage, personnalisé
+\lipsum[1][1-3]
+
+\begin{Centrage}[Avant=0pt,Apres=0pt]
+ \lipsum[1][1]
+\end{Centrage}
+
+\lipsum[1][1-2]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%environnement Centrage, avec des listes
+\lipsum[2][3]
+
+\begin{itemize}
+ \item \lipsum[1][1]
+ \item \lipsum[1][2]
+\end{itemize}
+
+\begin{Centrage}[Avant=-0.25\baselineskip]
+ \lipsum[1][1]
+\end{Centrage}
+
+\lipsum[1][1-2]
+\end{DemoCode}
+
+\pagebreak
+
+\section{Environnement multi-colonnes}
+
+\subsection{Principe}
+
+L'idée est de proposer un environnement basé sur \MontreCode{multicols} (donc le package \MontreCode{multicol} est à charger), pour lequel les espacements avant et après peuvent être personnalisés.
+
+C'est la longueur \MontreCode{\textbackslash multicolsep}, qui vaut \MontreCode{12pt plus 4pt minus 3pt} par défaut, qui gère ces espacements.
+
+\smallskip
+
+L'idée est donc de proposer une environnement \textit{simplifié} intégrant une modification de cette longueur. Il sera également possible de créer automatiquement un environnement multi-colonnes combiné avec une liste d'énumération (avec \MontreCode{enumitem} chargé, par exemple) !
+
+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>
+ %corps
+\end{MutiCols}
+\end{DemoCode}
+
+Les \MontreCode{options} disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Type} pour spécifier le type d'environnement qui sera inclus en multi-colonnes, et valant \MontreCode{texte} par défaut ;
+
+ \hfill{}à choisir parmi \MontreCode{texte / enum / item}
+ \item \MontreCode{CoeffEspVert} pour spécifier le coefficient à appliquer à la longueur par défaut, et valant \MontreCode{0.5} par défaut ;
+
+ \hfill{}à choisir parmi \MontreCode{0 / 0.25 / 0.33 / 0.5 / 0.66 / 0.75 / 1 / 1.25}
+ \item \MontreCode{EpTrait} pour l'épaisseur éventuelle du trait de séparation, et valant \MontreCode{0pt} par défaut.
+\end{itemize}
+
+Le nombre de colonnes, obligatoire, est à donner entre \MontreCode{(...)}.
+
+L'argument optionnel et entre \MontreCode{<...>} est passé à l'environnement \MontreCode{enumitem} ou \MontreCode{itemize} si spécifié.
+
+\subsection{Exemples}
+
+\begin{DemoCode}{}
+%par défaut
+\lipsum[1][1-2]
+
+\begin{MultiCols}(2)
+ \lipsum[2]
+\end{MultiCols}
+
+\lipsum[1][3-4]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%espacement réduit + filet
+\lipsum[1][1-2]
+
+\begin{MultiCols}[CoeffEspVert=0.25,EpTrait=1pt](3)
+ \lipsum[2]
+\end{MultiCols}
+
+\lipsum[1][3-4]
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%type enumitem
+\begin{enumerate}
+ \item \lipsum[1][1-2]
+ \begin{MultiCols}[Type=enum](4)
+ \item bla
+ \item bla
+ \item bla
+ \item bla
+ \end{MultiCols}
+ \item \lipsum[1][3-4]
+ \begin{MultiCols}[Type=item](3)<label=$\bullet$>
+ \item bla
+ \item bla
+ \item bla
+ \end{MultiCols}
+\end{enumerate}
+
+\lipsum[3][1]
+\end{DemoCode}
+
+\pagebreak
+
+\section{Énumération avec choix des items, parmi une liste}
+
+\subsection{Principe et fonctionnement}
+
+L'idée est ici de :
+
+\begin{itemize}
+ \item créer une liste d'items qui servira de base pour le(s) choix ;
+ \item afficher la liste avec choix des items, de manière aléatoire ou par items choisis
+\end{itemize}
+
+À noter que l'environnement \MontreCode{MultiCols} du package peut être utilisé comme environnement de listes !
+
+\begin{DemoCode}{listing only}
+\CreerListeItems{liste}{macro}{nomliste}
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+\ListeChoixItems[clés]{macro}{nomliste}(numéros)<options enumitem>
+\end{DemoCode}
+
+Les \MontreCode{clés} disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Type} pour spécifier le type d'environnement, et valant \MontreCode{enum} par défaut ;
+
+ \hfill{}à choisir parmi \MontreCode{enum} \MontreCode{item} ou \MontreCode{MultiCols/Type/NbCols}
+ \item \MontreCode{Alea} pour forcer un affichage aléatoire, \MontreCode{false} par défaut.
+\end{itemize}
+
+Le deuxième argument, obligatoire et entre \MontreCode{\{...\}} est la macro créée précédemment.
+
+Le troisième argument, obligatoire et entre \MontreCode{\{...\}} est le nom de la liste créée précédemment.
+
+Le quatrième argument, obligatoire et entre \MontreCode{(...)} permet de spécifier :
+
+\begin{itemize}
+ \item le nombre d'items à afficher en mode \MontreCode{Alea=true} ;
+ \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éé.
+
+\medskip
+
+À noter que des contrôles sont effectués lors de l'appel aux macros pour :
+
+\begin{itemize}
+ \item vérifier que la liste n'existe pas déjà (pour la macro de création) ;
+ \item vérifier que la liste existe déjà (pour la macro d'affichage des items).
+\end{itemize}
+\subsection{Exemples}
+
+\begin{DemoCode}{listing only}
+%création de la liste ListeItems, avec la macro \malisteditems
+\CreerListeItems%
+ {Réponse A,Réponse B,Réponse C,Réponse D,Réponse E,Réponse F,Réponse G,Réponse H}%
+ {\malisteditems}{ListeItems}
+\end{DemoCode}
+
+\CreerListeItems{Réponse A,Réponse B,Réponse C,Réponse D,Réponse E,Réponse F,Réponse G,Réponse H}{\malisteditems}{ListeItems}
+
+\begin{DemoCode}{}
+%affichage d'items aléatoires
+\ListeChoixItems[Alea]{\malisteditems}{ListeItems}(5)
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%affichage de certains items
+\ListeChoixItems{\malisteditems}{ListeItems}(1,4,3,8,2)
+\end{DemoCode}
+
+\begin{DemoCode}{listing only}
+%création de la liste ListeItemsB, avec la macro \malisteditemsb
+\CreerListeItems%
+ {{$\int_0^1 x^2 dx$},{$\int_0^1 x^3 dx$},{$\int_0^1 x^4 dx$},...}%
+ {\malisteditemsb}{ListeItemsB}
+\end{DemoCode}
+
+\CreerListeItems{{$\int_0^1 x^2 dx$},{$\int_0^1 x^3 dx$},{$\int_0^1 x^4 dx$},{$\int_0^1 x^5 dx$},{$\int_0^1 x^6 dx$},{$\int_0^1 x^7 dx$},{$\int_0^1 x^8 dx$}}{\malisteditemsb}{ListeItemsB}
+
+\begin{DemoCode}{}
+%affichage d'items aléatoires, via MultiCols
+\ListeChoixItems[Alea,Type={MultiCols/enum/2}]{\malisteditemsb}{ListeItemsB}(4)
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%affichage de certains items
+\ListeChoixItems[Type=item]{\malisteditemsb}{ListeItemsB}(7,2,1,5,3)<label=$\bullet$>
+\end{DemoCode}
+
+\end{document} \ No newline at end of file