diff options
Diffstat (limited to 'macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex')
-rw-r--r-- | macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex | 559 |
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 |